公开课基础演练靶场 第四章 cookie伪造目标权限详细解题思路

猪骑士   ·   发表于 2018-09-04 17:26:41   ·   CTF&WP专版

       话不多说,进入传送门。

       又又又又看到了那个熟悉的页面......我所拥有的唯一信息是这个网页是可以进行存储型xss攻击的。存储型xss,就是能够在页面中写入一些恶意代码,并且存储在页面html代码中。因此我看到留言反馈这个模块,就明白了应该是在这些文本框中写入代码去实现xss攻击,如下图。


       首先,我在每一个文本框中都写入了不同的数字。这是为啥呢?因为这个页面的左上角可以查看留言,那么就意味着我提交的留言一会可以被查看。这样我就可以清晰地看到每个文本框对页面的影响,如下图。


       提交之后,页面自动跳转到了查看留言模块。此时我发现,在该模块下,我填写的内容只有主题反馈内容(内容)留言者(联系人)被显示了出来,也就是说,只有这三个文本框是能够出现在html代码中的,因此,如果能够xss攻击,那么肯定也是在这三个之中,如下图。


       我查看了代码,确实只有主题,反馈内容(内容),留言者(联系人)能够出现在html代码中,如下图。


       然后,我回到了留言页面。在这三个文本框中用script标签写入了--alert("12345,上山打老虎");的js代码。为了防止该页面会检测文本框是否为空,我在其余文本框中写入了1。如果这个页面能够被xss攻击,那么我提交之后一定会出现弹框,如下图。


       提交之后,确实弹框了,这就说明我插入的代码确实有一些被当作代码执行了。因此再看看到底是几个弹框,如下图。


       只出现了一个弹框,这就说明这三个文本框中,只有一个文本框的内容被当作代码执行了。再看图中,反馈内容中原封不动的输出了我写入的代码,那么可以判定这个文本框一定是将一些关键字符如“<”,“>”转义成了对应的如“&lt;”,“&gt;”,这就导致这行代码被当做了普通字符串输出。因此反馈内容文本框被排除,如下图。


       这时,我再审查页面代码。发现主题中写入的这行js代码的script标签是紫色的,这就说明它没有被当做字符串,而是被当做了一行真正的代码,因此刚才出现的弹框就是它导致的。再看看反馈内容,确实,它里面写入的代码全是黑色的(有些浏览器会真的把“<”显示成转义后的“&lt;”,把“>”显示成转义后的“&gt;”),这就说明它被当成了字符串去处理也就是这个文本框被做了转义处理。再看看留言者,它竟然是空的,明明写入了代码,怎么就变成空的了呢?会不会是因为限制了字符串长度?如下图。


       于是,我去做了个测试。发现确实如此,留言者中的字符上限是20个,也就是说21个就不显示了,如下图。


       我还是想知道留言者(联系人)文本框中写入代码会不会被转义,于是我写入了一个线条标签<hr>,如下图。


       结果显示,这个留言者文本框和主题文本框一样,不会被转义。那是不是意味着它也可以进行xss攻击呢?我们可以算一下,一个script标签加上src就已经20个字符了,就算用a标签或者img标签代替script,那也实在是非常勉强,所以我果断放弃了这个文本框,如下图。


       这样,目标已经确定--主题文本框。接下去我来到了xss平台,点击创建项目,如下图。


       填入项目名称和项目描述,点击下一步,如下图。


       勾选默认模块xss.js模块,点击下一步。


       将跳转后的页面拉到最下面。复制这几行中的一行js代码,并点击项目内容,如下图。


       然后去主题中粘贴这行代码(其实我是手打的哈哈哈,直接复制的话搞不好会出问题,还是谨慎一点好),补全信息就可以提交啦!


       然后我又查看了页面代码,发现我写入的这行js代码确实被当成了真正的代码而不是字符串,如下图。


       这时,我回到xss平台。在项目内容中看到了几个请求头。这几个请求头就是那个机器人管理员在查看留言板的时候,请求留言板页面时,所发送的请求包的请求头了。逐一点开之后,我在其中一个请求头中看到了cookie里面藏着的key--zkz{xsser-g00d},如下图。



       填入flag即可,到此结束!


打赏我,让我更有动力~

0 条回复   |  直到 2018-9-4 | 1251 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.