实验步骤
File Inclusion模块
php的文件包含不管文件后缀名是什么,只要包含php代码,就可以被当作php代码解析第一关 File Inclusion(local)
首先可以在输入框中选择很多NBA明星,可以看到他们的照片和简介,同时访问是URL也暴露了出来,然后一次访问,依次可以看到有filex.php(x是数字)这样的的文件,而且是通过URL参数从前端传到后端的话,如果没有严格过滤就很可能有文件包含漏洞
那我们bp查看一下数据
将数据发送到测试器,我们看看之后数的字是否还有别的有用的信息
爆破的就选择数值就可以了,从6到100
6到100,每次依次增加1
可以看到在file6.php的文件中有了账号密码!
然后其他的都是报错,也有一些长度只相差2的也都是报错
看到了这个报错,通过这个报错,可以知道fi_local.php中用来进行文件包含的函数是include(),并且包含的文件路径为与fi_local.php同文件夹下include文件夹中的文件。
从上面的报错信息可以知道网站根目录是E:CTF\phpStudy_64\phpstudy_pro\WWW
所以肯定会有Windows\win.ini这个文件,用这个来尝试有没有文件包含漏洞。
上一部分已经分析过,上图报错信息泄露出include()函数包含的文件是与fi_local.php同文件夹下include文件夹中的文件,由于路径参数中有个固定的include/,并且包含的文件路径为与fi_local.php同文件夹下include文件夹中的文件。
我们在这个路径下上传一个txt格式的php代码
因为那不是file6.php的路径(其实在include文件中),所以使用../用来返回上一层目录。
结合报错信息中泄露的fi_local.php文件位置,可以算出相对路径为../../../../../../windows/win.ini,代入url中组成payload:
http://pikachu/vul/fileinclude/fi_local.php?filename=../../../../../../windows/win.ini&submit=%E6%8F%90%E4%BA%A4
成功读到win.ini文件的内容
这时候需要上传一个图片马,结合文件上传getshell
在pikachu Unsafe Fileupload 不安全的文件上传的 getimagesize关卡,上传了图片马,该其内容包含下图所示的一句话木马。,然后需要将.txt文件修改为.jpg
文件上传w.jpg,就能回显部分路径和新生成的图片文件名
所以就能得出payload为
用蚁键连接
成功连接
第二关 File Inclusion(remote)
在远程包含漏洞中,攻击者可以通过访问外部地址来加载远程的代码。
这关的下拉框和local那关还是一样的,随便选一个,观察一下url有什么不同?url中把include()函数的完整参数给出来了
url中把include()函数的完整参数给出来了
远程包含http试一下
所以这关其实除了远程文件包含,还可以本地文件包含使用绝对路径.
写一个生成shell得一句话木马
然后将.txt改为.php文件
然后打开蚁键,将shell.php文件的目录复制下来,粘贴在filename=后面
OK连接成功
总结
通过这次漏洞的作业,我了解到了文件上传漏洞的一些相关知识,又更熟悉了一遍bp,一句话木马的上传,蚁键的连接包括在远程包含漏洞中,攻击者可以通过访问外部地址来加载远程的代码等