🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**xss 漏洞大致分三种** * 反射型 XSS 漏洞 * 保存(存储)型 XSS 漏洞 * 基于 DOM 的 XSS 漏洞 审计sql语句主要update insert 更新和插入语句 检查内容输入输出没有被过滤或者过滤不严! 例子 ``` 表 CREATE TABLE `book` ( `id` int(5) NOT NULL auto_increment, `title` varchar(32) NOT NULL, `con` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1 ; ``` 未过滤的插入sql代码 ``` <?php mysql_connect('localhost','root',''); mysql_select_db('test'); mysql_query("set names gbk"); if(isset($_POST['submit'])){ $title=$_POST['title']; $con=$_POST['con']; $sql="INSERT INTO `book` (`id` ,`title` ,`con`)VALUES (NULL , '$title', '$con');"; if(mysql_query($sql)){ echo "留言成功"; }else{ echo "留言失败"; } }else{ $sql="select * from book"; if($row=mysql_query($sql)){ while($rows=mysql_fetch_array($row)){ echo $rows['id'].$rows['title'].$rows['con']."<br>"; } } } ``` xss代码 ``` <html> <h1>存储型 xss 漏洞演示</h1> <form action="?action=insert" method="post"> 标题:<input type="text" name="title"><br> 内容:<textarea name="con"> 内容。。。<script><alert(1);</script>。。。内容 </textarea> <input type="submit" name="submit" value="提交"> <form> </html> ``` 防御: htmispecialchars 函数 | 字符 | 替换后 | | --- | --- | | *&*(& 符号) | *\&amp;* | | *"*(双引号) | *\&quot;*,除非设置了 **`ENT_NOQUOTES`** | | *'*(单引号) | 设置了 **`ENT_QUOTES`**后,*\&#039;* (如果是**`ENT_HTML401`**) ,或者 *\&apos;* (如果是 **`ENT_XML1`** 、 **`ENT_XHTML`** 或 **`ENT_HTML5`**)。 | | *<*(小于) | *\&lt;* | | *\>*(大于) | *\&gt;* |