常见Web源码泄漏 总结
重要 记录 一下常见的源码走漏 题目 ,这些常常 在web渗出 测试以及CTF中出现。
一、源码走漏 分类
1、.hg源码走漏
弊端 成因:
hg init的时间 会天生 .hg
e.g.http://www.example.com/.hg/
弊端 利用 :
工具:dvcs-ripper
rip-hg.pl -v -u http://www.example.com/.hg/
2 、.git源码走漏
弊端 成因:
在运行git init初始化代码库的时间 ,会在当前目次 下面产生一个.git的隐蔽 文件,用来记录 代码的变动 记录 等等。在发布代码的时间 ,把.git这个目次 没有删除 ,直接发布了 。利用 这个文件,可以用来规复 源代码。
e.g.http://www.example.com/.git/config
弊端 利用 :
工具:GitHack
GitHack.py http://www.example.com/.git/
dvcs-ripper
rip-git.pl -v -u http://www.example.com/.git/
3、.DS_Store文件走漏
弊端 成因:
在发布代码时未删除文件夹中隐蔽 的.DS_store,被发现后 ,获取了敏感的文件名等信息。
弊端 利用 :
http://www.example.com/.ds_store
留意 路径查抄
工具:dsstoreexp
python ds_store_exp.py http://www.example.com/.DS_Store
4、网站备份压缩文件
在网站的利用 过程中,每每 必要 对网站中的文件举行 修改 、升级 。此时就必要 对网站整站大概 此中 某一页面举行 备份。当备份文件大概 修改过程中的缓存文件由于 各种缘故起因 而被留在网站web目次 下,而该目次 又没有设置访问权限时 ,便有大概 导致备份文件大概 编辑器的缓存文件被下载,导致敏感信息泄漏 ,给服务器的安全埋下隐患。
弊端 成因及危害:
该弊端 的成因重要 有以下两种:
服务器管理员错误地将网站大概 网页的备份文件放置到服务器web目次 下 。
编辑器在利用 过程中主动 生存 的备份文件大概 临时 文件由于 各种缘故起因 没有被删除而生存 在web目次 下。
弊端 检测:
该弊端 每每 会导致服务器整站源代码大概 部分 页面的源代码被下载 ,利用 。源代码中所包罗 的各类敏感信息,如服务器数据库毗连 信息,服务器设置 信息等会因此而泄漏 ,造成巨大的丧失 。被泄漏 的源代码还大概 会被用于代码审计 ,进一步利用 而对整个体系 的安全埋下隐患。
.rar.zip.7z.tar.gz.bak.swp.txt.html
5、SVN导致文件泄漏
Subversion,简称SVN,是一个开放源代码的版本控制体系 ,相对于的RCS、CVS,采取 了分支管理体系 ,它的计划 目标 就是代替 CVS。互联网上越来越多的控礼服 务从CVS转移到Subversion 。
Subversion利用 服务端—客户端的布局 ,固然 服务端与客户端可以都运行在同一台服务器上。在服务端是存放着全部 受控制数据的Subversion堆栈 ,另一端是Subversion的客户端程序,管理着受控数据的一部分 在本地 的映射(称为“工作副本”)。在这两端 之间 ,是通过各种堆栈 存取层(Repository Access,简称RA)的多条通道举行 访问的。这些通道中,可以通过差别 的网络协议 ,比方 HTTP 、SSH等,或本地 文件的方式来对堆栈 举行 操纵 。
e.g.http://vote.lz.taobao.com/admin/s/fckeditor.266/editor/.svn/entries
弊端 利用 :
工具:dvcs-ripper
rip-svn.pl -v -u http://www.example.com/.svn/
Seay-Svn
6、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; 大概 其他!
7、CVS走漏
弊端 利用 :
测试的目次
http://url/CVS/Root 返回根信息http://url/CVS/Entries 返回全部 文件的布局
取回源码的下令
bk clone http://url/name dir
这个下令 的意思就是把远端一个名为name的repo clone到本地 名为dir的目次 下。
查察 全部 的改变的下令 ,转到download的目次
bk changes
8 、Bazaar/bzr
工具:dvcs-ripper
rip-bzr.pl -v -u http://www.example.com/.bzr/
二、工具保举
Bitkeeper
weakfilescan
Web应用中的信息走漏 以及攻击方法
下面内容先容 了在web应用程序中的一些信息走漏 题目 ,固然 也会举例分析 ,先容 怎样 发现这些信息走漏 。
一、Banner网络 /主动 侦查
Banner网络 或主动 侦察 是一种攻击范例 ,攻击者在此期间向他们的目标 体系 发送哀求 ,以网络 有关它的更多信息。假如 体系 设置 不当 ,大概 会走漏 本身 的信息,如服务器版本,PHP大概 ASP.NET版本 ,OpenSSH版本等。
在大多数环境 下,Banner网络 并不会涉及关键信息走漏 ,不外 可以让攻击者网络 到开辟 过程中利用 环境 版本的信息 。比方 :假如 目标 在服务器上面利用 的是php旧版本 ,由于没有更新,以是 攻击者可以利用 已知的弊端 攻击,大概 会出现长途 下令 实行 /代码实行 的弊端 。
Banner信息网络 举例:
Nmap scan report for example.com (x.x.x.x)
Host is up (0.037s latency).
Not shown: 999 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.3 (Ubuntu Linux; protocol 2.0)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
在上面例子中,我们利用 Nmap扫描器对目标 举行 端口扫描。结果 表明目标 开启了22端口 ,而且 OpenSSH版本号是5.9p1。大概 这个版本就存在可以被攻击者利用 的弊端 。
二 、源码走漏
当Web应用程序的后端环境 代码袒露 给不涉及应用程序开辟 的用户时,会发生源代码泄漏 题目 。源代码泄漏 使攻击者可以或许 通过读代替 码和查抄 逻辑缺陷,以及查察 硬编码的用户名/暗码 对大概 API密钥来发现这个应用程序的不敷 以及弊端 。
弊端 的严峻 性取决于走漏 源码的多少 ,以及代码在应用程序中的紧张 性 。总而言之,由于 攻击者可以查察 源代码,以是 很洪流 平 大将 渗出 测试由黑盒转向白盒。究竟 上 ,有很多 错误可以或许 导致源码走漏 的弊端 发生,下面这几种错误就包罗 在此中 :
代码库未受掩护
为了更加方便的管理站点,大多数站点都会把他们源码上传到云端。这些项目偶然 会管理不当 ,攻击者可以或许 直接访问网站源码和网站信息 。而且 ,有些公司将他们的开源软件项目放到了github上面,如许 公共用户可以对这个项目作出改进。这种环境 下 ,源码已经是公开的,但是这种环境 下走漏 公司紧张 信息已经是很常见了。
实例:
有些源码库只答应 利用 第三方帐号举行 登录而且 符称身 份认证的用户查察 源码代码 。这些源码库偶然 间 设置 错误,没有严格 控制查察 内容的权限,导致任何人都可以查察 源码内容。
源代码中存在敏感信息
另一个例子是当公共代码具有硬编码的敏感信息时 ,比方 用户凭据 或API密钥。攻击者可以轻松地利用 这些信息来粉碎 这些服务,大概 可以利用 合法 账户举行 登录 。在信息披露期间通常走漏 的另一条信息是内部IP地点 ,答应 攻击者辨认 和相识 内部网络拓扑 ,然后可以将如许 的信息用于攻击内部服务中,比方 服务器端哀求 伪造(SSRF)攻击来攻击多个体系 。
MIME范例 不精确
欣赏 器通过HTTP包头中的Content-Type内容来确定怎样 分析 HTTP服务器相应 返回的内容。举个例子,我们想让欣赏 器将html文件分析 ,而不是只是纯文本文件。再比如 我们想让欣赏 器下载一个zip,而不是分析 这个zip文件 。
假如 web服务器的设置 错误,那么就会出现如许 的错误:当我们访问html时间 ,Conten-Type会是:text/plain,而不是text/html,而且 html文件会以纯文档的情势 显现 给欣赏 器。因此/尚有 一些其他字符都会在页面上表现 出来。下面图片是展示当页面访问时服务器设置的Content-Type相应 头 。
当Web应用程序无法为此中 包罗 源代码的网页发送得当 的Content-Type头部时,大概 会发生信息泄漏 题目 ,而且 终极 以纯文本情势 出现 信息,并披露有关Web应用程序的有代价 信息。
实例:
我们假设一个Web服务器用于运行一个PHP
Web应用程序,但如今 运行一个ASP.NET。从前 由旧的Web应用程序利用 并具有敏感信息(如MySQL数据库根据 )的PHP脚本正在被用户访问 。假如 PHP没有在Web服务器上运行和设置 ,则Content-Type将从HTTP相应 中省略 ,而且 PHP脚本将被表明 为纯文本或HTML标记 ,具体 取决于Web欣赏 器,然后就会泄漏 内里 包罗 的全部 信息。
下面屏幕截图就展示了纵然 服务器返转头 没有设置Content-Type ,火狐欣赏 器还是 将php脚本分析 成了HTML。我们必要 在查察 源代码中看到脚本信息 。
下面截图展示了chrome欣赏 器直接返回了纯文本的文件,以是 我们可以直接看到源码。
处理 惩罚 敏感信息不当
另一种常见的信息走漏 是由硬编码的账户名和暗码 以及内部ip在代码的解释 中走漏 。在大多数环境 下,这些敏感信息在访问web页面时会显现 出来 。这些敏感信息的走漏 也大概 会导致web应用程序遭受攻击。攻击者只必要 右键页面查察 网页源代码 ,就可以找到这些解释 。假如 在发现web应用程序存在这种题目 ,Netsparker将会提示 您。
缺少认证机制大概 认证机制设置 不当
在Web应用程序权限设置不精确 ,不完备 或乃至 缺少授权查抄 大概 会答应 攻击者访问敏感信息或未授权访问登任命 户的信息 。这些题目 很常见 ,它们也列在OWASP十大最常见和利用 弊端 的列表中。
示例:https://www.netsparker.com/blog/web-security/missing-function-level-access-control-vulnerability-maian-support-helpdesk/
一个真实的权限控制不当 ,导致被拿shell的案例。
文件名大概 文件路径走漏
在某些环境 下,Web应用程序可以公开文件名或文件路径 ,从而表现 关于底层体系 布局 的信息 。这大概 是由于用户输入的不精确 处理 惩罚 ,后端的非常 或Web服务器的不当 设置 。偶然 可以在Web应用程序,错误页面,调试信息等的相应 中找到或标识这些信息。
示例:
攻击者可以通过发送访问哀求 来查抄 Web应用程序是否公开任何文件名或路径 。比方 ,当发送以下哀求 时,Web应用程序返回403(克制 )相应 :
https://www.example.com/%5C../%5C../%5C../%5C../%5C../%5C../etc/passwd
但是当攻击者发送下面哀求 时,web应用程序返回404(没有文件)的相应 :
https://www.example.com/%5C../%5C../%5C../%5C../%5C../%5C../etc/doesntexist
由于第一次哀求 ,攻击者得到了403 Forbidden错误,而对于第二个哀求 ,他得到了404 Not Found ,他知道在第一种环境 下,该文件存在。因此,攻击者可以利用 Web应用程序的举动 ,相识 服务器的布局 以及验证体系 上是否存在某个文件夹或文件。
三、目次 遍历
文件名和路径公开相干 的是Web服务器中的目次 表现 功能 。此功能在Web服务器上默认提供。当没有默认网页时,在网站上表现 Web服务器表现 用户列表中的文件和目次 。
因此,在apahce服务器上面默认文件名为Index.php ,当没有上传index.php时,服务器就会将文件夹中的内容全部展示出来 。如下图:
利用 如许 一个模块会使服务器产生很大的安全隐患。
实例:
如今 很多 人都知道如许 的功能应该被禁用,以是 看到它并不常见。固然 我们假设扫描Web服务器的端口后,攻击者发如今 8081端口运行的Web服务器的默认启动此功能。
如许 的“默认值”通常被Web服务器管理员忽略 ,这也意味着它们不太安全 。它会答应 攻击者欣赏 目次 并访问Web应用程序的源代码,备份和大概 的数据库文件。
四、防止信息走漏 应该留意 的事项
信息走漏 题目 好像 是一件小事变 ,但对攻击者来说黑白 常有代价 的。它们答应 攻击者通过实行 根本 测试 ,偶然 只需在公共页面中查找信息,得到 有关攻击目标 的非常有效 的信息 。
究竟 上,Netsparker在扫描目标 网站时会陈诉 知识库节点中大概 的信息披露和其他雷同 的安全题目 。你应该办理 这些题目 ,特别 是当你以为 它们很轻易 修复时。以下是依照 的一些引导 方针,以便您可以确保您的Web应用程序受到精良 掩护 :
1. 确保您的Web服务器不发送表现 有关后端技能 范例 或版本信息的相应 头 。
2. 确保服务器打开的端口上运行的全部 服务都不会表现 有关其构建和版本的信息。
3. 确保全部 目次 的访问权限精确 ,包管 不会让攻击者访问到你的全部 文件。
4. 不要在代码中将账户暗码 硬编码进去 。也不要在解释 中写入相干 信息。
5. 在web服务器中为全部 范例 的应用程序设置 MIME信息
6. 不必要 上传到网站上的敏感信息永久 都不要上传
7. 始终查抄 每个创建/编辑/查察 /删除资源的哀求 是否具有得当 的访问控制 ,防止越权访问,并确保全部 机密 信息保密。
8. 确保您的Web应用程序精确 处理 惩罚 用户输入,而且 始终为全部 不存在/不答应 的资源返回通用相应 ,以便肴杂 攻击者 。
9. 后端代码应该思量 到全部 环境 ,而且 当非常 发生时,可以或许 包管 信息不被走漏 。
10. 设置 Web服务器以克制 目次 遍历,并确保Web应用程序始终表现 默认网页。
本文参考泉源 于:MottoIN ,Pro4hou,转载自盘算 机与网络安全
别忘了投稿哟!!!
合天公众号开启原创投稿啦!!!
各人 有好的技能 原创文章。
欢迎 投稿至邮箱:edu@heetian.com;
合天会根据文章的时效、新奇 、文笔、实用等多方面评判给予100元-500元不等的稿费哟 。
有才华 的你快来投稿吧!