命令执行(RCE)

1.原理

在使用系统执行命令函数时,没有进行严格的过滤,导致攻击者能够执行一些危险命令。路由器中经常见到,ping命令测试连接,由于对参数没有进行限制,可以在ping命令后加一条命令实现注入

2.危害

获取系统权限和敏感文件

3.判断和可能出现位置

a.判断

利用延时函数和转md5函数

b.可能出现位置

  • 1)ping命令处
  • 2)利用命令执行函数处

4.基础利用

127.0.0.1&&cat /etc/passwd

5.bypass

  • 1)过滤空格---空格可以用<、<>、%20(space)、%09(tab)、$IFS$9、${IFS}、$IFS代替
  • 2)过滤斜杠---可以同时执行多个命令,先cd进去再cat
  • 3)过滤命令---利用等价命令,比如过滤cat可以使用more,less等
  • 4)无回显---使用延时注入和DNSlog

6.防御

尽量不要使用系统执行命令,如果使用做好严格过滤

7.详细分类

a.linux

linux中的连接命令
  • %0a---换行符
  • %0d---回车符
  • ;---每个命令都会执行,不管前面执行成功还是失败,后面的命令都会继续很执行
  • &&---前面的执行成功后,才会执行后面的命令。
  • |和||---前面的命令执行失败后才会执行后面的命令,直到执行一条成功的命令

b.windows

c.php

php命令执行函数: 常见array_map(),preg_replace(),ob_start(),eval()