可我浪费着我寒冷的年华

CTF中常见Web源码泄露总结

 

目录 00x1 .ng源码泄露
 00x2  git源码泄露
 00x3 .DS_Store文件泄漏
 00x4 网站备份压缩文件
 00x5 SVN导致文件泄露
 00x6 WEB-INF/web.xml泄露
 00x7 CVS泄漏
 工具推荐
 参考

0x01 .hg源码泄漏

漏洞成因:

  hg init的时候会生成.hg

<span class="pln">e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln">http</span><span class="pun">:</span><span class="com">//www.am0s.com/.hg/</span>

漏洞利用:

工具:dvcs-ripper

<span class="pln">rip</span><span class="pun">-</span><span class="pln">hg</span><span class="pun">.</span><span class="pln">pl </span><span class="pun">-</span><span class="pln">v </span><span class="pun">-</span><span class="pln">u http</span><span class="pun">:</span><span class="com">//www.am0s.com/.hg/</span>

0x02 .git源码泄漏

漏洞成因:

  在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码.

漏洞利用:

工具:

GitHack

<span class="typ">GitHack</span><span class="pun">.</span><span class="pln">py http</span><span class="pun">:</span><span class="com">//www.am0s.com/.git/</span>

dvcs-ripper

<span class="pln">rip</span><span class="pun">-</span><span class="pln">git</span><span class="pun">.</span><span class="pln">pl </span><span class="pun">-</span><span class="pln">v </span><span class="pun">-</span><span class="pln">u http</span><span class="pun">:</span><span class="com">//www.am0s.com/.git/</span>

 

0x03 .DS_Store文件泄漏

漏洞成因:

  在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。

漏洞利用:

注意路径检查

工具:

dsstoreexp

Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。

Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。

<span class="pln">e</span><span class="pun">.</span><span class="pln">g</span><span class="pun">.</span><span class="pln">http</span><span class="pun">:</span><span class="com">//www.am0s.com/admin/scripts/fckeditor.266/editor/.svn/entries</span>

漏洞利用:

工具:

dvcs-ripper

Seay-Svn

0x06 WEB-INF/web.xml泄露

WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

WEB-INF主要包含一下文件或目录:

  • /WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
  • /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中
  • /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
  • /WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
  • /WEB-INF/database.properties:数据库配置文件

漏洞成因:

通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。

漏洞检测以及利用方法:

通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。
一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,问题原因其实很简单,Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/* { deny all; } 或者return 404; 或者其他!

0x07 CVS泄漏

漏洞利用

测试的目录

取回源码的命令

查看所有的改变的命令,转到download的目录

Bazaar/bzr

工具:

dvcs-ripper

<span class="pln">rip</span><span class="pun">-</span><span class="pln">bzr</span><span class="pun">.</span><span class="pln">pl </span><span class="pun">-</span><span class="pln">v </span><span class="pun">-</span><span class="pln">u http</span><span class="pun">:</span><span class="com">//www.am0s.com/.bzr/</span>

工具推荐

参考

 

转载:http://www.am0s.com/ctf/175.html

posted @ 2017-10-05 03:03  珍惜少年时  阅读(7773)  评论(0编辑  收藏  举报
可我浪费着我寒冷的年华