命令执行漏洞总结,主要讲述PHP相关的RCE,其他的后续慢慢补充~
概述
命令执行漏洞,即因为过滤不严等原因,导致函数或者参数可控,从而导致可以执行系统命令等,即我们通常所说的RCE。
类别
命令执行漏洞严格来说分为两种
- 一种是相应的语言函数导致的代码执行,比如eval()这种,我们称之为代码执行;
- 一种是执行系统函数导致的代码执行,比如我们的system()函数等,我们成为系统命令执行;
bypass-Tricks
- &、&&
- |、||
- ;
- %0a、%0d、%09
- ‘’、””
- ``和$()
- ()和{}
- 正则或通配符bypass
- []和{} bypass
- base64或进制 bypass
- ${IFS}、<>、$IFS
- 变量bypass,如a=l;b=s;$a$b
- 反斜杠bypass
- $*、$@、$x(1<x<9)、${x}(x>=10)
- {cat,/etc/passwd}
- 重定向<> bypass
漏洞函数
php相关RCE
代码执行
eval()
1 | <?php |
assert()
1 | <?php |
preg_replace(‘’)
1 | <?php |
create_function()
1 | <?php |
array_map()
1 | <?php |
array_filter()
1 | <?php |
call_user_func()
1 | <?php |
call_user_func_array()
1 | <?php |
uasort()
1 | <?php |
系统命令执行
system()
1 | <?php |
passthru()
1 | <?php |
exec()
1 | <?php |
pcntl_exec()
1 | <?php pcntl_exec(“/bin/bash”, array(“run.sh”));?> |
shell_exec()
1 | <?php |
popen()
1 | <?php |
proc_open()
1 | <?php |
ob_start()
1 | <?php |
Java相关命令执行函数
- Runtime
- ProcessBuilder
参考资料
- https://xz.aliyun.com/t/3918
- http://www.ghtwf01.cn/index.php/archives/273/
- https://www.freebuf.com/company-information/228881.html
- https://blog.csdn.net/qq_37133717/article/details/95231291
- https://bbs.ichunqiu.com/thread-41471-1-1.html?from=beef
本文作者:
yd0ng
本文链接: https://yd0ng.github.io/2020/09/15/%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://yd0ng.github.io/2020/09/15/%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!