xss-labs-master通关记录(1-10)
发布时间:2026/6/6 12:56:10
分类:文化教育
浏览:1234
)
XSS概述xss跨站脚本攻击本质是把用户的输入当作代码执行拼接恶意的HTML代码主要是js常用的js调用方式包括标签法伪协议法和事件法1.标签法scriptalert(1)script2.伪协议法a hrefjavascript:alert(1)test/a其中hrefjavascript:xxx是伪协议作用是不跳转页面直接执行后面的JS代码3.事件法 onfocusalert(1) // onerroralert(1) //靶场通关记录level1猜测test为payload直接进行尝试payload?namescriptalert(1)/script通过level2test为文本框输入的内容尝试onfocus关键词。查看网页源码发现为双引号闭合构建payload onfocusalert(1) //输入后没反应但再次点击输入框时弹出通关。。。。。了吗发现小问题这个弹窗一直弹考虑能不能改进一下尝试采用标签法/scriptalert(1)/script #双引号和/用于源码闭合通关并只弹一次解决level3查看网页源码因为xss的特性根据源码构建payload是合理步骤尝试出入123发现出现位置。于是采用和第二关相同的payload试一下结果并未通关查看源码发现未能进行字符串逃逸注意到输入的颜色与原本的符号不同怀疑进行了转译操作查看网页URL后的GET传参为level3.php?keyword%2Fscriptalert%281%29%2Fscriptsubmit搜索有点懵逼尝试几番后准备观摩一下其他大佬的解题思路发现我们的level3好像不一样其他的level3好像是单引号闭合我怎么直接是双引号。没事多尝试一下万一能力大转飞呢我也试试单引号。果然被转译了但是最后貌似出现了一个单引号是否意味着单引号没有被转译尝试构造存在单引号但不存在和/的payload onfocusalert(1) //通关但是怎么让它停止弹窗呢有没有更好的办法呢成功构造payload onfocusalert(1);this.blur() //blur让输入框失去焦点。想要只弹一次就添加语句 this.blur()level4用第三关的payload试一下 οnfοcusalert(1);this.blur() //看来又被转译了不过不太清楚哪些字符被转译了继续尝试payload/scriptalert(1)/script发现”/都被过滤了尝试/scriptalert(1)/script发现尖括号被过滤了没有尖括号的只有事件法而且源码是用双引号闭合的感觉思路有点不对构造payload onfocusalert(1);this.blur() //发现成功闭合value并添加onfocus成功通关发现最后的“和//并没生效优化payload后 onfocusalert(1);this.blur()依然能通关level5查看源码依旧双引号闭合用第四关的payload οnfοcusalert(1);this.blur() // 继续尝试发现onfocus关键词被修改了猜测该关卡对一些敏感输入进行了处理但双引号成功闭合了尝试后发现script也被过滤了改大小写也不好使好想让我用标签法啊不得不试试标签法 a hrefjavascript:alert(1)test/a点击test成功通关level6双引号闭合用第五关的payload a hrefjavascript:alert(1)test/a尝试发现href被过滤了而且后面的闭合貌似也有点问题怀疑是过滤了什么符号测试发现script和onfocus也被过滤了大小写尝试 Onfocusalert(1);this.blur() //成功过关看来没有检验大小写进一步测试发现payload a Hrefjavascript:alert(1)test/a /Scriptalert(1)/Script Onfocusalert(1);this.blur() //均可过关。该关卡单纯考大小写level7依旧双引号闭合继续尝试/scriptalert(1)/script好家伙script直接整个删掉了。改大小写也被过滤了尝试 οnfοcusalert(1);this.blur() //发现on被过滤了再尝试 a hrefjavascript:alert(1)test/a发现href被过滤了至此scriptonfocus和href均被过滤且大小写也失败了是否可以通过双写进行绕过怀疑检测到相关词汇就直接删除尝试构造双写payload/scrscriptiptalert(1)/scrscriptipt oonnfocusalert(1);this.blur() //均能直接过关但双写href的payload却无法成功 a hrhrefefjavascript:alert(1)test/a源码中显示为忘了这里也有个script双写绕过 a hrhrefefjavascrscriptipt:alert(1)test/a成功!level8有个链接点进去看看发现url变成了注入的内容。查看网页源码内容输入好像会写入网页的href标签中构造一个标签payload试试javascript:alert(1)尝试失败查看源码发现为好家伙quot是将引号进行了转译script关键词也被处理了。onherf也被添加了下划线进行了过滤。尝试后发现大小写也无法绕过。有点没招了。本题存在一个网站自带的href功能href这里肯定是突破口。但构建的闭合绕过语句均被过滤了会不会因为是href本身有什么特点是用于突破的呢查阅发现href可以解析html十六进制实体尝试构造相关字符编码#106;#97;#118;#97;#115;#99;#114;#105;#112;#116;:alert(1) #内容为javascript:aldrt(1)直接过关这里lz其实有个小疑问a hrefjavascript:alert(1)test/a和a href”javascript:alert(1)“test/a为什么会有同样的效果呢在网上查阅相关资料为在HTML中属性值通常使用双引号或单引号括起来也可以在不包含空格、等号或尖括号等特殊字符时省略引号level9好家伙我还什么都没做呢就默认我不合法了(╯▔皿▔)╯直接拿上一关的payload试试这哥们铁打不动难道是要另外构造href进行尝试加不出来看字符颜色怀疑符号被转译了把鼠标放”在您的链接不合法有没有上发现这居然直接就是一个网页链接裂开既然加不了是不是要对这个链接进行修改啊该链接为http://192.168.47.226/bachang/xss-labs-master/您的链接不合法有没有在上一关查阅href相关知识时发现href可以直接链接网址url提示也是链接不合法是否需要插入合法的网页链接呢直接拿劳模百度进行尝试https://www.baidu.com/依然不行怀疑是https的原因尝试一下http居然成功了瞬间思路打开应该是需要在注入内容中包含http然后将其注释掉的方式进行开始尝试。过程中发现需要包含的内容为http://构造相关payload#106;#97;#118;#97;#115;#99;#114;#105;#112;#116;:alert(1) //http://成功过关本关同上一关一样也对关键词进行了过滤level10GET传参改url。开始尝试。发现输啥都没反应。有点懵查看网页源码发现有三个输入参数 t_link,t_history,t_sort怀疑这三是突破口尝试。?keyword111t_link222t_history333t_sort444再查看源码果然有猫腻懂了keyword不是注入点t_sort才是尝试构造payload?keyword111t_sort1scriptalert(1)script好家伙居然还过滤了尖括号考虑用onfocus构造但又出现一个问题网页上没有输入框。于是要手动添加一个输入框好吧其实是网页把输入框隐藏了typehidden就是用于隐藏修改type类型即可。重构payload?keyword111t_sort1 onfocusalert(1);this.blur() typetext成功过关。