【遗留文件 探针文件】
通过遗留文件获得,比如phpinfo.php info.php site.php 1.php a.php 一些探针文件啊都有,等等。
【报错获得】
这里的报错方法就很多了,说不完的,具体还要根据实际情况操作。下面说几种实用的↓
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框架写的站,上传很容易爆出物理路径,根据具体情况了,比如一次提交允许的后缀,整体提交时抓包改为不支持的后缀,放包,很多时候都能爆出物理路径。
【后台获得】
可以登录后台的话,后台首页一般都有服务器信息的,大部分情况下物理路径都在里面。
【IIS高版本特性爆物理路径】
IIS大于6的版本,基本都是 导致他404就可以爆出物理路径、IIS名、IIS版本。这个很简单,随便访问个不存在的目录或文件就可以。
【搜索引擎探测法】
由于很多网站本身容错做的不好,会有一些暴露物理路径的界面,如果被搜索引擎收录了,那么可以通过搜索引擎来找到
在搜索引擎搜索 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=
有一部分都是sql语句报错,sql很多时候会爆物理路径,所以相信你已经会拓展了。
其实linux还可以用瞎蒙大法
/var/www/html/网站名
如果有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/