原文:http://www.anying.org/thread-36-1-1.html转载必须注明原文地址
最近看到网络上很多人都在说XSS我就借着暗影这个平台发表下自己对这一块的一些认识。
其实对于XSS很多人都知道利用但是很多人都忽略了漏洞存在的原因,其实说白了基于dom中的XSS都是一些api代码审计不严所产生的,那么一下我就整理下可能存在基于dom的XSS攻击的api吧。
document.location
document.URL
document.URLUnencoded
document.referrer
window.location
这些API可访问通过一个专门设计的url控制dom的数据,所以我们大部分用到的都是这些,其实这种dom的XSS弹窗可利用和危害性并不是很大,大多用于钓鱼什么的,也就是用户不主动点击你的URL你是没有什么办法的。
在代码中追中相关数据,确定应用程序对她执行何种操作,如果数据被提交给以下的API的时候,那么应用程序就可能受到xss。其实这些API主要是用在表单劫持,在用户提交表单时在其中插入一段xss代码那么这产生了我们所说的存储型的XSS,漏洞存在危险系数比较高,很多被用于cookie的盗取,交易表单劫持,很多黑产行业对于购物站常常采用这种方式劫持订单,给自己盈利。
document.write()
document.writeln()
document.boby.innerHtml
eval()
window.execScript()
window.setInterval()
window.setTimeout()
其次就是基于dom的XSS还有一些会被重定向攻击,重定向攻击的话危害性可大可小不过个人感觉这种XSS的方式在很多地方很容易被人忽略,前段时间提交了2个URL重定向的漏洞给新浪,可是新浪不怎么在乎,我也不好说什么不过危害对于新浪这种站来说有多大我相信有经验的人都会知道的。
document.location
document.URL
document.open()
window.location.href
window.navigate()
window.open
以上就是我整理的一些基于dom的xss攻击漏洞的api,我觉得这些东西罗列出来后能给大家代码审计的时候一些帮助,最少知道xss漏洞常常出现的一些地方,对于这些api调用的时候应该要给出相对应的安全防护措施。
然后对于XSS这种攻击方式很多人都感觉防御起来不知道怎么办,其实很简单,在用户提交数据的时候判断get和post中是否存在<>’”/这五种符号,基本上屏蔽了这五种符号那么XSS威胁能力估计会降低很多。
文章牵涉到的技术内容不多,主要是个人的一些经验和书中看到的一些知识,整理一下之后发表出来希望对大家有用。