web源码泄露总结

0x01 前言

源码泄露在ctf中经常会出现,特此总结一下

0x02 web源码泄露分类

.git泄露

漏洞成因:

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

漏洞利用:

工具:

python Githack.py http://xxx.com/.git/
rip-git.pl -v -u http://www.example.com/.git/

swp文件泄露

漏洞成因:

swp即swap文件,在编辑文件时产生的临时文件,它时隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留。

文件名格式:.filename.swp(有时候也可能是swo)

漏洞利用:

直接按照文件名访问.swp文件,下载回来后再linux中使用vim -r .filename.swp来恢复源码

.hg泄露

漏洞成因:

hg init的时候会生成.hg文件

如:http://www.xxx.com/.hg/

漏洞利用:

工具:dvcs-ripper

rip-hg.pl -v -u http://www.example.com/.hg/
通用格式:rip-xxx.pl -v -u http://www.example.com/.xx/

.DS_Store文件泄露

漏洞成因:

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

漏洞利用:

工具:dsstoreexp

python ds_store_exp.py http://www.example.com/.DS_Store

网站备份压缩文件

漏洞成因:

  1. 服务器管理员错误地将网站或者网页的备份文件放置到服务器web目录下。
  2. 编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在web目录下。

常见备份文件后缀

  • .rar
  • .zip
  • .7z
  • .tar.gz
  • .bak
  • .swp
  • .txt
  • .html
  • .php~
  • .php.

漏洞利用

工具:dirsearch

python3 dirsearch -u "xxx" -e php,rar,zip,txt

SVN导致文件泄露

漏洞成因:

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

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

漏洞利用

工具:dvcs-ripper

rip-svn.pl -v -u http://www.example.com/.svn/

WEB-INF/web.xml泄露

WEB-INF简介及漏洞成因

WEB-INF是java的web应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对其进行相应的映射才能访问。Tomcat默认禁止这个目录,而Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身缺陷),导致可以通过Nginx访问到Tomcat的WEB-INF目录。

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

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

漏洞利用

直接手工访问/web.xml文件,通过是否回显来判断是否可访问该文件。找到web.xml文件后,根据命名规则推断class文件的路径,最后直接访问class文件,或通过反编译等得到网站源码。

如:com.wm.ctf.FlagController 推断的文件路径为
WEB-INF/classes/com/wm/ctf/FlagController.class

CVS泄露

###漏洞利用:

直接访问来测试

http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构

取回源码的命令(liunx下)

bk clone http://url/aaa bbb

意思是把远端一个名为aaa的repo仓库clone到本地名为bbb的目录下

查看所有的改变的命令(转到downloads目录下)

bk changes

Bazaar/bzr泄露

漏洞利用:

工具:dvcs-ripper

rip-bzr.pl -v -u http://www.example.com/.bzr/

0x03 参考

常见Web源码泄露总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值