安全矩阵

 找回密码
 立即注册
搜索
查看: 704|回复: 0

常见的敏感文件泄漏总结

[复制链接]

77

主题

77

帖子

257

积分

中级会员

Rank: 3Rank: 3

积分
257
发表于 2023-2-8 14:56:15 | 显示全部楼层 |阅读模式
本帖最后由 Aspark 于 2023-2-8 15:00 编辑

敏感文件通常指携带敏感信息的文件,最为常见的就是数据库的配置文件、网站源码备份、数据库备份等,管理员为了方便下载,将源码备份放置在 web 目录,然后下载至本地备份,下载完之后忘记删除,从而导致漏洞的出现。
配置文件泄漏
最为典型的就是 spring 框架的配置文件泄漏,常见路径:

  1. "/env"
  2. /actuator/env"
复制代码

泄漏信息如图:


这类漏洞通常需要日常收集常见系统的配置文件默认路径,如果存在未授权访问的情况,就会存在文件泄漏的问题。
除了这类常见框架、系统的配置文件泄漏外,还有因为管理员修改配置文件时,为了防止无法恢复,而创建的备份文件,比如 config.php.bak、config.php.20230101 等,这类文件是可以下载的,从而泄漏配置信息。
修复方案
1、对于备份文件,为在系统中使用的,可以删除处置,或者备份到其他无法直接通过浏览器访问的目录
2、在使用的无法删除的文件,需要设置权限,仅限本地访问
网站备份泄漏
网站源码备份是网站管理员经常要做的操作,有的管理员会自动备份到备份服务器,而有些管理员为了简单方便,将服务器上到源码打包压缩后放置在 web 目录,然后从服务器再下载到本地,进行本地备份,下载完成之后是应该删除的,但是由于未做这个操作,导致整站源码泄漏。
备份的文件名通常为 wwwroot、www、子域名等,压缩包后缀通常为 zip、tar.gz 等,通过组合常用备份名称和后缀,可以进行目录扫描,来发现这类备份文件。
下面是某工具的配置文件,收集整理了常见的备份文件组合方式:

  1. #  format:  /path  {tag="text  string  to  find"}  {status=HTTP_STATUS}  {type="content-type  should  contain  this  string"}  {type_no="content-type  should  not  contain  this  string"}
  2. #  each  item  must  starts  with  right  slash  "/"


  3. /core  {status=200}  {tag="ELF"}

  4. /../{hostname_or_folder}.old  {status=301}  {type="html"}
  5. /../{hostname_or_folder}.backup  {status=301}  {type="html"}
  6. /../{hostname_or_folder}.bak  {status=301}  {type="html"}

  7. /{sub}.zip  {status=206}  {type="application/octet-stream"}
  8. /{sub}.rar  {status=206}  {type="application/octet-stream"}
  9. /{sub}.tar.gz  {status=206}  {type="application/octet-stream"}
  10. /{sub}.tar.bz2  {status=206}  {type="application/octet-stream"}
  11. /{sub}.tgz  {status=206}  {type="application/octet-stream"}
  12. /{sub}.7z  {status=206}  {type="application/octet-stream"}

  13. /old.zip  {status=206}  {type="application/octet-stream"}
  14. /old.rar  {status=206}  {type="application/octet-stream"}
  15. /old.tar.gz  {status=206}  {type="application/octet-stream"}
  16. /old.tar.bz2  {status=206}  {type="application/octet-stream"}
  17. /old.tgz  {status=206}  {type="application/octet-stream"}
  18. /old.7z  {status=206}  {type="application/octet-stream"}

  19. /{hostname_or_folder}.zip  {status=206}  {type="application/octet-stream"}
  20. /{hostname_or_folder}.rar  {status=206}  {type="application/octet-stream"}
  21. /{hostname_or_folder}.tar.gz  {status=206}  {type="application/octet-stream"}
  22. /{hostname_or_folder}.tar.bz2  {status=206}  {type="application/octet-stream"}
  23. /{hostname_or_folder}.tgz  {status=206}  {type="application/octet-stream"}
  24. /{hostname_or_folder}.7z  {status=206}  {type="application/octet-stream"}

  25. /../{hostname_or_folder}.zip  {status=206}  {type="application/octet-stream"}
  26. /../{hostname_or_folder}.rar  {status=206}  {type="application/octet-stream"}
  27. /../{hostname_or_folder}.tar.gz  {status=206}  {type="application/octet-stream"}
  28. /../{hostname_or_folder}.tar.bz2  {status=206}  {type="application/octet-stream"}
  29. /../{hostname_or_folder}.tgz  {status=206}  {type="application/octet-stream"}
  30. /../{hostname_or_folder}.7z  {status=206}  {type="application/octet-stream"}
  31. /../{hostname_or_folder}.log  {status=206}  {type="application/octet-stream"}
  32. /../{hostname_or_folder}.sh  {status=206}  {type="application/octet-stream"}

  33. /temp.zip  {status=206}  {type="application/octet-stream"}
  34. /temp.rar  {status=206}  {type="application/octet-stream"}
  35. /temp.tar.gz  {status=206}  {type="application/octet-stream"}
  36. /temp.tgz  {status=206}  {type="application/octet-stream"}
  37. /temp.tar.bz2  {status=206}  {type="application/octet-stream"}

  38. /package.zip  {status=206}  {type="application/octet-stream"}
  39. /package.rar  {status=206}  {type="application/octet-stream"}
  40. /package.tar.gz  {status=206}  {type="application/octet-stream"}
  41. /package.tgz  {status=206}  {type="application/octet-stream"}
  42. /package.tar.bz2  {status=206}  {type="application/octet-stream"}

  43. /tmp.zip  {status=206}  {type="application/octet-stream"}
  44. /tmp.rar  {status=206}  {type="application/octet-stream"}
  45. /tmp.tar.gz  {status=206}  {type="application/octet-stream"}
  46. /tmp.tgz  {status=206}  {type="application/octet-stream"}
  47. /tmp.tar.bz2  {status=206}  {type="application/octet-stream"}

  48. /test.zip  {status=206}  {type="application/octet-stream"}
  49. /test.rar  {status=206}  {type="application/octet-stream"}
  50. /test.tar.gz  {status=206}  {type="application/octet-stream"}
  51. /test.tgz  {status=206}  {type="application/octet-stream"}
  52. /test.tar.bz2  {status=206}  {type="application/octet-stream"}

  53. /backup.zip  {status=206}  {type="application/octet-stream"}
  54. /backup.rar  {status=206}  {type="application/octet-stream"}
  55. /backup.tar.gz  {status=206}  {type="application/octet-stream"}
  56. /backup.tgz  {status=206}  {type="application/octet-stream"}
  57. /back.tar.bz2  {status=206}  {type="application/octet-stream"}

  58. /db.zip  {status=206}  {type="application/octet-stream"}
  59. /db.rar  {status=206}  {type="application/octet-stream"}
  60. /db.tar.gz  {status=206}  {type="application/octet-stream"}
  61. /db.tgz  {status=206}  {type="application/octet-stream"}
  62. /db.tar.bz2  {status=206}  {type="application/octet-stream"}
  63. /db.log  {status=206}  {type="application/octet-stream"}
  64. /db.inc  {status=200}  {type_no="html"}
  65. /db.sqlite  {status=206}  {type="application/octet-stream"}

  66. /db.sql.gz  {status=206}  {type="application/octet-stream"}
  67. /dump.sql.gz  {status=206}  {type="application/octet-stream"}
  68. /database.sql.gz  {status=206}  {type="application/octet-stream"}
  69. /backup.sql.gz  {status=206}  {type="application/octet-stream"}

  70. /data.zip  {status=206}  {type="application/octet-stream"}
  71. /data.rar  {status=206}  {type="application/octet-stream"}
  72. /data.tar.gz  {status=206}  {type="application/octet-stream"}
  73. /data.tgz  {status=206}  {type="application/octet-stream"}
  74. /data.tar.bz2  {status=206}  {type="application/octet-stream"}

  75. /database.zip  {status=206}  {type="application/octet-stream"}
  76. /database.rar  {status=206}  {type="application/octet-stream"}
  77. /database.tar.gz  {status=206}  {type="application/octet-stream"}
  78. /database.tgz  {status=206}  {type="application/octet-stream"}
  79. /database.tar.bz2  {status=206}  {type="application/octet-stream"}

  80. /ftp.zip  {status=206}  {type="application/octet-stream"}
  81. /ftp.rar  {status=206}  {type="application/octet-stream"}
  82. /ftp.tar.gz  {status=206}  {type="application/octet-stream"}
  83. /ftp.tgz  {status=206}  {type="application/octet-stream"}
  84. /ftp.tar.bz2  {status=206}  {type="application/octet-stream"}

  85. /log.txt  {status=200}  {type="text/plain"}
  86. /log.tar.gz  {status=206}  {type="application/octet-stream"}
  87. /log.rar  {status=206}  {type="application/octet-stream"}
  88. /log.zip  {status=206}  {type="application/octet-stream"}
  89. /log.tgz  {status=206}  {type="application/octet-stream"}
  90. /log.tar.bz2  {status=206}  {type="application/octet-stream"}
  91. /log.7z  {status=206}  {type="application/octet-stream"}

  92. /logs.txt  {status=200}  {type="text/plain"}
  93. /logs.tar.gz  {status=206}  {type="application/octet-stream"}
  94. /logs.rar  {status=206}  {type="application/octet-stream"}
  95. /logs.zip  {status=206}  {type="application/octet-stream"}
  96. /logs.tgz  {status=206}  {type="application/octet-stream"}
  97. /logs.tar.bz2  {status=206}  {type="application/octet-stream"}
  98. /logs.7z  {status=206}  {type="application/octet-stream"}

  99. /web.zip  {status=206}  {type="application/octet-stream"}
  100. /web.rar  {status=206}  {type="application/octet-stream"}
  101. /web.tar.gz  {status=206}  {type="application/octet-stream"}
  102. /web.tgz  {status=206}  {type="application/octet-stream"}
  103. /web.tar.bz2  {status=206}  {type="application/octet-stream"}

  104. /www.log  {status=206}  {type="application/octet-stream"}
  105. /www.zip  {status=206}  {type="application/octet-stream"}
  106. /www.rar  {status=206}  {type="application/octet-stream"}
  107. /www.tar.gz  {status=206}  {type="application/octet-stream"}
  108. /www.tgz  {status=206}  {type="application/octet-stream"}
  109. /www.tar.bz2  {status=206}  {type="application/octet-stream"}

  110. /wwwroot.zip  {status=206}  {type="application/octet-stream"}
  111. /wwwroot.rar  {status=206}  {type="application/octet-stream"}
  112. /wwwroot.tar.gz  {status=206}  {type="application/octet-stream"}
  113. /wwwroot.tgz  {status=206}  {type="application/octet-stream"}
  114. /wwwroot.tar.bz2  {status=206}  {type="application/octet-stream"}


  115. /output.zip  {status=206}  {type="application/octet-stream"}
  116. /output.rar  {status=206}  {type="application/octet-stream"}
  117. /output.tar.gz  {status=206}  {type="application/octet-stream"}
  118. /output.tgz  {status=206}  {type="application/octet-stream"}
  119. /output.tar.bz2  {status=206}  {type="application/octet-stream"}

  120. /admin.zip  {status=206}  {type="application/octet-stream"}
  121. /admin.rar  {status=206}  {type="application/octet-stream"}
  122. /admin.tar.gz  {status=206}  {type="application/octet-stream"}
  123. /admin.tgz  {status=206}  {type="application/octet-stream"}
  124. /admin.tar.bz2  {status=206}  {type="application/octet-stream"}

  125. /upload.zip  {status=206}  {type="application/octet-stream"}
  126. /upload.rar  {status=206}  {type="application/octet-stream"}
  127. /upload.tar.gz  {status=206}  {type="application/octet-stream"}
  128. /upload.tgz  {status=206}  {type="application/octet-stream"}
  129. /upload.tar.bz2  {status=206}  {type="application/octet-stream"}

  130. /website.zip  {status=206}  {type="application/octet-stream"}
  131. /website.rar  {status=206}  {type="application/octet-stream"}
  132. /website.tar.gz  {status=206}  {type="application/octet-stream"}
  133. /website.tgz  {status=206}  {type="application/octet-stream"}
  134. /website.tar.bz2  {status=206}  {type="application/octet-stream"}

  135. /package.zip  {status=206}  {type="application/octet-stream"}
  136. /package.rar  {status=206}  {type="application/octet-stream"}
  137. /package.tar.gz  {status=206}  {type="application/octet-stream"}
  138. /package.tgz  {status=206}  {type="application/octet-stream"}
  139. /package.tar.bz2  {status=206}  {type="application/octet-stream"}

  140. /sql.log  {status=206}  {type="application/octet-stream"}
  141. /sql.zip  {status=206}  {type="application/octet-stream"}
  142. /sql.rar  {status=206}  {type="application/octet-stream"}
  143. /sql.tar.gz  {status=206}  {type="application/octet-stream"}
  144. /sql.tgz  {status=206}  {type="application/octet-stream"}
  145. /sql.tar.bz2  {status=206}  {type="application/octet-stream"}
  146. /sql.7z  {status=206}  {type="application/octet-stream"}
  147. /sql.inc  {status=200}  {type_no="html"}

  148. /data.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  149. /qq.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  150. /tencent.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  151. /database.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  152. /db.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  153. /test.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  154. /admin.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  155. /backup.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  156. /user.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  157. /sql.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}

  158. /index.zip  {status=206}  {type="application/octet-stream"}
  159. /index.7z  {status=206}  {type="application/octet-stream"}
  160. /index.bak  {status=206}  {type="application/octet-stream"}
  161. /index.rar  {status=206}  {type="application/octet-stream"}
  162. /index.tar.tz  {status=206}  {type="application/octet-stream"}
  163. /index.tar.bz2  {status=206}  {type="application/octet-stream"}
  164. /index.tar.gz  {status=206}  {type="application/octet-stream"}

  165. /{hostname_or_folder}.log  {status=206}  {type="application/octet-stream"}
  166. /logs/{hostname_or_folder}.log  {status=206}  {type="application/octet-stream"}

  167. /dump.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}
  168. /{sub}.sql  {status=206}  {type="application/octet-stream"}  {tag="CREATE  TABLE"}

  169. /old.zip  {status=206}  {type="application/octet-stream"}
  170. /old.rar  {status=206}  {type="application/octet-stream"}
  171. /old.tar.gz  {status=206}  {type="application/octet-stream"}
  172. /old.tar.bz2  {status=206}  {type="application/octet-stream"}
  173. /old.tgz  {status=206}  {type="application/octet-stream"}
  174. /old.7z  {status=206}  {type="application/octet-stream"}

  175. /1.tar.gz  {status=206}  {type="application/octet-stream"}
  176. /a.tar.gz  {status=206}  {type="application/octet-stream"}
  177. /x.tar.gz  {status=206}  {type="application/octet-stream"}
  178. /o.tar.gz  {status=206}  {type="application/octet-stream"}

  179. /conf/conf.zip  {status=206}  {type="application/octet-stream"}

  180. /conf.tar.gz  {status=206}  {type="application/octet-stream"}

  181. /qq.pac  {status=206}  {type="application/octet-stream"}
  182. /tencent.pac  {status=206}  {type="application/octet-stream"}

  183. /server.cfg  {status=206}  {type="application/octet-stream"}

  184. /deploy.tar.gz  {status=206}  {type="application/octet-stream"}
  185. /build.tar.gz  {status=206}  {type="application/octet-stream"}
  186. /install.tar.gz  {status=206}  {type="application/octet-stream"}

  187. /secu-tcs-agent-mon-safe.sh  {status=206}
  188. /password.tar.gz  {status=206}  {type="application/octet-stream"}
  189. /site.tar.gz  {status=206}  {type="application/octet-stream"}
  190. /tenpay.tar.gz  {status=206}  {type="application/octet-stream"}

  191. /rsync_log.sh  {status=206}  {type="application/octet-stream"}
  192. /rsync.sh  {status=206}  {type="application/octet-stream"}

  193. /webroot.zip  {status=206}  {type="application/octet-stream"}

  194. /tools.tar.gz  {status=206}  {type="application/octet-stream"}

  195. /users.tar.gz  {status=206}  {type="application/octet-stream"}

  196. /webserver.tar.gz  {status=206}  {type="application/octet-stream"}
复制代码


推荐工具
https://github.com/maurosoria/dirsearch


修复方案
删除备份文件即可
隐藏目录泄漏
常见的隐藏目录泄漏有三种 svn、git 以及 DS_Store,svn 和 git 是代码管理系统,在上线代码时,同步代码的过程中会把因此目录 .git 和 .svn 给同步上去,导致通过远程即可访问该目录下的内容,而 DS_Store 是 mac 系统下自动生成的文件,每个目录下都有,记录了目录下文件变动的历史。
svn
Subversion,简称 SVN,是一个开放源代码的版本控制系统,相对于的 RCS、CVS,采用了分支管理系统,它的设计目标就是取代 CVS。互联网上越来越多的控制服务从 CVS 转移到 Subversion。
svn 更新至 1.7+ .svn/entries 目录就不包含文件目录列表了。检测方法为探测网站目录下是否有 .svn/entries 这个文件,内容如图:


工具推荐
https://github.com/admintony/svnExploit


修复方案
1、上线前删除该目录
2、在服务器上配置禁止该目录访问,常见配置如下:
  1. Apache:

  2.     <Directory ~ "\.svn">
  3.     Order allow,deny
  4.     Deny from all
  5.     </Directory>
复制代码


git
在运行 git init 初始化代码库的时候,会在当前目录下面产生一个 .git 的隐藏目录,用来记录代码的变更记录等等。在发布代码的时候,而 .git 这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。
攻击者利用该漏洞下载 .git 文件夹中的所有内容。如果文件夹中存在敏感信息(数据库账号密码、源码等),通过白盒的审计等方式就可能直接获得控制服务器的权限和机会!
漏洞发现
1、可以先观察一下站点是否有醒目地指出 Git,如果有的话,那就说明站点很大可能是存在这个问题的
2、如果站点没有醒目的提示的话,可以利用 dirsearch 这类扫描工具,如果存在 ./git 泄露的问题的话,会被扫描出来的
3、最直观的方式,就是直接通过网页访问 .git 目录,如果能访问就说明存在
当确认存在这个漏洞之后,就可以通过工具来下载 git 泄露的全部源码
工具推荐
https://github.com/0xHJK/dumpall


.DS_Store
.DS_Store 是 Mac 下 Finder 用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。和 windows 相比,等同于 desktop.ini 和 Thumbs.db 两个文件。
如果开发/设计人员将 .DS_Store 上传部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。
比如我本地系统:


尝试用工具解析:


能看到我本地目录下的一些目录信息。
工具推荐
https://github.com/gehaxelt/Python-dsstore


https://github.com/lijiejie/ds_store_exp


总结
今天分享的这部分内容,最终危害取取决于泄漏的文件,比如可以远程连接的数据库账号密码和地址,那么就存在直接的危害,导致数据库被接管,如果泄漏的是网站源码,则可能存在漏洞被通过代码审计的方式审计出来,如果都是些静态资源,那么危害几乎可以忽略,所以学需要具体问题具体对待。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 00:53 , Processed in 0.013505 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表