代码审计XSS 漏洞
Posted 学会总结
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码审计XSS 漏洞相关的知识,希望对你有一定的参考价值。
一、XSS漏洞
1、反射型XSS
黑盒扫描:
将尖括号、单双引号等提交到Web服务器,检查返回到html页面里有没有保留原来到特殊字符即可。
白盒审计:
寻找带有参数的输出函数,然后根据输出函数对输出内容回溯输入参数,观察有没有经过过滤。
输出函数:
print、print_r、echo、printf、sprintf、die、var_dump、var_export
测试代码:
<?php
echo $_GET['a'];
?>
测试截图:
2、存储型XXS
经常出现的地方:文章发表、评论回复、留言、资料设置
白盒审计:
寻找未过滤的输入点和未过滤的输出函数。
这个最终的输出点可能跟输入点完全不在一个业务流上:
(1)对于这类可以根据代码功能去猜
(2)或者老老实实去追哪里有操作过这个数据,使用表名、字段名去代码里搜索。
二、漏洞防范
1、特殊字符HTML实体转码
(1)单引号(')
(2)双引号(")
(3)尖括号(<>)
(4)反斜杠(\)
(5)冒号(:)
(6)and符(&)
(7)#号(#)
htmlspecialchars() 函数说明
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号) 成为 &
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
测试代码:
<?php
echo htmlspecialchars($_GET['a']);
?>
测试截图:
查看页面源代码,特殊字符被HTML实体转码
2、标签事件属性黑白名单
推荐用白名单
参考链接
《代码审计-企业级Web代码安全架构》,尹毅 编著
以上是关于代码审计XSS 漏洞的主要内容,如果未能解决你的问题,请参考以下文章