前言
看了P喵呜-PHPoop师傅的文章后来复现学习一波
环境
可控点在<script> 标签里面的里一个 a变量内,转义了单引号与双引号 并且被双引号包含。
xss.php
<!DOCTYPE html>
<html lang="en">
<head>
<title>xss-test</title>
</head>
<body>
xss-test
</body>
<script>
var a = "<?php echo @addslashes($_GET[data]); ?>";
</script>
</html>
解法
这里使用正常的payload因为"'会被转义没办法去闭合
payload: 1</script><svg/onload=alert(1)>
查看源代码可以发现双引号虽然被转义了,但是浏览器认为遇到的第一个</script>是结束符,从而执行了我们直接的代码