物理路径
报错
【报错获得】
在处理报错信息的问题上如果处理不当,就可导致路径信息泄露,比如访问一些不存在的文件等思路。
这里的报错方法就很多了,说不完的,具体还要根据实际情况操作。下面说几种实用的↓
- 1.有动态URL的地方可以替换参数 替换参数值为不存在的,很多时候都能爆物理路径
- 2.访问不存在的文件名 文件 或者改正常后缀为不支持的后缀。
IIS7.0以上,如果没有修改404页面,只要浏览web任意不存在的文件,都会直接暴出绝对路径。同理,thinkphp也有这个性质。
在id=1的注入点,使用各种不支持的字符,比如id=1’ id=? id=-1 id=\ id=/ 都有可能暴出绝对路径。
还有的时候传一些错误图片会报错
windows不支持的符号,?:<>之类的,还有windows不支持的文件名aux
Windows服务器上传aux文件或者新建aux文件夹,因为不允许这种文件存在而报错泄露绝对路径。- 3.尤其是php框架写的站,上传很容易爆出物理路径,根据具体情况了,比如一次提交允许的后缀,整体提交时抓包改为不支持的后缀,放包,很多时候都能爆出物理路径。
有一部分都是sql语句报错,sql很多时候会爆物理路径,所以相信你已经会拓展了。
后台
【后台获得】
可以登录后台的话,后台首页一般都有服务器信息的,大部分情况下物理路径都在里面。
功能点
上传图片处
第一点:
在上传图片处,这里我说下最可能存在问题的点,就是关于上传相关证明,进行实名制上传信息等功能页面,在上传图片时进行抓包,然后查看返回包,那么就可看到当前服务器的绝对路径信息。
搜索引擎
【搜索引擎探测】
结合关键字和site语法搜索出错页面的网页快照,常见关键字有warning和fatal error。注意,如果目标站点是二级域名,site接的是其对应的顶级域名,这样得到的信息要多得多。
Site:xxx.edu.tw warning
Site:xxx.com.tw “fatal error”
由于很多网站本身容错做的不好,会有一些暴露物理路径的界面,如果被搜索引擎收录了,那么可以通过搜索引擎来找到
在搜索引擎搜索 site:目标 关键字
我总结了一下常见的报错关键词↓
warning
error
module file
not exist
数据库
配置出错
找不到包含文件
包含路径
路径为
select
Warning:
mysqli_query()
expects parameter
to be mysqli
boolean given in on line
directory in
Fatal error
require_once()
Failed opening required
include_path=
容器特性
【容器特性爆物理路径】
很多,如:Apache Tomcat、Struts2、CMS、zabix、Nginx等等,例如Nginx的某版本解析漏洞,就可造成路径信息泄露。
- IIS大于6的版本,基本都是 导致他404就可以爆出物理路径、IIS名、IIS版本。这个很简单,随便访问个不存在的目录或文件就可以。
- nginx文件类型错误解析爆路径:
说明:
要求Web服务器是nginx,且存在文件类型解析漏洞。有时在图片地址后加/x.php,该图片不但会被当作php文件执行,有可能爆出物理路径
www.xxx.com/xx.jpg/x.php- /etc/httpd/conf/httpd.conf
这是apache默认目录
最底下有一句
Load config files in the “/etc/httpd/conf.d” directory, if any.
IncludeOptional conf.d/.conf
这代表,在/etc/httpd/conf.d目录下的所有.conf文件都会被加载,也就是说管理员可以在/etc/httpd/conf.d/.conf里面写网站目录。
所以最后读/etc/httpd/conf.d/vhost.conf成功读出网站绝对路径
思路就是先读/etc/httpd/conf/httpd.conf
没有网站目录就看IncludeOptional conf.d/*.conf
看完就尝试读
/etc/httpd/conf.d/httpd.conf
/etc/httpd/conf.d/vhost.conf
/etc/httpd/conf.d/httpd-vhost.conf
/etc/httpd/conf.d/httpd.conf.bak
等等
文件泄露
【遗留文件 探针文件】
通过遗留文件获得,比如 phpinfo.php info.php site.php 1.php a.php 一些探针文件啊都有,等等。在遗留文件中搜索 SCRIPT_FILENAME。
很多网站的根目录下都存在测试文件,脚本代码通常都是phpinfo(),
www.xxx.com/test.php
www.xxx.com/ceshi.php
www.xxx.com/info.php
www.xxx.com/phpinfo.php
www.xxx.com/php_info.php
www.xxx.com/1.php
phpmyadmin爆路径
一旦找到phpmyadmin的管理页面,再访问该目录下的某些特定文件,就很有可能爆出物理路径。
至于phpmyadmin的地址可以用wwwscan这类的工具去扫,也可以选择google。
/phpmyadmin/libraries/lect_lang.lib.php
/phpMyAdmin/index.php?lang[]=1
/phpMyAdmin/phpinfo.php
load_file()
/phpmyadmin/themes/darkblue_orange/layout.inc.php
/phpmyadmin/libraries/select_lang.lib.php
/phpmyadmin/libraries/lect_lang.lib.php
/phpmyadmin/libraries/mcrypt.lib.php
XML处
第一点:
一些XML限制或删除不完全,可导致服务器等信息泄露。
【配置文件找路径】
- 如果注入点有文件读取权限,就可以手工load_file或工具读取配置文件,再从中寻找路径信息(一般在文件末尾)。
各平台下Web服务器和PHP的配置文件默认路径可以上网查,这里列举常见的几个。
Windows:
c:\windows\php.ini php配置文件
c:\windows\system32\inetsrv\MetaBase.xml IIS虚拟主机配置文件- 如果有root读取文件的权限,或者任意文件读取漏洞,可以读取容器的配置文件,或者集成环境的固定web目录,判断集成环境,可以通过mysql的根目录判断,前面注入时说到的@@datadir:
常见配置文件:
C:\Windows\system32\inetsrv\metabase.xml
C:\Windows\System32\inetsrv\config\applicationHost.config
C:\xampp\apache\conf\httpd.conf
/var/www/conf/httpd.conf
常见集成环境默认目录,后面往往还有以域名命名的目录,比如:
C:\www\baidu
C:\Inetpub\wwwroot
C:\xampp\htdocs
D: \phpStudy\WWW
/home/wwwroot/
/www/users/
瞎蒙大法
Linux:
其实linux还可以用瞎蒙大法
/var/www/html/网站名
/etc/php.ini php配置文件
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf Apache配置文件
/usr/local/apache/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf 虚拟目录配置文件
转载:https://blog.csdn.net/qq_38265674/article/details/111052907