某业务系统xss渗透测试实战

某业务系统xss渗透测试实战

PluginsKers
2021-03-17 / 0 评论 / 122 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年04月27日,已超过53天没有更新,若内容或图片失效,请留言反馈。

0x01 渗透测试背景

本渗透项目操作在朋友给的靶机,帮其进行系统的漏洞挖掘和风险分析

0x02 信息收集

首先使用的是scanPort工具。ScanPort端口扫描工具是一款绿色无毒的方便小工具,可以分分钟找回被遗忘的曾经设置的端口。还可以检测本地开放的全部网络端口,方便进行安全性维护,关闭不必要的端口
使用scanPort探查内网ip的端口,发现有80端口开放,猜测有web服务,在浏览器中浏览,果然有web业务,是一个类似于论坛的业务

信息搜集

0x03 口令爆破

首先发现可以登陆,使用Burpsuite抓包尝试一下口令爆破。将抓到的包发到intruder中,这个模式就是专门做爆破用的,可以设立爆破点,然后导入字典进行爆破

口令爆破

这里的Attack type是攻击类型选择,其中选项分别是:

  • Sniper(狙击手):只有一个字典,一个个爆破点进行爆破,如果有两个爆破点,就在原来的基础上,单个修改
  • Battering ram(攻城锤):只有一个字典,如果有两个爆破点,那么会同时替换字典里的值,即爆破时两个点的值是相通的
  • Pitchfork(插稻草的叉子):同样可以载入多个字典,在每个爆破点载入不同的字典
  • Cluster bomb(集束炸弹):同样可以载入多个字典,是采用排列组合的方式进行爆破

攻击

攻击

运气不错(朋友太粗大条),爆破出了用户名和口令:admin 123456

后台

0x04 XSS注入尝试

发现里面有有很多输入框,这样我们就能尝试SQL注入,xss注入这些漏洞,尝试后发现签名处好像存在一个xss。

XSS

开始尝试xss注入

  1. 先构造一下js语句:<script>alert(1)</script>
  2. 查看源代码发现script被过滤掉了Value="<>alert(1)</>">
  3. 开始尝试绕过:使用双写和大写script <ScRScrIpTipt>alert(1)</ScRScrIpTipt>
  4. value="<script>alert(1)</script>"
  5. 成功绕过,但是没有弹窗,,原因是没有闭合value,现在在刚刚的那个payload前面加一个"(双引号)进行闭合。Payload:"<ScRScrIpTipt>alert(1)</ScRScrIpTipt>
  6. Value="<script>alert(1)</script>">
  7. 闭合是成功了,但是为什么还是没有弹窗呢?仔细一看前面还有一个<(尖括号)没有闭合,现在再次尝试,进行闭合Payload "><ScRScrIpTipt>alert(1)</ScRScrIpTipt>

成功弹出,此页面有XSS漏洞

刷新页面发现还会出现弹窗,确定这是存储型xss,很棒,利用价值是xss中最高的。下面是存储型xss的攻击流程

XSS漏洞

XSS漏洞是前端漏洞,大概分为三类:

  • 反射型:前端页面传到服务器后,由服务器返回到前端页面,在浏览器中解析形成
  • 存储型:前端页面传到服务器后,由服务器存储并到数据库中,当用户再次访问这个页面的时候就会形成xss
  • DOM型:前端DOM解析器解析代码,形成xss,完全是浏览器行为,与服务器无关

存储型XSS漏洞因为是存在服务器上面的,所以利用价值也是最高的,可以使用document.cookie将其他用户cookie信息弹出,然后再将这个信息转发到自己的邮箱,这样就可以劫持用户的登录态,从而对用户的配置进行修改。
这里发现的这个存储型xss漏洞因为是管理员的,所以劫持用户登录态这个漏洞利用方式用处就显得没有那么大了,但是我们也可以进行页面的破坏,比如说使用location.href可以无限弹窗,使页面无法使用...

0x05 漏洞修复建议

对于弱口令问题,对内网各种服务的弱口令现象进行排查。对所有中间件进行降权处理,避免使用管理员等高权限账号启动。对所有用户提交的变量进行严格的SQLXSSXXE等漏洞关键字过滤。
对于XSS注入问题,建议修改 Web应用服务的软件部分,增加对客户端提交数据(如表单、URL链接)的合法性验证,至少严格过滤语句中的关键字url编码转换,并且所有验证都应该在服务器端实现,以防客户端(浏览器前端)控制被绕过。

本文转载自:存在数据库很久的文章了转载自哪里的我忘了

23

评论 (0)

取消