上传文件
题目提示 让上传一个文件 和post请求基本是一样的 不同的点是它不需要302跳转
打开页面是一片空白 用file读一下源码
还是curl函数 再读一下flag.php 出来了东西
有一个上传的东西 但是没有提交 我们可以直接在浏览器里添加提交按钮
这么做是因为<input type="submit">
因为submit是提交按钮并且可以发送表单 也就是说 有了这个东西 我们上传的文件才能上传成功
接下来就可以随便上传一个文件然后抓包 将抓到的包进行url编码 这里需要进行三次编码
因为
gopher://IP:port/_TCP/IP数据流 这是gopher的基本结构
第一次编码需要把%0A换成%0D%0A 第二和第三次则是直接编码
在抓一个普通包 利用gopher协议来找flag
得到flag ctfhub{275c970527fa819c1e728a8e}
URL Bypass
题目提示
让我们用url的一些特殊地方来绕过
通过扫描 扫到了flag.php
访问一下 结果没得到flag
他显示要用127.0.0.1进行访问
所以我们就要构造payload 既要包含http://notfound.ctfhub.com 还要有127.0.0.1/flag.php
我首先想到的就是绕过 把前面的http://notfound.ctfhub.com饶过 让他进入127.0.0.1/flag.php
这里利用的是解析url的规则问题 类似于url重定向绕过
所以这里构造的payload是 ?url= http://notfound.ctfhub.com@127.0.0.1/flag.php
这个的意思和?url=127.0.0.1/flag.php是一样的 相当于用@绕过
这里推荐一篇大佬的博客
SSRF学习(8)URL Bypass_m0_64417923的博客-CSDN博客
我没太理解他的意思 但是我把它当作类似url重定向的绕过 类似的还有ssrf绕过 这种的会让我容易理解
最后得到了flag
数字IP Bypass
题目提示
给了好多限制条件 数字ip的绕过
关于数字ip的绕过 几种方法
1、更改IP地址写法
2、利用解析URL所出现的问题
3、利用302跳转
4、通过各种非HTTP协议
5、DNS Rebinding
这道题利用的应该是更改ip地址写法
把127.0.0.1这个10进制换成8进制 16进制这种的
十六进制 = 0x7F000001
也可以把127.0.0.1换成localhost 都是本地的意思
302跳转 Bypass
绕过ip的检测 访问flag.php
先看一下源码 用file协议访问var/www/html/index.php
发现它过滤了这些 但是没有过滤localhost
那么直接访问 ?url=localhost/flag.php
或者把ip转换成10进制
用localhost
其他的 用16进制或者2进制都不能绕过
DNS重绑定 Bypass
题目提示
先来了解一下dns重绑定
我的理解就是 我们要访问的127.0.01这个域名 但是用302重定向 去访问A就相当于访问了127.0.0.1 就是用A去访问127.0.0.1(A相当于另外一个域名)
DNS重绑定并没有违反同源策略,相当于是钻了同源策略,同域名同端口访问的空子
rbndr.us dns rebinding service这是302重定向的网站
最后用这个ip找到了flag
?url=7f000001.7f000002.rbndr.us/flag.php
这块没太弄懂 会与其他的ssrf漏洞内容重新写一下 在CTFHUB WEB SSRF(下)中见