Web网络安全的存储型XSS攻击漏洞原理是什么
本篇内容介绍了“Web网络安全的存储型XSS攻击漏洞原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
存储型XSS攻击
存储型XSS页面实现的功能是:获取用户输入的留言信息、标题和内容,然后将标题和内容插入到数据库中,并将数据库的留言信息输出到页面上,如图71所示。
当用户在标题处写入1,内容处写入2时,数据库中的数据如图72所示。
图72 保存留言信息到数据库
当输入标题为<img class="lazy" data-src=X οnerrοr=“alert(/xss/)”/>。然后将标题输出到页面时,页面执行了<img class="lazy" data-src=X οnerrοr=“alert(/xss/)”/>,导致弹出窗口。此时,这里的XSS是持久性的,也就是说,任何人访问改URL时都会弹出一个显示“/xss/”的框,如图73所示。
存储型XSS代码分析
在存储型XSS的PHP代码中,获取POST参数title和参数content,然后将参数插入数据库表XSS中,接下来通过select查询将表XSS中的数据查询出开,并显示到页面上,代码如下所示。
<html><head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>留言板</title></head><body> <center> <h7>输入留言内容</h7> <form action="" method="post"> 标题:<input type="text" name="title"><br /> 内容:<textarea name="content"></textarea><br /> <input type="submit"> </form> <hr> <?php $con=mysqli_connect("localhost","root","root","test"); if (mysqli_connect_errno()) { echo "连接失败: " . mysqli_connect_error(); } if (isset($_POST['title'])) { $result1 = mysqli_query($con,"insert into xss(`title`, `content`) VALUES ('".$_POST['title']."','".$_POST['content']."')"); } $result2 = mysqli_query($con,"select * from xss"); if (!$result2) { exit(); } echo "<table border='1'><tr><td>标题</td><td>内容</td></tr>"; while($row = mysqli_fetch_array($result2)) { echo "<tr><td>".$row['title'] . "</td><td>" . $row['content']."</td>"; } echo "</table>"; ?> </center></body></html>
当用户在标题处写入<img class="lazy" data-src=1 οnerrοr=“alert(/xss/)”/>时,数据库中的数据如图74所示。
当将title输出到页面时,同页面执行了<img class="lazy" data-src=1 οnerrοr=“alert(/xss/)”/>,导致弹窗。
“Web网络安全的存储型XSS攻击漏洞原理是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341