一、介绍反射型XSS
反射型xss攻击( Reflected XSS)又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个==带XSS攻击向量的链接==( 即每次攻击需要用户的点击)
通俗解释:
想象你走进一家商店(代表一个网站)。你和店员(网站服务器)交流是通过一个小纸条(代表URL参数)。
正常情况下,你在小纸条上写你想要的商品名字(正常信息),店员看了纸条后,会把商品相关内容(正常回应)写在一张新的纸条上给你。
但是反射型XSS就像是有个坏蛋,他在小纸条上写了一些“魔法咒语”(恶意脚本)。店员没分辨出来,就把这个“魔法咒语”原封不动地抄到新纸条上给你。当你看到纸条时,“魔法咒语”就生效了,可能会让你的个人信息(比如钱包里的钱或者其他隐私)被偷走。
简单说,反射型XSS就是攻击者通过欺骗网站,让网站把恶意代码返回给用户浏览器并执行,从而达到攻击目的。
二、JavaScript介绍
JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行
Javascript语法格式:
<script>
[Javascript代码]
</script>
菜鸟教程


<script>
alert("这是我的第一个JavaScript代码");
</script>

放在哪个地方都可以执行
跳转网站
<script>
window.location.href="https://www.baidu.com";
</script>

XSS黑页
<script>
const iframe = document.createElement("iframe");
iframe.src= "http://baidu.com";
iframe.style="position:fixed;width:100%;height:100%;top:0;z-ingde: 99999";
document.body.appendChild(iframe);
</script>

三、XSS漏洞测试
找到输入点可以把内容显示到源代码上

输入的内容显示在页面上

插入了js代码

当没有输入框时也可以在url框里输入

直接输入script代码结果一样
当把这个带有XSS的链接发送给别人时,别人点击也会触发反射型XSS漏洞
在XSS中常用的是以下这些标签(js事件)
alert alert()方法用于显示带有一条指定消息和一个确认按钮的警告框
window.location window.location对象用于获得当前页面的地址(URL) ,并把浏览器重定向 到新的页面
location.href 返回当前显示的文档的完整URL
onload 一张页面或一幅图像完成加载
onerror 在加载文档或图像时发生错误
onchange HTML 元素改变
onclick 用户点击 HTML 元素
onmouseover 鼠标指针移动到指定的元素上时发生
onmouseout 用户从一个 HTML 元素上移开鼠标时发生
onkeydown 用户按下键盘按键