常见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元不等的稿费哟。
有才华 的你快来投稿吧!