作者热门文章
- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
RCE(remote command/code execute),远程命令执行/代码执行。
RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
这里我在C盘下建立了个flag.txt文件,利用RCE漏洞访问到此文件即视为漏洞利用成功。
可以看出该网页的功能是输入一个IP地址,然后服务器返回ping的结果。
此处存在远程命令执行漏洞,可以利用 &
符号。
&
顺序执行多条命令,而不管命令是否执行成功。
例如:
ping 127.0.0.1 & ipconfig
计算机会顺序执行这两条命令。
输入127.0.0.1&ipconfig
下图中%26是&
的URL编码
输入127.0.0.1&type C:\flag.txt
type是查看文件命令
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
—— W3school
简单来说就是eval()函数可以执行PHP代码。
然后PHP的system()函数可以执行系统命令,这样子远程代码执行就可以编程远程命令执行。
输入 system(“type C:\flag.txt”),正常执行,可以访问到文件。
关键源码:
if(isset($_POST['submit']) && $_POST['txt'] != null){
if(@!eval($_POST['txt'])){
$html.="<p>你喜欢的字符还挺奇怪的!</p>";
}
}
我是一名优秀的程序员,十分优秀!