XSS漏洞定位和修复方法——htmlspecialchars() 函数

本文介绍了一个中等威胁级别的XSS漏洞案例,通过分析发现虽然已使用htmlspecialchars()函数,但未完全过滤单引号,导致漏洞存在。文中给出了通过设置htmlspecialchars()函数的第二个参数为ENT_QUOTES来解决此问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安全测试】XSS漏洞定位和修复方法——htmlspecialchars() 函数


上一篇 / 下一篇  2011-08-25 18:49:11 / 个人分类:安全测试


测试的XXX的版本中,扫描器扫描出一个中威胁的XSS漏洞,对BUG定位和解决消耗了一定的时间,在咨询过安全测试组的同学后,终于弄清楚了解决的方法,现在根据结果倒推回来,有利于指导测试和帮助开同学定位类似的问题,所以就小分享一下。


在分析和解决这个XSS漏洞中会用到htmlspecialchars()函数,先简单介绍一下,详细可参考:http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp


定义:把一些预定义的字符转换为HTML实体,预定义的字符有:


&(和号)成为&


"(双引号)成为"


'(单引号)成为'


<(小于)成为<


>(大于)成为>  


语法:htmlspecialchars(string,quotestyle,character-set)


参数:


     




1、定位问题:


1)、和开发一起定位,检查php代码,发现已经使用了htmlspecialchars()函数对传递过来的参数进行了过滤:htmlspecialchars()函数


2)、但是扫描器还是扫出安全漏洞的结果,用脚本替换参数,重新发送请求:http://shop.qq.com/misc/join/download_file.php?pic_id=<u>a</u>'"&t=0.517103584544131,抓包查看返回结果,没有对单引号进行转义。






 
2、解决问题,htmlspecialchars()函数的第二个参数缺失时是默认不对单引号进行转义,解决方法是加上NT_QUOTES。






再次发送同样的请求http://shop.qq.com/misc/join/download_file.php?pic_id=<u>a</u>'"&t=0.517103584544131,抓包查看已经对单引号做了转义处理。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值