freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

File Inclusion-黑盒测试
新之助 2023-04-12 09:54:04 82590
所属地 云南省

首先需要在php.ini中开启两个配置

allow_url_include=On

allow_url_fopen=On

Low级别:

1.来到File Inclusion模块,刚开始有三个文件并且URL的参数为:page=include.php

1681261242_643602ba3177641ebb140.png!small?1681261244049

2.当我点击file1.php就加载了file1的内容,并且URL的参数变为:page=file1.php

并且显示了对应的file1的文件内容,此时我们知道page参数是一个包含文件的位置

1681261329_6436031136aee407a5cd7.png!small?1681261331113

3.接着我们修改page参数的值尝试读取一个本地文件,假设这个站点的某个目录下存在一个phpinfo.php的文件我们通过../+phpinfo.php的组合尝试在不同级别目录下尝试读取phpinfo文件将page参数改为

page=../phpinfo.php 可以看到页面返回了错误信息,并且泄露了站点的路径

1681263834_64360cda9310452042674.png!small?1681263836250

4.接着我们再将page参数改为page=../../phpinfo.php

可以看到页面返回了PHP的配置信息,说明存在本地文件包含漏洞,我们可以通过包含一个本地的绝对路径

或相对路径的文件来读取该文件的信息

1681263972_64360d644a7d23a3ba50d.png!small?1681263973991

5.接着我们假设我们通过上传文件,上传了一个txt.php的文件,路径为/csrf/txt.php,目标站点为:192.168.107.128

我们尝试读取一下其内容,将page参数改为page=http://192.168.107.128/csrf/txt.php

可以看到成功的读取了文件的内容

1681261565_643603fddbbf16aa12ddc.png!small?1681261567565


Medium级别:

1.来到Medium级别,看着和low级别表面上无异

1681261665_64360461acfbb109e7f63.png!small?1681261667426

2.我们直接包含一个本地文件测试一下

假设我们知道目标机器C盘有一个key.txt文件

直接尝试本地读取将page参数改为page=C:\\key.txt可以看到直接读取到了

1681261794_643604e29461c975fd6a8.png!small?1681261796306

3.接着我们在尝试读取一下远程上传的文件,我们通过文件上传漏洞在远程主机192.168.107.128上的csrf/目录下上传了一个txt.php的文件

尝试利用远程文件包含漏洞,读取一下,将参数改为page=http://192.168.107.128/csrf/txt.php

可以看到此时报错了,观察报错信息,发现我们的http://被过滤了变成了192.168.107.128/csrf/txt.php

这里存在一个信息泄露,直接将站点目录信息给爆出来了,并且将php的警告信息原封不动的输出了

导致我们可以通过报错信息判断出其存在过滤,因此可以考虑绕过

1681261890_64360542cfbb229cebe45.png!small?1681261892546

4.接着尝试将http://改成hTTp://,参数变为hTTp://192.168.107.128/csrf/txt.php

这里我们通过大小写混合绕过了过滤,读取到了远程文件内容

1681261958_64360586a0cfcff7d76e4.png!small?1681261960304


High级别:

1.来到high级别,表面上同前两个一样,我们点击file2,就读取了file2的文件内容

1681262034_643605d2a190872f50cf4.png!small?1681262036385

2.我们先来尝试一下本地文件包含,将URL的page参数改为page=C:\\key.txt

可以看到,页面直接返回了一个错误,并且没有任何报错信息的提示,在high级别中就做了一些防信息泄露的调整,修改了返回的报错信息,导致我们无法判断具体是使用了什么规则拦截

1681262119_64360627b5d48effdd661.png!small?1681262121443

3.我们尝试一下远程文件包含,将URL的page参数改为page=http://192.168.107.128/csrf/txt.php

还是直接返回了错误页面

1681262565_643607e5b763157e3339b.png!small?1681262567409

4.接下来我们尝试利用PHP伪协议

file://本地文件路径访问本地文件系统

将URL的page参数改为page=file://C://key.txt

1681263286_64360ab686f6f3ae904da.png!small?1681263288188








# DVWA # File Inclusion
本文为 新之助 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
DVWA靶场通关秘籍
新之助 LV.4
WEB漏洞靶场教学(适合刚开始接触的人看),从漏洞原理到手法,细节都有
  • 11 文章数
  • 4 关注者
SQL Injection(Blind)-黑盒测试
2023-04-13
SQL Injection-黑盒测试
2023-04-13
File Upload-黑盒测试
2023-04-12