XSS攻击有哪几种形态

发布时间:2021-11-15 16:37:07 作者:iii
来源:亿速云 阅读:158

这篇文章主要介绍“XSS攻击有哪几种形态”,在日常操作中,相信很多人在XSS攻击有哪几种形态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”XSS攻击有哪几种形态”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、非持久形

    什么是非持久形呢?最通俗易懂的说法就是 每当进行攻击时 要手动进行注入

    例子:

#该文件为form.html 其中包含form表单准备提交至 form.php
<form action="/form.php" method="post">
  <input type="text" value="" name="param">
  <input type="submit">
</form>


#该文件为form.php
<?php 
  $param = $_GET['param'];
  echo "您好,{$param}!";
?>

#映射关系
客户端(浏览器)->服务器端->客户端(浏览器)

····如果我们在param字段中填写正常的字符串 param=张三

    结果则会输出   “您好,张三”;

····但如果非正常字符串 param=<script>window.location.href="https://www.baidu.com"</script>

    结果则不会按照我们的预想一样 正常输出并停留在该页面 当php直接输出直接用户提交的param参数时

    其中的script标签中的内容就会被浏览器解析 从而导致页面被js脚本重定向至百度首页 

    这就是一个最简单的非折射性XSS攻击的示例了

2、持久形

    上面我们说过了非持久形,那么持久形与其刚好相反。不需要每次攻击都进行手动注入,而是通过系统某个注入点进行攻击。将攻击的内容存储在 数据库、内存、缓存之中。最经典的例子就是通过留言板进行注入。

#这是 guestbook.html
<form action="/guestbook.php" method="post">
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
内容:<input type="text" name="content"><br>
</form>

#这是 guestbook.php
<?php 
  #假设存在 guestbook表
  $name    = $_POST['name'];
  $age     = $_POST['age'];
  $content = $_POST['content'];

  $con=mysqli_connect("localhost","user","password","database"); 
  mysqli_query($con,"INSERT INTO xss(name, age, content) VALUES ($name,$age,$content)");

  #此时 如果用户提交的内容是一些js脚本 我们不加过滤 那么信息就会直接储存到我们的数据库中
  #此时并没有造成影响 一旦该留言 在前端留言页面被读取展示 其中的JS就会被浏览器解析 从而达到 不管是谁访问留言板页面 
  #都会直接执行该JS代码 从而对我们的网站造成影响

#映射关系
客户端(浏览器)->服务器(php数据入库)->数据库(储存)->服务器(php读取数据)->客户端(渲染在浏览器端)
?>

3、DOM形

    DOM形 不需要服务器端参与 仅通过DOM树即可完成

<script>
  #获取URL的锚部分(从 # 号开始的部分) 例如:https://www.baidu.com#abc
  eval(decodeURI(location.hash.substr(1)))

  #js的eval函数具有极大安全隐患 如果我在地址栏输入 https://www.baidu.com#https://www.abc.com/xss.js
  #那么js就会直接读取https://www.abc.com/xss.js的内容 一旦xss.js中包含恶意代码 那么我们的网站就会收到影响

#映射关系
客户端(仅通过客户端 无需服务器端处理)
</script>

到此,关于“XSS攻击有哪几种形态”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 过程的形态与转换
  2. ffmpeg 分数的表示形态

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

xss攻击

上一篇:怎么理解抽象同步队列AQS

下一篇:自动注解实现Spring IOC和事务管理的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》