XSS练习平台【XSS Challenges】
每个标题有超链的都是可以直接点击去做那一关,这样就用每次都从第一关开始做了。想做哪关做哪关。
以下来自XSS练习平台----XSS Challenges
这个练习平台没有像alert(1)to win类似的平台一样会给出关键的源代码,并且会在页面给予反馈。这是一个模仿真实xss挖洞的情景,在XSS Challenges练习过程中,我们需要用浏览器中的f12中搜索(),找出我们控制的代码所在的位置,然后思考那些个位置哪个或哪几个位置可以被注入我们想要的代码,然后结合上下文进行各种脑洞绕过。
在chorme中做题会被防火墙检测为危险代码,解决方案
在chrome中搜索,在f12中的的Element中用Ctrl+Shift+f调出搜索框,可以搜索这个页面用到的所有文本资源的字符串,也可以在Source中先在左边选中对应的文件夹后,用Ctrl+f调出搜索框搜索当前文件字符串
在firefox的话,我用了firebug,直接选中HTML或CSS或脚本,然后在右上方搜索框搜索即可(选择脚本搜的最全)。
在IE的话,先选择调试程序,然后在右上方搜索框搜索即可。
(暂时知道那么多,还有什么补充的以后再更)
一般思路是测试,看哪些写法或字符被过滤了(单引号,双引号,尖括号,正反斜杠等等),然后构造攻击代码,另外一种方式就是去resources 中,去查看脚本,是哪个脚本执行了什么操作,让变量进入了标签,了解清楚了之后,可以对症下药的创造攻击向量。
闭合标签,只是JS伪协议(javascript:url),
含有JS伪协议的a标签,script代码,
事件(alert,onclick,onmouseover等等),
双写,编码绕过 base64编码eval() atob()函数,
html实体编码
unicode编码某个字符或者插入不可见字符	[是unicode编码后的tab],空格绕过(单词之中加空格),
16进制绕过(ascii码对应的16进制)
1|0Stage #1
很简单,没有任何过滤,输出点在标签之间,闭合标签,构造新标签搞定。
参考payload:
2|0Stage #2
参考payload:
3|0Stage #3
第一个被转义了,用第二个参数
参考payload:
4|0Stage #4
抓包尝试发现p1 p2都被过滤了 p3是隐藏的标签没被过滤
参考payload:
5|0Stage #5
长度限制 抓包解决
参考payload:
6|0Stage #6
与Stage#2几乎一样,也是value参数,唯一不同的是过滤了<>,但没有过滤"(可以闭合前面的属性),这样我们就不可以用新的标签了,但我们可以在标签里面加新的属性,如 " οnmοuseοver=alert(document.domain) name="1类似这样的,onmouseover是把鼠标放在上面就执行的on时间,onclick之类的也是可以的。
参考payload:
7|0Stage #7
和上一题很像,这个题把双引号<>都过滤了
参考payload:
但是从网上找到的却说是用的空格分割,也算误打误撞吧,
但是上面的payload只要加的双引号中间有空格隔开或者不让其紧挨着出现就可以成功,比如dada" onmouseover=alert(document.domain) " " "
。后来看了别人的WP才学习到了,并不是转以后的双引号起了分隔作用,而是双引号后面的空格,空格也可以分隔属性(记住要在空格前面随便加点什么,否则bp提包的时候会自动将空格省略)
8|0Stage #8
题目是输入一条url,然后后台把它包在一个标签里,我们需要点击超链接然后弹窗。所以可以用js伪协议
参考payload:
9|0Stage #9
这一关是利用utf-7编码的,需要环境是IE 7
我用了ie复现也是不能成功,留下个payload吧。
参考payload:
1.用可以识别UTF-7的IE浏览器
2.把抓包内容改成p1=1%2bACI- οnmοuseοver=%2bACI-alert(document.domain)%2bADsAIg- x=%2bACI-&charset=UTF-7
意思是我们提交UTF-7编码的py上去,然后浏览器UTF-7解码出利用py~~(我觉得出题者简直闲的蛋疼,不说现在没有利用utf-7的ie了,哪有什么网页的后台是只能解码utf-7的)
10|0Stage #10
这个也是value注入点,直接在网页提交发现,题目把domain过滤掉了,所以用可以用双写绕过.
查看源代码,老是不小心看到提示:
发现过滤了不少东西,
1,script会被替换为xscript
2,on事件会被替换为onxxx
3,style会被替换为stxxx
尝试用tab制表(%09),换行(%0a,%0d,%0a%0d)等符号都不行。
参考payload:
11|0Stage #11
也是value注入点,在网页中各种提交姿势试一下,发现script前面加个x,on事件全部不能用(题后看hint也证实了我的猜想)
想到除了on事件和script之外还能执行js的是构造a标签在超链中执行js。
构造"><a href=javascript:alert(document)>1</a><
,发现构造的语句中仍然有script,我们把之中的r进行html实体一下
提交之后f12看下:
发现被渲染成r了,成功弹窗。
(还可以在script中间插入	
,
,空格等不可见字符对script进行分割,让正则匹配不到)
参考payload:
但是用url编码编码r即"><a href=javasc%72ipt:alert(document)>1</a><"
查看后发现没有被渲染,但是弹窗,不知道为何。
12|0Stage #12(IE)
利用IE特性`会呗当成单引号
照常尝试,还是value值,过滤了<>和",想用编码能不能绕过(因为过滤了<>",HTML实体是不行的,html实体不能让内容逃出来)
查看提示:
把\x00-\x20的字符与及<,>,",'都替换为空。
想着还有什么能够替换空格呢?用 的话还是会没办法跳处value属性。
看了一下sherlock17 大佬的wp,发现了竟然还有一个符号,学到东西了。但是得在IE下才可以。
由于IE的特性,或者说浏览器竞争时代百家争鸣导致的结果,会把`解析为引号。
那么我们的payload可以是
在IE下成功弹框
参考payload:
IE
13|0Stage #13(IE)
条件IE7.0 6.0 因为expression语法只存在IE中
照常转义了<>和",F12发现相比以往的题这道题多了一个style
属性,那肯定就是从这里入手了。百度style XSS,搜到一个知识点叫“行内样式的动态特性”(就是在ie下能在css中执行js代码)
还有一种利用方法 background:url(javascript:alert('xss'));
14|0Stage #14(IE)
还是考的style的东西,但这次增加了过滤。可以用CSS注释/**/
插入单词间,或html实体编码,但是&被转义了 。
把url,script,eval,expression关键字都替换为了xxx。
解法就是寻找黑名单之外的关键字,但是我们发现其实我们可以直接用上面的那个payload:
15|0Stage #15
<> " &被转义了 \被过滤了,所以不能构造html实体,和unicode编码了,但是输入\\
发现只过滤了一个,所以就用unicode编码了,(就是\\003c
和\\003e
代替<>换成十六进制编码也就是\\x3c
,\\x3e
也是可以的)
参考payload:
unicode解码:https://tool.chinaz.com/tools/unicode.aspx
16|0Stage #16
提示说
把\\x
替换成了\\\\x
,但是js编码又不止16进制,还有八进制,unicode编码
看到又有document.write,试了试上题的利用代码,直接过了......看了下hint,发现是替换了\x,那与上题唯一的区别就是十六进制编码不能用了。ps:还有一种编码格式是八进制编码?和unicode编码
参考payload:
17|0Stage #17(IE 6)
题目说了只能在老ie上复现,那我们就直接看大佬WP好了。
类似于sql注入的宽字节注入,用%A7(%几都行,只要符合下面大佬WP中可以用来欺骗的编码)加上双引号的%34?让html自解码机制误认为这是宽字节字符,从而弄掉双引号。
半角片假名使用两个字节来表示:0x8E + 0xA1-0xDF
JIS X 0208字元使用两个字节来表示:0xA1-0xFE + 0xA1-0xFE
JIS X 0212字元使用三个字节来表示:0x8F + 0xA1-0xFE + 0xA1-0xFE
以上是百度找的,因为没有环境,所以没测试
18|0Stage #18(IE 6)
看了一下别人的wp,17 18两关都是考的字符集的问题,且复现有浏览器要求需要在IE 6上复现。
__EOF__

本文链接:https://www.cnblogs.com/forforever/p/13195721.html
关于博主:喜欢读书、旅行、爬山。评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】