pikachu-XSS(跨站脚本攻击)
目录
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(跨站脚本攻击)相关推荐
- XSS跨站脚本攻击漏洞(1)
XSS漏洞介绍: xss攻击的目录就是让前端把我们的攻击代码执行 跨站攻击 全都是前端的 只需要右击查看源代码就可以查看到漏洞了 测试漏洞方式:弹窗测试(测试成功以后具体功能实现的xss代码有很 ...
- 小迪安全--xss跨站脚本攻击
xss跨站脚本攻击 xss原理 危害 pikachu靶场 反射型xss 存储型xss DOM型xss xss平台 cookie和session 利用cookie webshell箱子 xss常见位置 ...
- 渗透知识-XSS跨站脚本攻击
XSS跨站脚本攻击:两种情况.一种通过外部输入然后直接在浏览器端触发,即反射型XSS:还有一种则是先把利用代码保存在数据库或文件中,当web程序读取利用代码并输出在页面上时触发漏洞,即存储型XSS.D ...
- [网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Python弱口令攻击.自定义字典生成,并构建了Web目录扫描器:本文将 ...
- xss跨站脚本攻击_网络安全xss跨站脚本攻击原理
以下在未经授权的网站操作均为违法行为 XSS跨站脚本攻击 xss的危害 网络钓鱼,盗取各类账号密码 我们先来看一下下面的案例:先来记住一下下面中的表 我们来做一个转发 上面页面显示已经登录,但是突然页 ...
- 遭遇 XSS 跨站脚本攻击?稳住,这些方法可保你渡劫 | 附代码、图解
作者 | 杨秀璋 责编 | 夕颜 出品 | CSDN博客 本文将详细讲解XSS跨站脚本攻击,从原理.示例.危害到三种常见类型(反射型.存储型.DOM型),并结合代码示例进行详细讲解,最后分享了如何预防 ...
- XSS(跨站脚本攻击)漏洞解决方案
XSS(跨站脚本攻击)漏洞解决方案 参考文章: (1)XSS(跨站脚本攻击)漏洞解决方案 (2)https://www.cnblogs.com/boboxing/p/9261996.html 备忘一下 ...
- XSS 跨站脚本攻击 的防御解决方案
XSS 跨站脚本攻击 的防御解决方案 参考文章: (1)XSS 跨站脚本攻击 的防御解决方案 (2)https://www.cnblogs.com/suwings/p/6285340.html 备忘一 ...
- 《XSS跨站脚本攻击剖析与防御》—第6章6.1节参 考 文 献
本节书摘来自异步社区<XSS跨站脚本攻击剖析与防御>一书中的第6章6.1节参 考 文 献,作者邱永华,更多章节内容可以访问云栖社区"异步社区"公众号查看. 参 考 文 ...
- XSS(跨站脚本攻击)相关内容总结整理
XSS的攻击相关资料整理 文章目录 XSS的攻击相关资料整理 跨站脚本攻击(XSS) XSS 简介 XSS 危害 XSS 原理 XSS 分类 XSS 防御总结 XSS 问答 参考资料 跨站脚本攻击(X ...
最新文章
- TensorFlow 2.4来了!
- Mac上webstorm与git仓库建立连接
- JSON调试找不到 net.sf.ezmorph.Morpher问题解决
- s28 LNMP架构服务搭建
- 如何自定义MFC的窗口类名
- 数据仓库之电商数仓-- 4、可视化报表Superset
- Git使用中关于rebase 、stash 、reflog、reset的一些注意点
- 2017.9.4 Nim 思考记录
- 20145239杜文超 《Java程序设计》第7周学习总结
- 获取map中的一个value值以及遍历map获得map里所有key、value的值
- python 导出数据并发邮件_Python 获取zabbix数据图并发邮件
- 2022年最新版黑马程序员Java自学路线(免费分享)
- Linux内核编程11期:设备树(device tree)
- FaceWarehouse 3DMM形状拟合
- 解决office2010每次打开出现配置进度的方法
- 详解ASR语音转写场景下的应用
- PCB LAYOUT特殊走线总结
- GaN制备Micro-led(二)——光子晶体倒装 Micro-LED 制备的关键工艺(纳米压印光刻、干法刻蚀、介质薄膜沉积、物理气相沉积)
- php 在服务器运行不起,PHP Cookies在localhost上运行良好,但在实时服务器上不起作用...
- 巴菲特:为什么在混乱和动荡的时候最适合买入股票?