一、XSS 漏洞原理
XSS是最常见的Web应用程序安全漏洞之一,攻击者通过向网页注入恶意脚本,当其他用户浏览该页面时,恶意脚本就会被执行,可能导致:
- Cookie值窃取
- 会话劫持
- 页面内容篡改
- 重定向到恶意网站
二、防御方案及代码实现
-
对输入进行过滤与验证
适用场景:用户提交数据前(如评论、文章内容、用户名)
// 过滤评论中的危险标签(如<script>、<iframe>)
$comment = $_POST['comment'];
$clean_comment = strip_tags($comment, '<p><a><strong><em>'); // 只允许保留安全标签
strip_tags:用于从字符串中去除 HTML 和 PHP 标签,可选择保留指定的安全标签。
-
对输出进行转义
适用场景:将用户输入内容输出到HTML页面时
// 普通文本输出(所有特殊字符转换为 HTML 实体,使用 UTF-8 编码)
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
// 在HTML属性中输出
<input value="<?= htmlspecialchars($user_input, ENT_QUOTES,'UTF-8') ?>">
三、bp扩展自动化测试XSS
以XSS靶场第三关为例(修改未使用htmlspecialchars函数和使用htmlspecialchars函数)
1、未使用htmlspecialchars函数
使用burpsuite抓包-->intruder模块-->添加变量
设置payload
设置settings,找到grep-march添加一个值(都行)。
bp扩展XSS Validator-->grep phrase 修改值为上面设置的值(111)
攻击,显示1的payload是可以使用XSS漏洞的。
验证,右击找到request in browser-->in original session
复制网址后浏览就有弹窗出现,说明执行成功。
2、使用htmlspecialchars函数
用一样的方法发现没有XSS漏洞。
对比之后我们可以知道htmlspecialchars函数可以用来防御XSS漏洞。
四、XSS Validator工具的安装
Phantomjs下载地址:http://phantomjs.org/download.html
下载后配置环境变量,把bin目录下的Phantomjs.exe加入到环境变量中。
xss.js下载地址:https://github.com/nVisium/xssValidator
两个都下载完成后,将xss.js放在phantomjs.exe同一个文件夹下。
在这个目录下打开终端输入:phantomjsxss.js(执行之后不要关闭窗口)burpsuite里安装这个插件,安装完就可以使用了。
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)