信息泄露

信息泄露

信息泄露之敏感路径和接口

哪些路径或者接口是有价值的

  • 未授权直接访问的登录页⾯(一般可到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
posted @ 2020-12-08 12:40  Black-Sweater  阅读(294)  评论(0编辑  收藏  举报