九、文件包含-Low
九、文件包含-Low
一、漏洞原理
web前端通过GET和POST两种方式向服务器传递参数,文件包含漏洞靶场使用的是GET方式,GET方式的特点是将参数以明文的方式拼接到访问链接中,我们可以通过手动修改链接中的参数值向服务器发送请求数据,如果服务器对GET方式传输的数据没有进行限制的话,攻击者就会通过修改GET参数的方式与服务器进行交互,达到攻击目的。
二、漏洞利用
对文件包含漏洞复现前需要在服务器上开启php的allow_url_include功能,然后通过修改GET参数的方式进行攻击。
1.在服务器上打开小皮面板,查看当前php使用的版本。
2.在配置文件中找到php.ini选项,选中当前php版本,打开配置文件。
3.在php.ini文件中查找到allow_url_include,将其值改成On,打开allow_url_include功能,然后重启web服务。
4.访问文件包含页面,点击file1.php,可以观察到链接中使用page参数传递文件名称,以此访问相应文件的页面。
5.服务器本地文件包含(一)
尝试按照给出的文件名称格式修改参数值,发现文件file4.php在前端页面上没有给出链接,但是通过修改链接参数值可以访问到file4.php文件的内容,导致file4.php文件内容泄漏。(通过修改page参数值的方式还可以查看服务器上其他文件的内容。)
6.服务器本地文件包含(二)
通过触发网站报错的方式获取服务器绝对路径,修改绝对路径读取敏感文件(或者使用../形式切换逻辑路径)。
7.远程文件包含
文件包含功能还可以通过http、https协议读取远程服务器上的文件,DVWA支持php运行环境,默认将读取的文件内容按照php文件运行,如果不能运行则直接输出文件内容。
这里我们在远程服务器上编辑一段php一句话木马,保存成.txt文件(不要命名成.php格式,因为这样文件会被远程服务器直接执行),利用文件包含漏洞让DVWA服务器读取txt文件,DVWA服务器会使用php运行环境执行txt中的代码。