信息泄露
信息泄露
信息泄露之敏感路径和接口
哪些路径或者接口是有价值的
- 未授权直接访问的登录页⾯(一般可到JS里面去发掘这些页面,api接口页面等)
- ⽆需登录即可操作的上传页⾯(可在js发现,或者目录扫描发现)
- 编辑器(目录扫描)
- 后台(目录扫描)
- 历史版本(目录扫描)
- 错误页⾯导致应用版本等信息泄露(可爆出物理路径,如thinkphp的报错,或有的thinkphp runtime的日志信息可以使用fuzz爆破出来,或者其他的信息)
- phpinfo页⾯
- .......
寻找敏感信息泄露
目录扫描
- 字典
- 目录扫描工具
御剑
dirbuster
burp
wfuzz
....
- wfuzz
Wfuzz是⼀款为了评估WEB应用⽽⽣的Fuzz(Fuzz是爆破的⼀种⼿段)工具,它基于⼀个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求⾥注⼊任何输⼊的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。⽐如:参数、认证、表单、目录/文件、头部等等,这款工具在kali⾥⾯⾃带。
https://github.com/xmendez/wfuzz
wfuzz进行目录扫描
wfuzz -w /root/FuzzDicts/directoryDicts/en_dirctories_all.txt -w
/root/FuzzDicts/directoryDicts/php/phpFileName.txt
http://192.168.0.102/wordpress/FUZZ/FUZ2Z
过滤
--hc(code)
--hl(line)
--hw(word)
--hh(char)
wfuzz -w wordlist --hc 404 URL/FUZZ
wfuzz -w wordlist --hs "Not Found" URL/FUZZ
在JS文件中寻找敏感接口
https://github.com/Threezh1/JSFinder
https://github.com/m4ll0k/BurpSuite-Secret_Finder
https://github.com/GerbenJavado/LinkFinder
参考⽂章:
https://www.anquanke.com/post/id/86232
https://www.secpulse.com/archives/35877.html
https://www.uedbox.com/post/43499/
IIS短文件名漏洞
该短文件名有以下特征:
(1)只有前六位字符(大写)直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)。
(2)后缀名最长只有3位,多余的被截断。
我们可以在启用.net的IIS下暴力列举短文件名,原因是:
(1)访问构造的某个存在的短文件名,会返回404;
(2)访问构造的某个不存在的短文件名,会返回400。
短文件名漏洞可以帮助猜解短文件或文件夹的前六个字母,短文件名是不能去访问的,如果是文件,还可以猜出他的后缀名,只有去猜测完整文件名,才能访问
这个漏洞的局限有几点:
1、此漏洞只能确定前6个字符,如果后面的字符太长、包含特殊字符,很难猜解;
2、如果文件名本身太短(无短文件名)也是无法猜解的;
3、需要IIS和.net两个条件都满足;
4、不支持中文文件名,包括中文文件和中文文件夹。一个中文相当于两个英文字符,故超过4个中文字会产生短文件名,但是IIS不支持中文猜测。
参考⽂章:https://blog.csdn.net/weixin_39190897/article/details/88031228
报错信息
php常用方法
-
单引号爆路径
直接在URL后⾯加单引号,要求单引号没有被过滤(gpc=off)且服务器默认返回错误信息。
-
错误参数爆路径
test.php?id=-1 -
注⼊点可读取文件
Windows:
c:\windows\php.ini php配置文件
c:\windows\system32\inetsrv\MetaBase.xml IIS虚拟主机配置文件
Linux:
/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 虚拟目录配置文件
参数变为数组
修改请求方法
将get方法改为put 程序就报错,泄漏网站绝对路径。
搜索引擎搜索错误页面或者测试页面
test.php
ceshi.php
info.php
phpinfo.php
php_info.php
1.php
Site:xxx.com error
Site:xxx.com warning
Site:xxx.com "fatal error"
⼀些组件的特性
- Apache样例文件泄露
http://xxx.com/examples/servlets/servlet/CookieExample
http://xxx.com/examples/servlets/servlet/RequestHeaderExample
http://xxx.com/examples/jsp/snp/snoop.jsp
http://xxx.com/examples/async/async1
- War文件信息泄露
war文件信息泄露是指部署在war文件由于配置不当,导致重要的配置文件信息泄露。
config/config.properties
configure/configure.properties
applicationContext.xml
sysconfig.properties
web.xml
config.xml
jdbc.properties
- Swagger
/swagger-ui.html
/swagger/swagger-ui.html
/api/swagger-ui.html
/v1.x/swagger-ui.html
/swagger/index.html
- Tomcat
tomcat 后缀改成大写,会显示源码,只要把jsp文件后缀名改为大写就可以。 - Nginx文件类型错误解析爆路径
要求Web服务器是nginx,且存在文件类型解析漏洞。有时在图片地址后加/x.php,该图片不但会被当作php文件执行(解析漏洞文件上传的利用,顺带爆出路径),还有可能爆出物理路径。
信息泄露之源码泄露
版本控制器造成源码泄露
什么是版本控制器
版本控制是指对软件开发过程中各种程序代码、配置文件及说明⽂档等文件变更的管理,是软件配置管理的核⼼思想之⼀。(如git,svn)
SVN源码泄露
SVN(subversion)是源代码版本管理软件。在使用SVN管理本地代码过程中,会⾃动⽣成⼀个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但⼀些网站管理员在发布代码时,不愿意使用‘导出’功能,⽽是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,⿊客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。
测试工具
Git源码泄露
在运行git init初始化代码库的时候,会在当前目录下⾯产⽣⼀个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。
测试工具
https://github.com/lijiejie/GitHack
https://github.com/BugScanTeam/GitHack
.DS_Store文件造成泄露
.DS_Store是Mac下Finder用来保存如何展⽰文件/文件夹的数据文件,每个文件夹下对应⼀个,用来存储当前文件夹的属性。由于开发⼈员在发布代码时未删除文件夹中隐藏的.DS_store,可能造成文件目录结构泄漏、源代码文件等敏感信息的泄露。
测试工具
https://github.com/lijiejie/ds_store_exp
python ds_store_exp.py http://www.example.com/.DS_Store
WEB-INF/web.xml泄露
WEB-INF是JAVA的WEB应用安全目录,如果想在页⾯中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。⼀般情况,jsp引擎默认都是禁⽌访问WEB-INF目录的,但是在⼀些特定情况下,我们能访问到这个目录,并且查看web.xml文件,导致⼀些敏感信息的泄露。
网站备份压缩文件
在线网盘造成源码泄露
- 百度云/腾讯微云/360云盘.......
- Github