freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

一键防御XSS漏洞
running 2025-03-15 21:57:55 30550
所属地 江西省

一、XSS 漏洞原理

XSS是最常见的Web应用程序安全漏洞之一,攻击者通过向网页注入恶意脚本,当其他用户浏览该页面时,恶意脚本就会被执行,可能导致:

  • Cookie值窃取
  • 会话劫持
  • 页面内容篡改
  • 重定向到恶意网站

二、防御方案及代码实现

  1. 对输入进行过滤与验证

适用场景:用户提交数据前(如评论、文章内容、用户名)

// 过滤评论中的危险标签(如<script>、<iframe>)

$comment = $_POST['comment'];

$clean_comment = strip_tags($comment, '<p><a><strong><em>'); // 只允许保留安全标签

strip_tags:用于从字符串中去除 HTML 和 PHP 标签,可选择保留指定的安全标签。

  1. 对输出进行转义

适用场景:将用户输入内容输出到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函数

1742044273_67d57c71e81740041f545.png!small?1742044275118

使用burpsuite抓包-->intruder模块-->添加变量

1742044362_67d57ccab9e7e79c6f980.png!small?1742044363989

设置payload

1742044595_67d57db367ff87d9eaee3.png!small?1742044597196

设置settings,找到grep-march添加一个值(都行)。

1742044696_67d57e18e9b7fb9c290e1.png!small?1742044698768

bp扩展XSS Validator-->grep phrase 修改值为上面设置的值(111)

1742044894_67d57ede92ddd208c80b0.png!small?1742044896300

攻击,显示1的payload是可以使用XSS漏洞的。

1742045134_67d57fce26c6fb438236f.png!small?1742045135655

验证,右击找到request in browser-->in original session

1742045240_67d580383320dafe47798.png!small?1742045241716

复制网址后浏览就有弹窗出现,说明执行成功。

1742045549_67d5816d7638198c873d4.png!small?1742045550913

2、使用htmlspecialchars函数

1742045746_67d5823209de4e82256d3.png!small?1742045747307

用一样的方法发现没有XSS漏洞。

1742045790_67d5825e92d7c100825c2.png!small?1742045791865

对比之后我们可以知道htmlspecialchars函数可以用来防御XSS漏洞。

四、XSS Validator工具的安装

Phantomjs下载地址:http://phantomjs.org/download.html

下载后配置环境变量,把bin目录下的Phantomjs.exe加入到环境变量中。

xss.js下载地址:https://github.com/nVisium/xssValidator

两个都下载完成后,将xss.js放在phantomjs.exe同一个文件夹下。

1742046017_67d58341e731c06efa99f.png!small?1742046019178

在这个目录下打开终端输入:phantomjsxss.js(执行之后不要关闭窗口)1742046423_67d584d7b24f15eed5013.png!small?1742046424913burpsuite里安装这个插件,安装完就可以使用了。

1742046584_67d5857838ef0f8851c16.png!small?1742046585821

# 漏洞 # 网络安全 # web安全
本文为 running 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
running LV.1
这家伙太懒了,还未填写个人描述!
  • 1 文章数
  • 1 关注者
文章目录