如果所有的输入都是有害的,那我们该如何防御?
发布时间:2022-11-14 12:52:29 所属栏目:安全 来源:
导读: 前段时间,有白帽子反馈:“哎,元气客服少女姐姐,为啥我提交的漏洞在评级的时候降级了呢?”经查,该白帽子提交的是一个360小说的反射型XSS漏洞,自评级是“中”,我们的“鉴别员&rd
|
前段时间,有白帽子反馈:“哎,元气客服少女姐姐,为啥我提交的漏洞在评级的时候降级了呢?”经查,该白帽子提交的是一个360小说的反射型XSS漏洞,自评级是“中”,我们的“鉴别员”给了“低”。凭着之前从同事日常沟通那里偷听来的经验主动防御措施,目前白帽子提交的XSS漏洞的多为危害较低,中危的相对都较少,结合着提交的描述来看,判定低危是合适的,所以就跟白帽子做了详尽的沟通,这事儿到这儿也就结束了。 但就是好奇心作祟,或者是闲的“淡腾”,我用XSS作为关键词在360SRC后台进行查询,发现在全年的数据库中,XSS的占比绝对能排进前10名。 怎么这么多?得,聊去吧,去白帽子那儿找答案。 他们跟我说,XSS漏洞的本质就是所有的输入都是有害的,不管是肉眼能看到的输入,还是肉眼看不见的的输入都可能成为XSS漏洞的一个点切入进去。由于XSS漏洞瞬息万变,切入点多,可变性强,容易成为白帽子在各大SRC平台刷分的来源。以360SRC为例,一个反射型XSS低危漏洞,会获得5-15积分(1积分相当于人民币5元)不等,中危或存储型XSS的积分会更高一些,而刷XSS相对初级白帽子来说门槛较低,容易刷分或者是积累财富:) 360SRC一直在追求极致的安全,即使危害再小,我们也认为这是有意义的。细节决定成败,当细节做到极致时,产品安全,企业安全才能达到新的高度。 接下来,向大家推荐一款自家原创的防御前端脚本攻击的工具,它不仅适用于网站站长、Web开发者,对普通的网民用户也是适用。配置简单,易上手,效果明显。 护心镜官方地址:#/ 如果你还是一个script-kid,下面的内容建议你看完噢,会有收获的。 0x01 XSS是什么? XSS是黑客通过前端网页向受害者浏览的网页中注入js脚本,从而实现攻击目的。与其它web漏洞不同,XSS并非直接攻击服务器,而是攻击的受害者的浏览器。其在网络中存在的数量,远远大于SQL注入等传统高危漏洞。 XSS在执行方式上可分为反射形XSS和存储形XSS,反射形XSS是指把要执行的js-payload放在URL的参数中,需要攻击者把超链接发送给受害者,诱骗受害者点击才能达到目的,而且现在大部分浏览器内置安全机制(XSS-Filter)都可以有效防御反射形XSS,由此可见反射形XSS利用难度较大,不但需要用户的交互,还要设法绕过浏览器的防御机制。 而存储型XSS就不同了,存储型XSS是指攻击者在某个漏洞页面提交XSS代码,提交的代码一般会存储在服务器中,在另外一个页面进行输出。例如网站中的留言功能,论坛中的评论-审核功能,都是出现存储型XSS的高危地带。这种XSS,很少需要用户刻意交互,往往不知不觉中就会执行,而且会无视浏览器的安全防御机制,直接达到攻击目的。 0x02 XSS的利用和危害 早年间要想成功利用XSS还是有一定门槛的,至少要求攻击者熟练使用js和html构造攻击代码。但是前几年流行的XSS平台大大降低了这种门槛,就好像当年阿D、明小子降低了SQL注入的门槛一样,让任何一个初学的script-kid都可以拿着现成的代码到处攻击。 这是一个XSS平台,里面包含了大部分XSS的攻击方式。一般说,最常见的是偷取cookie,这也是主流的XSS攻击方式。其次还有伪造登陆页面进行钓鱼,诱骗用户输入账户和密码从而获得密码明文的攻击方式。此外,还可偷取用户当前页面的源代码或者后台网页的内容(例如可遍历邮件的内容),还可以结合后台的CSRF漏洞对后台内容进行篡改,例如自动审核某个文章、提升某个普通用户为管理员组的权限,修改网站配置信息等等,甚至可以结合后台的上传漏洞、备份漏洞等直接对服务器进行攻击,获得webshell权限。这类XSS攻击大部分都是攻击网站管理员的,只为获得后台权限甚至是服务器权限。 国内外诸多开源CMS都曾经爆出过威胁管理员后台的存储型XSS漏洞。例如worldpress、Drupal、Discuz!、DeDe、PHPCMS,每一次漏洞的爆出都是一场XSS的狂欢,每次狂欢过后都伴随着大量管理员后台权限的沦陷。以为使用非开源的cms就安全了吗,XSS盲打就是针对未知CMS的一种XSS攻击方式,即在任何可以提交表单的地方提交XSS代码,来攻击任何一个可能出现XSS问题的地方,这种方式成本低廉,即便是没有成功也不会增加攻击者的成本,而一旦成功,往往是渗透过程中的一个里程碑式事件。 其实上述危害都还好,危害最严重的,波及范围最广,而且最难清除的莫过于XSS蠕虫。当然XSS蠕虫属于“富贵病”,并不是每一个网站都具备XSS蠕虫生存的土壤,小网站想得也得不上这种病。一般来说,web2.0网站中,用户间交互越多的,越容易成为XSS滋生的土壤,例如微博,SNS社交网站等等。XSS蠕虫以普通用户为攻击目标,当一个用户被XSS袭击后,通过CSRF可能会修改自身的备注信息、个人资料,或者发帖发私信,里面夹杂着XSS代码,当其他用户浏览到该用户的发表的带有XSS代码的内容时,也会受到相同的XSS的袭击,这样感染用户的数量呈指数增长,当厂商发现的时候,很可能已经大面积爆发了,历史上,人人网、新浪微博、百度贴吧等社交平台都受过XSS蠕虫的袭击。09年校内网蠕虫感染用户达到500万,11年新浪微博蠕虫1个小时内感染用户就达到了3万,可见危害之大范围之广。 0x03 传统XSS防御手段 如何根治XSS呢,这里可以负责任的告诉你,没有一种防御方法是通用万能的。XSS攻击方式根据漏洞出现位置、浏览器环境、业务环境、攻击目的、WebServer类型的不同而变化(所以XSSer们往往称自己为猥琐流)。它不像其他web漏洞:上传、SQL注入、文件包涵,仅仅需要在服务器上做下过滤(甚至是安装一个统一过滤脚本或者WAF)就可以成功防御的,所以根据实际情况,针对XSS防御措施也是不同的,大体来说,有以下几点: 1.服务器端过滤 服务器端转义输入的左右尖括号,对HTML标签进行编码,这是主流的防御XSS的方法,可有效防御一般的XSS攻击。 缺点:无法防御部分DomXSS攻击,以及Flash XSS攻击。 2.前端过滤 对innerHTML的内容进行检查,对eval中用户输入的参数进行检查,对于使用的js库(例如jquery)以及Flash进行检查,以免使用了存在XSS漏洞的js库和swf文件。 缺点:只是针对DomXSS有效 (编辑:百科站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

