AWVS漏洞复现小记

0x00 前言

AWVS作为黑盒测试,主动扫描的比较好用的工具,碰到部分网站扫描结果一堆漏洞,部分漏洞复现比较难,这里找了几个常见的,以往一直忽略的漏洞,详细研究一下,到最后成功复现

 

AWVS漏洞复现小记

其中1、2、4漏洞比较难以复现,大家一般都是当作误报处理,这里记录一下

因使用汉化版,部分漏洞描述翻译可能存在问题,请忽略

0x01 AngularJS 客户端模板注入

漏洞描述

此 Web 应用程序容易受到 AngularJS 客户端模板注入漏洞的攻击。当用户输入动态嵌入到使用 AngularJS 客户端模板的页面上时,会发生 AngularJS 客户端模板注入漏洞。通过使用大括号,可能将 AngularJS 表达式注入应用程序正在使用的 AngularJS 客户端模板中。这些表达式将由 AngularJS 在客户端进行求值,当与沙箱转义结合使用时,它们将允许攻击者执行任意 JavaScript 代码。

发现者 AngularJS 客户端模板注入

影响

攻击者可以注入 AngularJS 表达式,这些表达式将在客户端进行评估。AngularJS 表达式通常并不是很危险,但是当与沙箱转义结合使用时,它们可使攻击者能够执行任意 JavaScript 代码。

修复

攻击者不可能使用大括号插入 AngularJS 表达式。应用程序需要将用户输入中的大括号视为高度危险,或者完全避免在服务器端反射用户输入。

复现

URL: https://xx.com/forget_pass.html

Parameter: phone

URL encoded GET 输入 phone 已设置为 1zmvpmtruem5van。此输入已反映在 AngularJS 模板中。

这里访问URL可以看到,phone内容作为模板,动态生成HTML代码

访问:https://xx.com/forget_pass.html?phone=13111{{8/2}}11111

执行了运算 8/2 观看页面中手机号变成了13111411111, 这里可以确定存在模板注入,下面来进一步利用一下

一般都是注入js代码,类似XSS效果弹个窗口

这里看了下AngularJS版本为1.5.5

AWVS漏洞复现小记

1.5.5版本存在沙箱,需要绕过沙箱,这里从网上找到对应版本绕过沙箱方法

1
{{a=toString().constructor.prototype;a.charAt=a.trim;$eval('a,alert(/xss/),a')}}');}}

成功复现弹窗

AWVS漏洞复现小记

0x02 DOM型跨站脚本

漏洞描述

此脚本可能容易受到跨站脚本 (XSS) 攻击的攻击。

跨站脚本(也称为 XSS)是一个漏洞,允许攻击者向其他用户发送恶意代码(通常是 Javascript 的形式)。因为浏览器无法知道脚本是否可信,它将在用户上下文中执行脚本,这样,攻击者就可以访问浏览器保留的任何 cookie 或会话令牌。

传统的跨站点脚本漏洞发生在服务器端代码上,而基于文档对象模型的跨站点脚本是会影响客户端浏览器中脚本代码的漏洞类型。

发现者 DOM 型跨站脚本

影响

Malicious 用户可以将 JavaScript、VBScript、ActiveX、HTML 或 Flash 注入至易受攻击的应用程序,欺骗用户,以从这些用户处收集数据。攻击者可以窃取会话 cookie 并掌控帐户,以冒充用户,还可能修改用户能够看到的页面内容。

修复

您的脚本应筛选来自用户输入的元字符。

复现

URL: https://xx.com/

Parameter: window.location

这里访问URL, 确定输出位置
https://xx.com/?wvstest=javascript:domxssExecutionSink(1,"'">()locxss")#javascript:domxssExecutionSink(1,"'">()locxss")

AWVS漏洞复现小记

查看 addFav(),通过window.location.href 获取当前页面的URL,然后写入到html中

1
2
3
4
5
function addFav(t) {
    document.write('window.location.href + '" title="' + document.title.replace(/|'|"|&/g, '') +
        '" rel="sidebar" onclick="if(UA.indexOf('chrome') != -1){alert('' + L['chrome_fav_tip'] +
        '');return false;}window.external.addFavorite(this.href, this.title);return false;">' + t + '');
}

最后结果

1
a href="https://xx.com/?wvstest=javascript:domxssExecutionSink(1,%22%27%22%3E%3Cxsstag%3E()locxss%22)#javascript:domxssExecutionSink(1,%22'%22%3E%3Cxsstag%3E()locxss%22)" title="" rel="sidebar" onclick="if(UA.indexOf('chrome') != -1){alert('请按快捷键Ctrl+D收藏本页,谢谢');return false;}window.external.addFavorite(this.href, this.title);return false;">收藏本页a>

因a标签的href属性里面,对字符进行了url编码,没有绕过,这里先研究一下onclick里面的内容,先美化一下代码,这里可以看到判断为chrome浏览器直接退出,其他浏览器点击会添加到收藏,这里还是没有触发XSS

1
2
3
4
5
6
if (UA.indexOf('chrome') != -1) {
    alert('请按快捷键Ctrl+D收藏本页,谢谢');
    return false;
}
window.external.addFavorite(this.href, this.title);
return false;

这里想到之前碰到过的XSS,chrome等浏览器会自动把参数进行url编码,这里换成IE内核的,IE浏览器不会自动url编码的

想到这里,打开IE,禁用XSS筛选器

访问 https://xx.com/#"> 成功发现弹窗

AWVS漏洞复现小记AWVS漏洞复现小记

0x03 跨站脚本

这里吐槽一下,为啥别人扫出来的漏洞直接就能复现,我扫出来的漏洞那么波折呢

漏洞描述

跨站点脚本 (XSS) 是指客户端代码注入攻击,其中,攻击者可以将恶意脚本执行到合法的网站或 Web 应用程序中。当 Web 应用程序在其生成的输出中使用未经验证或未编码的用户输入时,就会发生 XSS。

发现者 跨站脚本

影响

恶意 JavaScript 可以访问与网页其余部分相同的所有对象,包括访问 cookie 和本地存储(通常用于存储会话令牌)。如果攻击者可以获取用户的会话 cookie,则他们可以冒充该用户。

此外,JavaScript 可以读取向用户显示的页面内容并进行任意修改。因此,XSS 与一些巧妙的社会工程技术相结合,为攻击者带来了很多可能性。

修复

对页面上呈现的用户输入应用上下文相关编码和/或验证

复现

URL: https://xx.cn/index?returnUrl=

Parameter: returnUrl

returnUrl? 这里一般都会存在URL重定向漏洞吧,使用浏览器访问该URL,构造XSS查看结果

AWVS漏洞复现小记

这一看结果,返回内容在json里面,Content-Type 也是 application/json,咋个绕过

咨询大佬,回应说是应该是IE特定条件下能触发,具体也不清楚

这里使用IE浏览器访问,结果直接就弹出是否下载了json文件

通过百度,搜索关键字,发现需要修改注册表,添加json的mime类型支持

如何修改自行百度吧

然后禁用IE浏览器的XSS筛选器,成功弹窗

AWVS漏洞复现小记

0x04 结束语

之前一直认为AWVS误报挺多的,这次扫描,比较严重的漏洞都成功复现了,当然漏洞影响有限,还浪费了很多查资料的时间,这里记录一下,方便以后使用,后续也会持续更新,补充一些新的漏洞。

发布者:常山赵子龙,转载请注明出处:https://www.qztxs.com/archives/science/technology/12126

(3)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年6月13日 下午7:50
下一篇 2022年6月13日 下午7:51

相关推荐

  • Centos 7 运行firefox出错

    Centos 7 在firefox官网下载了最新的安装包,运行后提示 1 2 3 4 # firefox XPCOMGlueLoad error for file /root/fuzzingbox/firefox/libmozgtk.so: libgtk-3.so.0: cannot open shared object file: No such file...

    技术 2022年5月28日
    17600
  • OpenRASP报警推送

    0x00 前言 OpenRASP 上线一周了,运行很稳定,拉了几个PHP和Java做测试,没有收到业务方的异常反馈,除了我测试的报警外,只发现一些基线的报警,找运维都处理了。 随着运营时间,后续安全基线问题不应该存在了,重点关注一下攻击事件,系统设置中有报警推送功能,有邮件报警、HTTP报警推送、钉钉集成、syslog报警   我们目前使用的IM是...

    2022年6月13日
    8100
  • 百亿关系链,架构如何设计?

    文章较长,听我娓娓道来。   粉丝与关注,社交好友,都是典型的“多对多关系”的业务,这类业务的核心服务是好友中心,当关系链达到百亿之后,好友中心架构设计要考虑哪些因素,是本文将要分享的内容。   什么是“多对多”关系? 所谓的“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的关联关系,一个学生可以选修多个课程,一个课程可以被多个学生选修...

    2022年5月14日
    3300
  • OpenRASP 部署

    0x00 前言 上周一台web服务器部署单机版OpenRASP之后感觉还不错,想在公司内部推广一下,准备在一些后台系统的服务器上安装agent,单机版部署报警日志查看不是很方便,遂部署管理后台方便管理   0x01 准备 OpenRASP使用了 ElasticSearch 和 MongoDB 两种数据库。前者用来存储报警和统计信息,后者用来存储应用...

    2022年6月13日
    13900
  • Google的锁,才是分布式锁?

    早年Google的四大基础设施,分别是GFS, MapReduce, BigTable, Chubby, 前三个比较有名,今天来说说最后一个,Chubby。   Chubby是什么? Chubby是早年Google四大基础设施之一,提供粗粒度的分布式锁服务。   Chubby的使用者不需要关注复杂的同步协议,而是通过已经封装好的客户端直接调用锁服务,通过分布...

    2022年5月14日
    4200

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(0条)

  • ww
    ww 2023年3月9日 上午2:42

    你这个dom型跨站脚本能不详细点?

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信