目录

XSS(跨站脚本攻击)

1、反射型XSS(get)

2、反射型XSS(post)

3、存储型XSS

4、DOM型XSS

5、DOM型XSS-X

6、XSS之盲打

7、XSS之过滤

8、xss之htmlspecialchars

9、XSS之href输出

10、XSS之JS输出


XSS(跨站脚本攻击)

全称跨站脚本(Cross Site Scripting)是web中最为常见的漏洞之一,也是危害特别大的一种漏洞,一直高居漏洞排行榜的前几名。XSS漏洞的成因是没有对WEB前端的输入边界尽心严格的过滤,造成攻击者可以通过构造脚本语言使得输入的内容 被当成正常的HTML来执行(类似于SQL注入),从而产生危害。xss漏洞危害的对象主要是前端用户,并且可以用来进行钓鱼、前端js挖矿、用户cookie获取、甚至可以结合浏览器自身的漏洞对主机进行远程控制等

XSS(窃取cookie)攻击流程

攻击者发现存在xss漏洞的站点插入js脚本等待用户访问

用户访问xss页面,触发脚本,返回带有恶意js的页面

执行脚本,发送窃取数据(cookie)到攻击者

伪造用户登录,造成破坏

XSS漏洞常见类型

反射性

交互的数据一般不会被存在数据库里,一次性所见即所得,一般出现在查询类页面等

存储型

交互的数据被存储在数据库里,永久性存储,一般出现在留言板、注册等页面

DOM型

不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性。也属于反射型的一种

XSS漏洞测试流程

1、在目标站点上找到输入点,比如查询接口、留言板等;

2、输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是都有对应的处理

3、通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造js的条件(构造闭合)

4、提交构造较稳的代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在xss漏洞

5、一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS

6、由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器)

7、通过变化不通的script,尝试绕过后台过滤机制

1、反射型XSS(get)

首先尝试输入代码, 发现只能输入20个字符

F12可以打开网页的代码

修改为更大的数值,然后继续输入代码:

<script>alert("www.baidu.com")</script>

直到弹窗出现,可以构造带有payload的URL来进行诱导用户的点击。

2、反射型XSS(post)

首先输入admin/123456登录

输入脚本攻击的代码(用来获取用户的cookie):

<script>alert(document.cookie)</script>

3、存储型XSS

存储型XSS和反射型XSS形成的原因是一样的,不同的是存储型XSS下攻击者的可以将脚本注入到后台存储起来,构成更加持久的危害

直接输入payload:

<script>alert(document.cookie)</script>

再插入payload以后,每次刷新都会出现cookie值,所以是存储型XSS,已经生成数据库了。

4、DOM型XSS

造成DOM型XSS的原因是前端的输入被DOM给获取到了,通过DOM又在前端输出,跟反射型和存储型比起来,它是不经过后台交互的。

HTML-DOM

查看源码分析:

需要闭合<a>标签,

直接输入构造的payload代码:

#' οnclick=alert("www.baidu.com")>

然后点击下面的链接what do you see:

5、DOM型XSS-X

构造一样的payload进行攻击:

#' οnclick=alert("www.baidu.com")>

出现下方的文字链接,点击即可出现诱导性的弹窗。

6、XSS之盲打

首先在留言框输入payload:

<script>alert(document.cookie)</script>

通过URL进入管理后台

点击登录即可看见弹窗

7、XSS之过滤

常见过滤绕过方法:

前端限制绕过,直接抓包重放,或者修改html前端代码。比如反射型XSS(get)中限制输入20个字符。

大小写,例如<SCRIPT>aLeRT(“jwt”)</sCRIpt>。后台可能用正则表达式匹配,如果正则里面只匹配小写,那就可能被绕过。

双写,例如<scri<script>pt>alert(“jwt”)</scri</script>pt>。后台可能把<script>标签去掉,但可能只去掉一次。

注释干扰,例如<scri<!--test-->pt>alert(“jwt”)</sc<!--test-->ript>。加上注释后可能可以绕过后台过滤机制。

编码,后台过滤了特殊字符,比如<script>标签,但该标签可以被各种编码,后台不一定过

输入payload(使用大写的方式绕过):

<SCRIPT>alter("www")</SCRIPT>

弹窗出现

8、xss之htmlspecialchars

htmlspecialchars()PHP里面把预定义的字符转换为HTML实体的函数,这个函数默认情况下是不会编码单引号的。

$value = htmlspecialchars($_GET['value'], ENT_COMPAT);

# 第2个参数规定了如何处理引号

ENT_COMPAT   # 默认,仅对双引号进行编码

ENT_QUOTES   # 推荐,编码单双引号

ENT_NOQUOTES # 不编码任何引号

单引号闭合<a>标签

键入payload:

' οnclick='alert(111)'

' οnclick='alert(1399)

' οnclick=alert('jwt') '

点击

9、XSS之href输出

使用了都htmlspecialchars函数,><"'&都被HTML实体化,且用户输入的在href标签里,可以使用javascript协议来执行js代码

防御href :

  • 输入的时候只允许 http 或 https 开头的协议,才允许输出
  • 其次再进行htmlspecialchars处理

输入payload:

Javascript:alert(’www’)

点击

10、XSS之JS输出

用一个单引号和</script>闭合掉页面中的<script>,然后再插入自己的JS代码

直接输入payload:

'</script><script>alert('www')</script>

其他:

'; alert(1); //

'</script><script>alert(1)//

修复需要注意的问题:

1.这里如果进行html的实体编码,虽然可以解决XSS的问题,但是实体编码后的内容,在JS里面不会进行翻译,这样会导致前端的功能无法使用。

2.所以在JS的输出点应该使用\对特殊字符进行转义

XSS防范

输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

部分内容借鉴于:简言之

pikachu-XSS(跨站脚本攻击)相关推荐

  1. XSS跨站脚本攻击漏洞(1)

    XSS漏洞介绍: xss攻击的目录就是让前端把我们的攻击代码执行 跨站攻击   全都是前端的  只需要右击查看源代码就可以查看到漏洞了 测试漏洞方式:弹窗测试(测试成功以后具体功能实现的xss代码有很 ...

  2. 小迪安全--xss跨站脚本攻击

    xss跨站脚本攻击 xss原理 危害 pikachu靶场 反射型xss 存储型xss DOM型xss xss平台 cookie和session 利用cookie webshell箱子 xss常见位置 ...

  3. 渗透知识-XSS跨站脚本攻击

    XSS跨站脚本攻击:两种情况.一种通过外部输入然后直接在浏览器端触发,即反射型XSS:还有一种则是先把利用代码保存在数据库或文件中,当web程序读取利用代码并输出在页面上时触发漏洞,即存储型XSS.D ...

  4. [网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Python弱口令攻击.自定义字典生成,并构建了Web目录扫描器:本文将 ...

  5. xss跨站脚本攻击_网络安全xss跨站脚本攻击原理

    以下在未经授权的网站操作均为违法行为 XSS跨站脚本攻击 xss的危害 网络钓鱼,盗取各类账号密码 我们先来看一下下面的案例:先来记住一下下面中的表 我们来做一个转发 上面页面显示已经登录,但是突然页 ...

  6. 遭遇 XSS 跨站脚本攻击?稳住,这些方法可保你渡劫 | 附代码、图解

    作者 | 杨秀璋 责编 | 夕颜 出品 | CSDN博客 本文将详细讲解XSS跨站脚本攻击,从原理.示例.危害到三种常见类型(反射型.存储型.DOM型),并结合代码示例进行详细讲解,最后分享了如何预防 ...

  7. XSS(跨站脚本攻击)漏洞解决方案

    XSS(跨站脚本攻击)漏洞解决方案 参考文章: (1)XSS(跨站脚本攻击)漏洞解决方案 (2)https://www.cnblogs.com/boboxing/p/9261996.html 备忘一下 ...

  8. XSS 跨站脚本攻击 的防御解决方案

    XSS 跨站脚本攻击 的防御解决方案 参考文章: (1)XSS 跨站脚本攻击 的防御解决方案 (2)https://www.cnblogs.com/suwings/p/6285340.html 备忘一 ...

  9. 《XSS跨站脚本攻击剖析与防御》—第6章6.1节参 考 文 献

    本节书摘来自异步社区<XSS跨站脚本攻击剖析与防御>一书中的第6章6.1节参 考 文 献,作者邱永华,更多章节内容可以访问云栖社区"异步社区"公众号查看. 参 考 文 ...

  10. XSS(跨站脚本攻击)相关内容总结整理

    XSS的攻击相关资料整理 文章目录 XSS的攻击相关资料整理 跨站脚本攻击(XSS) XSS 简介 XSS 危害 XSS 原理 XSS 分类 XSS 防御总结 XSS 问答 参考资料 跨站脚本攻击(X ...

最新文章

  1. TensorFlow 2.4来了!
  2. Mac上webstorm与git仓库建立连接
  3. JSON调试找不到 net.sf.ezmorph.Morpher问题解决
  4. s28 LNMP架构服务搭建
  5. 如何自定义MFC的窗口类名
  6. 数据仓库之电商数仓-- 4、可视化报表Superset
  7. Git使用中关于rebase 、stash 、reflog、reset的一些注意点
  8. 2017.9.4 Nim 思考记录
  9. 20145239杜文超 《Java程序设计》第7周学习总结
  10. 获取map中的一个value值以及遍历map获得map里所有key、value的值
  11. python 导出数据并发邮件_Python 获取zabbix数据图并发邮件
  12. 2022年最新版黑马程序员Java自学路线(免费分享)
  13. Linux内核编程11期:设备树(device tree)
  14. FaceWarehouse 3DMM形状拟合
  15. 解决office2010每次打开出现配置进度的方法
  16. 详解ASR语音转写场景下的应用
  17. PCB LAYOUT特殊走线总结
  18. GaN制备Micro-led(二)——光子晶体倒装 Micro-LED 制备的关键工艺(纳米压印光刻、干法刻蚀、介质薄膜沉积、物理气相沉积)
  19. php 在服务器运行不起,PHP Cookies在localhost上运行良好,但在实时服务器上不起作用...
  20. 巴菲特:为什么在混乱和动荡的时候最适合买入股票?

热门文章

  1. anyconnect免密码登录
  2. 前端js解析识别图片二维码
  3. 「技术选型」深度学习软件如何选择?
  4. 小程序开发--表格table的实现
  5. 点云库pcl从入门到精通 第十章
  6. Android获取自定义格式时区
  7. 51单片机之8×8点阵显示(74HC595)
  8. 2022年顶会accepted papers list
  9. 【附源码】计算机毕业设计JAVA学生公寓管理系统
  10. erp系统软件到底是干嘛用的?