反射型xss(get)
get型Xss,在输入框输入<script>alert(1)</script>
发现限制了长度,试试在url上的message输入
发现成功弹窗
反射型xss(post)
post型Xss,post型,点击提示,发现要我登录
先登录看看,在输入框输入1试试,发现跟第一关一样的回显
直接抓包,发现了message=1
在这里输入<script>alert(1)</script>试试
存储型xss
发现留言板,直接在留言板输入<script>alert(1)</script>
成功评论并出现弹窗。
存储型就是存在了数据库了,每次访问都会触发,危害大
DOM型xss
DOM型说白了就是html树有关的前端漏洞
试试框框写入1,检测发现html代码变为
<a href="1">what do you see?</a>
这就是个超链接,就是点击下面的 what do you see?触发超链接
那么写入伪协议 javascript:alert(1)
点击 what do you see?,成功触发
DOM型xss-x
搜索框写入123,点击 请说出你的伤心往事
检测看看,发现没东西,点击 有些费尽心机想要忘记的事情,后来真的就忘掉了
<a href="123”onc1ick=-"domxss()">有些费尽心机想要忘记的事情,后来真的就忘掉了</a>
常规写入伪协议 javascript:alert(1),点击 请说出你的伤心往事,点击 有些费尽心机想要忘记的事情,后来真的就忘掉了
再点击 就让往事都随风,都随风吧,成功弹窗
xss之盲打
发现2个框框,点击提示,要我们登录后台看看,很明显,应该是写入留言后,后台管理员看到了就会触发
试试在2个框框写入<script>alert(1)</script>
我们按照右上角给的提示仿照管理员登录后台,发现弹窗成功触发
xss之过滤
框框,直接写入
<script>alert(1)</script>
发现 回显 别说这些'>'的话,不要怕,就是干!
前面的全没了???
写入<script>,发现 回显 别说这些'>'的话,不要怕,就是干!
应该是<script过滤了
试试伪造协议javascript:alert(1),emm,没反应
检测看看,发现是form表单,
试试闭合" οnclick=alert(1)//
没用,竟然过滤了script,那就尝试绕过
双写试试<scrscriptipt>alert(1)</scrscriptipt>
没用,大小写试试<scRIpt>alert(1)</scRIpT>
成功弹窗
xss之htmlspecialchars
框框,写入1,发现回显
你的输入已经被记录:
1
检测看看,是 <a href="1">1</a>
超链接,试试写入伪协议 javascript:alert(1)
点击下面超链接,成功弹窗
那么htmlspecialchars是什么呢??
百度一下,发现是 把一些符号变成了 html实体编码
具体可以看 : https://baike.baidu.com/item/htmlspecialchars/9713223?fr=aladdin
xss之href输出
emm,服了呀,这什么玩意,还是一样写入javascript:alert(1)
点击下面超链接,触发弹窗,。。。。。。
xss之js输出
框框,写入 1 ,发现没有回显
检测看看.emm,表单啊,写入<scRIpt>alert(1)</scRIpT>看看
emm,没反应,看下提示,叫我 输入tmac看看
输入tmac,发现出现一个图片
发现提示还说被动态写入js中
检测源代码,发现
<script>
$ms='';
if($ms.length != 0){
if($ms == 'tmac'){
$('#fromjs').text('tmac确实厉害,看那小眼神..')
}else {
// alert($ms);
$('#fromjs').text('无论如何不要放弃心中所爱..')
}
}
</script>
结合之前提示,tmac,可以发现框框输入的东西,就是 $ms
直接 构造payload输出看看
先 '; 闭合前面的 $ms=',使其变成 $ms='';
再写入 alert(1); ,然后加上 // 注释掉后面的 ' 组合起来就是
';alert(1);//
使得$ms='';
变成
$ms='';alert(1);//';
此时 $ms.length = 0
不会触发 if else 语句
整个函数就变了
<script>
alert(1);
</script>
成功弹窗