2018-05-09-xss

作者: 最初的美好_kai | 来源:发表于2018-05-13 22:40 被阅读9次

xss one:

图一

第一题观察了以后发现只有name这个参数可以进行输入,因此测试点只有可能在name这里,于是直接把hacker改成<script>alert(1)</script>就可以了。效果如下:

图二

xss two:

图三

发现<script>标签被过滤掉了,因为html和js不区分大小写,所以可以试试<script>标签的大小写来尝试问题,然后发现用<Script>alert(1)</sCript>可以解决问题。

图三

Xss Three:

图四

发现<script>标签完全被过滤掉了,而且大小写形式也过滤掉,于是反过来应用这个方法,添加标签为<scr<script>ipt>alert(1)</sc</script>ript>,当服务器把<script>标签提取出来时候,就可以直接添加<script>了,效果如图所示:

图五

XSS Four:

图五

这次使用<script>标签后没有给到任何输出格式,而是直接给了个error,这种无法看到输出样子的xss就没法直接用<script>标签了,于是改用<img>标签使用一下,我们用了name=<img>,发现不会报错,于是这个标签可以使用,接着用<img src="1" onerror="alert(1)">解析一下,这里的src是图片路径的属性,onerror是发生错误的时候触发什么动作,于是发现可以使用了。如图:

图六

XSS Five:

图七

这次我们发现onerror的标签中的alert()也被直接过滤掉了,因此需要使用别的方法,在javascript中有一个转换编码的函数调用String.fromCharCode(),这个函数直接从unicode编码转换回字符串,因此我们直接使用了该函数,括号里面的编码用alert(1)的unicode编码,构造如下所示的payload:

<img src=1 onerror="eval(String.fromCharCode(97,108,101,114,116,40,39,97,39,41))">

这里要注意的就是我们的函数要注意书写正确,我在试的时候发现string.fromcharcode是错误的。

XSS SIX:

图八

这道题查看了一下源代码,发现我们的hacker输入是放在<script>标签里面的,因此可以直接闭合掉前面碍人的<script>标签自己新建一个,然后进行处理,自己构造的payload如下所示:

想写个name=多少的式子结果发现简书居然不肯让我写这个标签。。。。上图吧

图九

源代码构造如下所示。。。。。

图十

XSS SEVEN:

这道题主要是用了html编码把<和>编码了,看源代码:

图十一

解决方法很简单,直接不用<script>标签了,用他的就好了,于是我构造payload如下图:

图十二

直接把他的单引号闭合了,然后把他的<script>标签用起来就好了。

XSS EIGHT:

这道题目<>被html编码了,如下:

图十三

本题的缺点出现在form的url这里,在url处并未进行过滤,因此可以从URL构造payload:/"<><script>alert(1)</script>,如图:

图十四 图十五

XSS NIGHT:

这是一道dom xss题目,只能在浏览器执行,而且firefox和chrome直接拦截了。实测ie可以

问题出现在document.write(location.hash.substring(1));该函数返回url中部分内容,因此直接构造payload:#<script>alert(1)</script>

图十六

相关文章

  • 2018-05-09-xss

    xss one: 第一题观察了以后发现只有name这个参数可以进行输入,因此测试点只有可能在name这里,于是直接...

网友评论

    本文标题:2018-05-09-xss

    本文链接:https://www.haomeiwen.com/subject/ipnnrftx.html