数字报
XSS 漏洞原理及防御方法
分享到

微信

微博

0
分享到-微信
X

XSS跨站脚本攻击:两种情况。一种通过外部输入然后直接在浏览器端触发,即反射型XSS;还有一种则是先把利用代码保存在数据库或文件中,当web程序读取利用代码并输出在页面上时触发漏洞,即存储型XSS。DOM型XSS是一种特殊的反射型XSS。

危害:前端页面能做的事它都能做。(不仅仅盗取cookie、修改页面等)

1、 挖掘经验

XSS挖掘的关键在于寻找有没有被过滤的参数,且这些参数传入到输出函数。

常用输出函数:print、print_r、echo、printf、sprintf、die、var_dump、var_export,所以只要寻找带有变量的这些函数即可。

XSS漏洞挖掘受浏览器影响比较大,最重要的还要掌握各种浏览器容错、编码等特性和数据协议。

常出现场景:文章发表、评论、留言、注册资料的地方、修改资料的地方等;

2、 反射型XSS

黑盒测试时:只需要将尖括号、单双引号等提交到web服务器,检查返回的html页面里面有没有保留原来的特殊字符即可判断;

白盒测试时:只需寻找带有参数的输出函数,然后根据输出函数对输出的内容回溯输入参数,观察有没有过滤;

例如:

图片1

代码中:oauth_signature 参数未经任何过滤,直接输出,则可以直接用GET方式注入代码。

3、 存储型XSS

就是需要先把利用代码保存在例如数据库或文件中,当web 应用程序读取利用代码并输出在页面上时执行利用代码,原理图流程如下:

图片2

存储型XSS比反射型要容易利用的多,不用考虑绕过浏览器的过滤,在隐蔽性上也要好得多。特别在社交网络中的存储型XSS蠕虫能造成大面积的传播,影响非常大。

挖掘存储型XSS:寻找未过滤的输入点和未过滤的输出函数,这个最终的输出点可能和输入点完全不在一个业务流上,对于这类可以根据当前代码功能去猜测,或追踪哪里有操作过这个数据,使用表名、字段名去代码里面搜索。

4、 漏洞防范

(1) 特殊字符HTML实体转码。最好的过滤方式是在输出和二次调用的时候进行加HTML实体一类的转码,防止脚本注入。

(2) 标签事件属性黑名单。特殊字符容易被绕过,所以还得加标签事件得黑名单或者白名单,这里推荐使用白名单的方式,实现规则可以直接使用正则表达式来匹配,如果匹配到的事件不在白名单列表,就可以直接拦截,而不是过滤为空。

西江日报、西江网版权与免责声明

1.
凡本网“西江日报”电子报,以及注明来源“西江日报”、“西江网”的所有文字、图片、视频及多媒体形式的新闻、信息版权均属西江网所有。凡是未经书面授权,不得以任何形式转载、链接、转贴、编辑或其它方式发布。已经被本网授权的,使用时必须做到:(1)注明来源“来源:西江日报”、作者信息“西江日报记者***”、相关图片和视频的出处及作者。(2)如修改标题,必须注明原标题。(3)如果从其他平台间接转载本作品,仍须注明来源“来源:西江日报”。
2.
本网未注明“来源:西江网”或“来源:西江日报”的作品信息均为转载稿,本网转载并不意味着认同其观点或真实性,如其它媒体、网站或个人使用,必须保留本网注明的“稿件来源”,并自行负法律责任。擅自使用西江网名义转载或盗用西江网名义发布信息,本网将追究其法律责任。
3.
如本网转载内容涉及版权、名誉权等问题,请尽快与本网联系。
联系人:罗小姐、涂先生(电话:0758—2722284)
详细请浏览:http://www.xjrb.com/about/copyright.shtml

关于我们| 广告服务| 版权声明| 联系我们| 友情链接| 事业单位

互联网新闻信息服务许可证 44120180040| 粤ICP备09102757号

本网站由肇庆市西江报业文化传播有限公司(西江网版权所有),未经授权禁止复制或者建立镜像 Powered by CmsTop