cve版签到wp

GKCTF之cve版签到wp

昨天最近一打比赛就是签到,内心极度崩溃,可能是忘的太了,所以尽可能写的详细下,供以后参考学习。

如有不足,还请诸位师傅帮忙指正,不胜感激。

PS:感谢各位师傅的wp,使我这个菜鸡又学到了不少(如果可能解释你们wp为什么这么写就好,有时候小白真的不懂)

过来复现的时候题目已经出现了Hint,发现给的是一个CVE,所以问下度娘先。

image.png

度娘说:

image.png

接着我们可以看到,这是漏洞的形成来自于’get_headers()‘函数,可以造成信息泄露

image.png

接着我们搜索下这个函数是怎么利用的

image.png

 

通过上图,我们可以知道我们可以通过get方式传参,在目标要跳转到地址中使用 本地加%00截断 的格式如:

?url=http://www.xmoct.cn                          //目标想去的站点
localhost\0                         //我们插入的截断语句
?url=                                                    //最终构成的语句

当我们的语句是通过get_header()函数接收时,就会造成被\0截断,而之后的部分不再读取,也就是图片中所介绍的get_headers()期望参数1为有效路径

?url=                                         //目标服务器所解析的语句

即然我们已经知道了这个CVE怎么用了,那我们就赶紧去试试吧,打开题目,可以看到如下界面

image.png

可以看到下面说目标请求中必须带有.ctfhub.com的字样,这正好满足之前所获取到利用条件,所以构造语句

?url=http://localhost\0.ctfhub.com                           //我们初次构造的语句

image.png

呀!!!发现出错了,目标没有回显,这。。这,没事不能用完全在意料之中

#学过计算机基础的应该了解有些情况下 localhost 是等同于127.0.0.1的,所以
?url=http://127.0.0.1\0.ctfhub.com                        //再次构造

image.png

(⊙﹏⊙),又不行,这也太》》》不过没事,本人还有招:通过观察我们可以看到\0这里也是可以修改的,召唤度娘

image.png

这里我们可以知道\0是被当作数据被提交了,所以无法作出截断效果,但是我们还知道

\0还可以用%00表示,所以再次构造
 /?url=                 //再错了就没招了

image.png

aha,终于出来了,差点以为又扑街(lll¬ω¬),然后通过观察回显发现

[4] => Tips: Host must be end with '123'              //[4] =>技巧:主机必须以“ 123”结尾

所以我们在原有的基础上再次构造

?url=http://127.0.0.123%00.ctfhub.com                 //flag我来了

image.png

此时我们就拿到flag了

[4] => FLAG: flag{9060e62f-94a2-4bd6-96d1-17d2009ab8d0}

收工,回去吃早点O(∩_∩)O

posted @ 2020-06-08 11:23  MTcx  阅读(216)  评论(0编辑  收藏  举报