欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

记录一次利用业务设计缺陷漏洞的精彩实战测试

来源:本站整理 作者:佚名 时间:2018-05-07 TAG: 我要投稿

前言
上次的那篇文章《一名代码审计新手的实战经历与感悟》得到了不少读者的支持,也得到了FreeBuf这个平台的肯定,这给了我这个菜的不能再菜的小菜鸟很大的信心。但是,不足之处还是很多,比如文章中出现的技术写得不够深入等等(这毕竟和个人实力挂钩的)因此,我决定尽我所能,尽量的写深入一点,每次写文章都深入一点,总有一天会深到很深的点。
本篇文章主要讲述我在zzcms8.2中挖掘到的漏洞,freebuf上已经有大佬写了这个cms的代码审计,当然,其他的平台也有人写了。所以,我既然写了,那么肯定是与他们的文章有所不同,漏洞也不同,攻击方法也不同,让读者读有所获。(新手可以考虑认真看看,后半部分有对于新手来说非常精彩的攻击演示)
漏洞集合
目录跳转读取敏感信息
在zzcms8.2/baojia/baojia.php的第四行,引用了zzcms8.2/inc/top.php这个文件,如图:

我当时追踪了一下这个文件,发现这个文件在引用的时候,首先就进行了if逻辑判断,而if逻辑判断中,又有可控变量。因此,我当时咋一看的时候,就很怀疑这里,感觉这里总可能存在一些问题。如图:

于是,我就打开网页看了一下,顺便抓个包瞧瞧。结果一看,哎,有点意思,代码是如果接受post请求,那么就执行跳转操作。而我们主动发送的请求是get,那就说明这个漏洞黑盒是百分之八九十测不出来的。黑盒又不知道这里居然还可能有post请求,就算测试post请求,也不知道参数是什么,因为前端压根没有这里的参数。


在我的上一篇文章中,我也有个感觉黑盒测不出来的漏洞,但是评论区大佬有人留言说黑盒能测出来,我仔细想了想,的确也有可能,因为当时那个漏洞前端能找到参数。
可是,这里就不一样了,无法猜测。莫名其妙的我就对白盒有了点小自豪,哈哈。回归主题,既然服务器端接收post请求,那么我就将get请求包利用burpsuite改造成post请求包。
将get请求包的数据格式以及内容改成post之后,我先尝试了构造xss,但是经过几次尝试,发现被html编码,单引号被转义。这就很尴尬了。

于是转换思路,既然是跳转,那么能不能跳转到敏感文件?或者跳转到远程文件呢?如果要按跳转思路,那么必须要进行截断。而在目录跳转中,问号伪截断比较通用,不受版本限制。
如图,我构造了这样的post请求包:

由于进行了伪截断,所以我这里执行的跳转就是跳转到服务器根目录,读取我本地的服务器根目录敏感信息:

我不清楚真实的网站根目录下是否也会存在这样的漏洞,但是,如果存在,那么危害还是挺大的。
比如,目标网站有cdn,但是你根据这个漏洞就可直接发现目标网站的真实IP,在本地进行域名和IP绑定后,就可以直接绕过cdn。
逻辑漏洞导致个人敏感信息泄漏
在zzcms8.2/baojia/baojiaadd.php的183-213行中,如果在用户的cookie中获取到用户名,那么将会提取出该用户名的个人信息,回显到浏览器页面。

比如公司名(这个感觉不重要),真实姓名,手机号码,emai。后面这三个信息我个人感觉是很重要的。会利用的人能利用出各种花样,这里我们只交流技术,不谈那些非法利用,因此这里如何利用这些信息我就不写了。
下图是我回显出的测试信息:

漏洞复现的方法非常简单,只要你设置COOKIE的UserName为数据库中真实存在的用户名,那么就会得到该用户的这些信息。
下图,浏览器中的cookie信息

下图,该王二狗用户在我的数据库中真实存在:

为了更加严谨一点的证明这个漏洞,我又注册了一个test2用户,并且注销了test2用户的登录。然后,构造请求包:

[1] [2] [3] [4] [5]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载