反射型xss(get)
一.原理
反射型是将攻击者的恶意代码发送到服务器端后又原样返回,是一次性的攻击方式。在用户点击被攻击者插入恶意代码的网页链接后,恶意代码在被攻击者的网页中被执行。
二.攻击过程
进行语句输入,发现输入长度有限制
使用语句:
<script>alert(1)</script>
按F12打开查看器,将语句的限制长度改为50
之后我们继续进行输入,提交得到弹窗
反射型xss(post)
攻击过程
点击提示得到给我门的用户名和密码,登录
登录进去之后发现有输入框,这就可以进行xss
输入同样的语句得到弹窗
存储型xss
一、原理
存储型是将攻击者在留言板等输入框中输入的恶意代码直接存入数据库中,由于数据库不识别js代码,一旦有用户打开存有恶意代码的网页界面,那么恶意代码就会被从数据库中读出,是一类危害最大的xss攻击。
二、攻击过程
在输入框输入payload
输入完之后没有什么变化,但是在之后每次访问时都会弹窗
F12打开代码可以看到payload
DOM型xss
一、原理
dom型又称self-xss,攻击者利用dom节点的结构在网页中插入一段恶意代码,这段代码被简单处理或未处理后又在网页中的一个位置显示出来,攻击过程中所有恶意代码均在前端执行。
二、攻击过程
在输入payload后没有反应
查看源代码,发现都被拼接了
要先把前面的代码进行闭合才可以
' οnclick="alert('1')">
DOM型xss-x
攻击过程
和上一关一样,输入payload没有用,查看看源代码也是需要闭合
' οnclick="alert('xss')">
xss盲打
攻击过程
在第一个框输入payload,第二个随便输入,提交
提交之后发现没反应,看一下提示,方式需要进入后台
再次查看提示得到用户名和密码
登录后发现我们的提交信息
在xssaq平台可以看到后台用户登录的cookie
xss过滤
攻击过程
插入payload之后没有反应
发现我们的语句被过滤了,那我们将语句进行部分大写,得到弹窗
xss之htmlspecialchars
攻击过程
插入payload,发现时存储型
查看源代码发现被a标签编码了
将<a>标签过滤掉,使用下面语句
#'οnmοuseοver='alert(1)'>
xss之href输出
攻击过程
插入payload没有反应
查看源代码发现<a>标签无法通过闭合来绕过
这样的话只能使用JS协议来构造payload
javascript:alert(1)
这样可以将语句按照JavaScript解析
xss之js输出
攻击过程
插入payload没有反应
查看源代码发现是闭合问题,需要加一个script标签进行闭合
进行闭合
'</script><script>alert(1)</script>
得到弹窗