后端采用apache搭建

配置Brup Suit代理,Brupt suit绑定至本地6666号端口进行监听
在Proxy选项卡中的Options设置端口监听
在浏览器中手动配置代理,HTTP代理127.0.0.1,端口号选择刚才配置的


测试代码

前端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="./js/lib/jquery-3.5.1.min.js"></script>
<title>Document</title>
</head>

<body>
<form action="/php/index.php" method="post">
<input class="text" type="text" name="text" id="">
<button class="btn">测试</button>
</form>
<script>
jQuery(function () {
$('.btn').on('click', function (ev) {
check($('.text'));
})
function check(f) {
var c = new Array('script', '<', '>', 'input', 'img');
var str = f.val();
for (var i = 0; i < c.length; i++) {
if (str.indexOf(c[i]) != -1) {
alert('你输入的数据存在敏感字符' + c[i]);
return false;
}
}
}
})
</script>
</body>

</html>

后端

1
2
3
4
<?php
header('Content-Type:text/html;charset=utf-8 ');
echo '你输入的内容为' . $_POST["text"];

输入一个正常的数据后拦截POST请求


将其修改为敏感文本(一段js代码)

注意要先配置php环境和Content-Type,修改后的数据包直接发送


成功在服务器插入了一段js脚本,通过修改HTTP请求绕过了前端javascript验证,造成了XSS跨站漏洞

以上实验证明了后端验证的必要性,前端验证可以通过拦截数据包轻易绕过,为了应对恶意攻击后端验证是必须的