前言
前端注入:用户输入的数据被当作前端代码执行。
前端:HTML,CSS,JS
XSS注入百分之九十以上都是当作JS代码执行
XSS攻击目的:窃取目标的Cookie()
通过JS窃取目标cookie: document.cookie
ajax发送数据
https://www.w3school.com.cn/js/js_ajax.asp
后端代码是在服务器上执行的,而前端代码是在客服端(浏览器)上执行的
XSS的功能:
- 盗取Cookie(最常用)
- 获取内网IP(攻击内网)
- 获取浏览器保存的明文密码
- 截取网页屏幕
- 网页上的键盘记录
XSS分为三类
- 反射型:XSS并没被保存,并且在传参中存在恶意语句 一次性
- 存储型:又涉及到存储方面(数据库,日志) XSS被保存下来 持久型、
<script>alert(1)</script>
- Dom型
XSS的核心——偷Cookie
同源策略:同域名|IP,同端口,同协议
- cookie注入和cookie不是同一个东西 cookie注入,只是因为目标站点滥用REQUEST来接受传参 cookie的时效性(cookie是不应该也不会放入数据库) cookie 代表我的身份, 类似于身份证 一次会话 cookie是随机字符串(多串)是由目标网站给的 时效性:一次会话(浏览器被关闭) 或者 一段时间(由开发设定) 原则上而言cookie需要完整的,但是实际上而言,cookie不一定每一条都代表权限。
XSS语句:
触发JS: (三种方法)
- 标签风格:
<script></script>
- 伪协议:
<a href=javascript:alert(1)>
- 事件:满足某些条件,触发某种反应
<img src='#' onerror=alert(1)>
onerror
加载失败时触发onload
加载成功时触发
可以参考:JS全部事件
靶场操作
先用标签进行注入

查看源代码,找到发现<>
被编码了

<>
被过滤,只能采用事件法进行XSS攻击,
这里采用事件法来触发JS
' oninput=alert(1) //
oninput
:当用户在<input>
标签中尝试进行输入时执行JS

尝试输入任意内容触发JS

XSS防御方法:
- 将传参HTML实体化
- 对输出过滤
Comments NOTHING