XSS靶场

第一关

XSS靶场
利用语句进行弹窗测试就可以
<script>alert(1)</script>
XSS靶场

第二关

XSS靶场


可以发现本题依然是根据GET传参数,查看源代码XSS靶场
这是一个value进行输入,使用js恶意代码拼接


构造payload:"/><script>alert(2)</script>//
XSS靶场


xss秘籍第三式(绕函弹)


根据流程来:
一、查看页面,任然是GET型,都是GET型哪有什么区别呢,查看源代码查看
XSS靶场XSS靶场
仍然是value输入,但是这次是空的值,仍然进行js恶意代码输入


XSS靶场




没有弹窗,构造payload,还是没有反应
"/><img src=# one rror=alert(1)/>//


XSS靶场






为什么都用不了!!!
大概是后端使用了**htmlspecialchars**函数进行过滤,因此我们可以使用不带有尖括号的特殊字符进行尝试:
' onm ouseover='javascript:alert(1)


XSS靶场






XSS靶场


至于为什么要使用'这是因为
<input type='text' value=' &#039 onm ouseover=&#039 javascript:alert(1)'>
只有使用单引号,转换出来的&#039才有意义

xss秘籍第四式(构绕函弹)


XSS靶场






这是我们再拿第三关的payload进行尝试我们发现已经没有任何作用
XSS靶场




老样子查看一下源代码,我也没有发现什么。。。。看一下大佬们的解释
XSS靶场




让我们跟着思路走下去
构造payload:1、

2、 "onmouseover='alert(1)'


XSS靶场








这不就可以了嘛


xss秘籍第五关 (闭新java弹)




XSS靶场


是不是跟第四关差不多嘞,但是这可是第五关呐!!!啊这,肯定比第四关更难吧
问题不大,让我们先用第四关的方法进行尝试

XSS靶场


可以发现,这里闭合了on,尝试大小写绕过

XSS靶场还是仍然对on产生了绕过,尝试编码

XSS靶场
发现编码也不行…




既然都不行,就回到最处思考使用<>操作
构造payload:"/><a href="javascript:alert(1)"/>




![image.png](https://www.icode9.com/i/ll/?i=img_convert/4f5720544f8c59299d03732b872da826.png#align=left&display=inline&height=408&margin=[object Object]&name=image.png&originHeight=816&originWidth=1492&size=112763&status=done&style=none&width=746)


似乎什么也没有,又似乎发现了什么!!
似乎发现了被单独弥留下来的一个超链接版的xss代码,我们点击进行尝试,很不错,这个链接尽然弹出了xss代码


XSS靶场
XSS靶场




xss秘籍第六关(大小写)


还是先使用上一关的payload
XSS靶场










查看一下源代码XSS靶场






可见是过滤了href,在这里使用的是大小写进行过滤:
" /> <a Href="javascript:alert(1)"/>
XSS靶场


完成了
XSS靶场




xss秘籍第七关(重复写)



老方法,上一关payload进行尝试

XSS靶场




value什么也没有输出,可见是被过滤了,我们换个关键词试试
"/><img src='javascript:alert(1)'>//


XSS靶场






这应该是对关键词进行了过滤操作,也就不能使用SRC、herf等一些关键词出发xss的恶意js,是否可以使用不用到这些都标签构造payload。。
But…连script标签也被过滤的,这就让人很头大!!


那么现在需要考虑如何进行script绕过,就是我们需要解决的事情了,先尝试大小写
"/><Script>alert(xss)</Script>//<
XSS靶场




可见还是被过滤了
没关系,绕过的方式很多,再尝试重复进行尝试
"/><ScrscriptipT>alert("xss")</ScriscriptPT>//<
XSS靶场


哦豁,小心机


xss秘籍第八关(DOM)

XSS靶场




要添加友情链接,这一关很可能属于DOM型xss,因此需要根据友情链接进行恶意js构造
这样我们又回到了第五关了:javascript:alert(1)
XSS靶场
一个小知识点

![image.png](https://www.icode9.com/i/ll/?i=img_convert/e927b5f56f9f9f4996fd3513c87d009b.png#align=left&display=inline&height=421&margin=[object Object]&name=image.png&originHeight=841&originWidth=1364&size=166737&status=done&style=none&width=682)


javascript被过滤了,尝试绕过老样子:大小写、重复

XSS靶场








都不行,怎么呢,也不能替换,小问题XSS靶场
还可以对关键词进行编码,在这里我们使用16进制进行编码,至于其他编码方式也是可以的
javascrip&#x74:alert(1)
XSS靶场


这不就好了

xss秘籍第九关(代码审计)



XSS靶场




到了这一关就不仅仅是对源代码进行分析了,找到文件的php代码进行审计
XSS靶场


尝试进行弹窗"/><a href='javascript:alert(1)'/>


查看源文件并没有发现什么,这一关不知道为什么好卡!!应该是出了什么问题,去看一下大佬们的笔记
发现这是一个对https://字符的操作,不能出现https字样,只能是**http:// ** 这几个字符,不然就会返回链接不合法


因此构造payload时只需要出现http:// 的字样,并且在尝试过程中,对script进行了过滤,所以我么根据上一关的经验去构造
javascrip&#x74:alert(1)//http://www.san.com


XSS靶场


这样就成功了,至于后面的链接,随意根据格式写就可以

xss秘籍第十关(改类型)

XSS靶场

可能有隐藏的表单,尝试提交t_link、t_history、t_sort变量,t_sort变量返回在了html的value中,但是过滤了尖括号
也就是存在get参数又隐藏框,经尝试t_sort存在

XSS靶场
而剩下的两个参数则不存在
XSS靶场
type是为了让页面展现出一个输入框,一点击就会弹出alert
构造payload:123&t_sort="type="text" onclick="alert(1)(输入的文本都无法显示,这里只能改变一下keyword的类型,type=text)
XSS靶场

今天就到这里了

总结

下面两个链接是发现的一些绕过姿势
绕过总结
绕过总结






上一篇:ubuntu 12.04内核升级到3.13.1


下一篇:如何从servlet中获取客户端ip并转换ip为long值