GKCTF2020 - Web(cve版签到)

[GKCTF2020]cve版签到

考点:cve-2020-7066与漏洞的利用。

漏洞原理:

在低于7.2.29的PHP版本7.2.x,低于7.3.16的7.3.x和低于7.4.4的7.4.x中,将get_headers()与用户提供的URL一起使用时,如果URL包含零(\ 0)字符,则URL将被静默地截断。这可能会导致某些软件对get_headers()的目标做出错误的假设,并可能将某些信息发送到错误的服务器。

get_headers()返回一个数组,其中包含服务器响应HTTP请求而发送的标头。示例:

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>

输出结果:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

题目中,f12可以看到:
在这里插入图片描述
flag在本地,也就是127.0.0.1。

再通过%00进行截断,因为要以.ctfhub.com结尾:
在这里插入图片描述

得到:
在这里插入图片描述
end with 123:
所以构造:

?url=http://127.0.0.123%00.ctfhub.com

获得flag。

总结:SSRF与CVE的结合,%00截断。

猜你喜欢

转载自blog.csdn.net/qq_45742511/article/details/114871984