1,什么是XSS
定义:
个人理解:就是HTML代码注入
注入攻击的本质,就是把用户输入的数据当作前端代码去执行
HTML+CSS+JS 组合
拼接的什么:
拼接的HTML代码,一般是JS语句
XSS的危害:
~盗取cookie //主要
~获取内网ip
~获取浏览器保存的明文密码
~截取网页屏幕
~网页上的键盘记录
cookie是存放在用户的浏览器里面的,只要能操纵你的浏览器或者读取你的cookie,别人就能得到
XSS平台:
为了方便利用各种复杂XSS语句,XSS平台应运诞生
xsspt.com //开放注册
xss9.com //需要邀请码
XSS平台大大方便了XSS攻击,只需要引入一个平台外部链接就可以了实现功能了
2,类别
~反射型
一般危害不是太大,国内不是太重视。一般不点xss链接就没事(诱骗你点链接,来窃取你的cookie)/传参一般不会进入数据库
~存储型
一般发生在留言板,上传的恶意代码被存储在数据库中,日后只要有人访问,就会被攻击 /传参会进入数据库
~dom型
比较特别,日后细讲
3,如何检测存在
三种类型:
1.标签触发
一般是想办法让浏览弹窗一下,最经典的弹窗语句:
<script>alert(1)</script>
只要有弹窗,就证明有xss
2.xss的方式
~正常在url中打入
~使用伪协议
伪协议:不同于因特网上真实存在的协议,如http://,https://,ftp://
伪协议只有在特定环境下才可以执行(关联应用中使用),
比如:php:// tencent://(关联QQ)
经典代码:
<a href=javascript:alert(1)>test</a>
3. ~利用事件(满足两种条件,自动触发)
理解:当满足某种条件时,就执行
例如:<img src='suibian.jpg' onerror=alert(1)/>
上述语句就是,先加载suibian.jpg图片,如果没成功,就弹个“1”
注意:html事件,可以直接百度,有很多很多事件
靶场核心就在于触发一个弹窗
1,XSS != js注入
Xss攻击手段很多,不能盲目的把XSS当作JS注入。
XSS应该是包括js注入
2,xss打的实际上是浏览器
3,cookie是存在浏览器中的
4,漏洞:会对用户造成影响的bug
5,短链接欺骗
常常反射型xss链接很长,人们不会能傻去点击,这时候直接百度“短链接生成”,
变成短链接就可以更好的欺骗
8,找反射型xss,尽量不要用谷歌浏览器
浏览器在长期的更新中,有了安全意识,你一个xss代码打进去,
就被谷歌浏览器拦截了,所以建议使用火狐浏览器测试
9,提供几个常用事件型代码
' oninput=alert(1) // //在输入框输入东西被弹出,后边的“//”是注释
' onfocus=alert(1) // //有人点击输入框就弹窗
' onfocus=alert(1) autofocus// //自动检测输入框进行弹窗
XSS的原理分析与解剖常见问题
1.xss的本质是什么
我们的传参被拼接进HTML页面,并且被执行
2.xss如何执行
通过拼接恶意的html代码,js语句来执行攻击,实际上为html代码注入
3.xss作用
盗用cookie,得到内网ip,获取保存的密码等
4.如何检测xss
通过一个经典语句<script>alert('1')</script>弹窗检测
5.xss还可以通过什么来执行
通过事件,伪协议来执行
6.伪协议是什么
一种不同与真实协议的协议,只有关联应用才可以用(例如:javascript:alert(1))
7.事件是什么
这里的事件就是指js事件,通过之歌js事件来执行 例如<img src='1' onerror=alert(1)/>当图片加载错误时弹窗,以此来触发执行语句
8.xss一般通过什么来执行
写在<script>标签内或者是事件标签触发
9.一定要用<来闭合吗
不一定 '和"也可以用来闭合语句
10.xss的过滤方法
进行转义实体编码输出,加标签,正则匹配替换
11.常用的事件有哪些
onerror(加载错误时触发),onload(加载成功时触发),oninput(输入框输入时触发)
12.如何防范xss
转义字符输出,用白名单验证、HTML实体化
13.xss要成功执行的条件是什么
用户可以控制输入,执行代码拼接用户输入数据
14.xss有几种类型
有三种,分别为反射型,存储型,DOM型
15.三种xss的形式的区别是什么
反射型 非持久型xss 只对本次访问有影响
存储型 持久型xss 存入数据库,访问时触发
DOM型 利用DOM对象触发的xss
16.反射型XSS具体使用方法
比如百度存在反射型XSS,然后你构建可以窃取Cookie的JS语句,然后传参点在URL那里,然后我们通过短链接将他变为短链接,然后发给想要获取别人信息的人。然后人家如果登陆状态访问了就会触发XSS
17.反射型XSS为什么很多SRC不收
因为危害比较小,需要管理员和你交互,大部分公益SRC会不收,专属的可以获得。
18.DOM型XSS究竟是持久型还是非持久型?
既有持久也有非持久,DOM型最简单的理解方法就是通过网页自带JS操作后造成的XSS,例如本身可能有HTML实体编码,结果我们输出点因为JS会进行解码,然后我们打了编码过的字符串,绕过了HTML实体编码造成的XSS就属于DOM型
19.事件型XSS是不是需要交互妮?
不一定,有些事件需要,有些不需要,例如: onload onerror 这些就不需要,我用的最喜欢的还是onfocus=alert(1) autofocus (获取焦点触发弹窗,然后自动触发)
20.事件有哪些?
https://www.w3school.com.cn/tags/html_ref_eventattributes.asp
21.Xss窃取他人Cookie最简单的方法是什么?
通过XSS平台,例如XSSPT
22.短链接是什么?
短链接,通俗来说,就是将长的URL网址,转换为简短的网址字符串,和DNS协议有点像,提供服务的网站会在数据库里面存储短链接对应的原本URL是什么,当你访问短链接,然后那边设置了302重定向跳转到原本的长URL
23.XSS在什么地方可以插入?
有输入的地方就插进去
24.XSS一般在什么业务场景容易遇见?
重灾区:评论区、留言区、个人信息、订单信息等
针对型:站内信、网页即时通讯、私信、意见反馈
存在风险:搜索框、当前目录、图片属性等