首页 > 编程语言 >CTFHUB-web-信息泄露-PHPINFO

CTFHUB-web-信息泄露-PHPINFO

时间:2024-02-27 20:22:36浏览次数:29  
标签:web 函数 文件 CTFHUB PHPINFO autoload url allow php

开启题目

image.png
访问
image.png
image.png
只有这一个页面,看一下flag在没在页面里

信息发现:

https://www.cnblogs.com/Cl0ud/p/15999347.html
系统版本信息
image.png
配置文件位置
image.png

  • allow_url_fopen & allow_url_include

文件包含必看选项之一,如果allow_url_fopen和allow_url_include都为On的时候,则文件包含函数是可以加载远程文件的,可以利用远程文件包含漏洞直接执行任意命令。
攻击者在自己的web服务器上放一个可执行的恶意文件,通过目标网站存在的远程文件包含漏洞来加载文件,从而实现执行任意命令的目的
image.png

  • disable_functions
    命令执行,代码执行必看选项之一。该指令可用于禁止某些函数,接收逗号分隔的函数名列表作为参数,通过bypass目标站点的disable_functions达成RCE

image.png
找到flag
image.png
提交一下
image.png

浅谈ctf中phpinfo需要关注的点

来源:https://xz.aliyun.com/t/6131

首先我们先谈谈
php各个版本的的差异

php5.2以前

  • __autoload()加载类文件,但只能调用一次这个函数,所以可以用spl_autoload_register()加载类关于 **autoload()函数,如果定义了该函数,该代码就会被调用
    关于spl_autoload_register()函数:注册给定的函数作为 **autoload 的实现
    当出现未定义的类时,标准PHP库会按照注册的倒序逐个调用被注册的__autoload()函数

php5.2

  • 增加了json_encode(),json_decode()等,关于json的函数。

php5.3

  • 删除了Register Globals,
  • 新增了glob://phar://流包装
    glob用来列目录,绕过open_baedir
    phar在文件包含中可以用来绕过一些后缀的限制
  • 新的全局变量DIR
  • 默认开启,5.4也可用 //起止标签
  • 增加了魔术方法 invoke()、callStatic():invoke():当尝试以调用函数的方式调用一个对象时,invoke() 方法会被自动调用。
    callStatic():在静态上下文中调用一个不可访问方法时,callStatic() 会被调用。
    具体查看:php魔术方法
    • 三元操作符简写:可以省略第二部分,默认用第一部分代替
      旧 echo $a?$a:’hello world’;
      新 echo $a?:’hello world’;

关于一些封装协议可以参考:浅析php文件包含及其getshell的姿势

php5.4

php5.5

  • 废除preg_replace的/e模式(不是移除)
    当使用被弃用的 /e 修饰符时, 这个函数会转义一些字符(即:'、"、 和 NULL) 然后进行后向引用替换。
    http://php.net/manual/zh/function.preg-replace.php
  • 不再支持Windows XP

php5.6

php7.0

1、十六进制字符串不再是认为是数字
2、移除asp和script php标签

<% %>
<%= %>
<script language="php"></script>

3、在后面的版本中assert变成语言结构,这将意味着很多一句话不能使用。
目前经过测试,可使用的有。

call_user_func('assert', 'phpinfo();');

php7.1

http://php.net/manual/zh/migration71.new-features.php

  • 废除mb_ereg_replace()和mb_eregi_replace()的Eval选项

php7.2

  • php 7.2大都是底层的更新,提高性能。没有太大常用语法层面的更新,这里就略过了

php7.3

  • 添加了 array_key_first() 和 array_key_last() 来获取数组的第一个和最后一个元素的键名
  • json_decode 添加了一个常量, JSON_THROW_ON_ERROR, 如果解析失败可以抛出异常, 而不是通过之前的方法 json_last_error() 去获取

接下来我们开始谈正事ctfphpinfo中需要注意的点
system info 详细的操作系统信息 确定window or linux
Registered PHP Streams and filters 注册的php过滤器和流协议
extension_dir php扩展的路径
short_open_tag 形式
disable_function 禁用函数
open_basedir 将用户可操作的文件限制在某目录下
SERVER_ADDR 真实ip
DOCUMENT_ROOT web根目录
_FILES["file"] 可以获取临时文件名字和路径
session 可以查看session的相关配置
gopher 可以实现ssrf攻击
fastcgi 查看是否开启fastcgi和fastcgi的版本,可能导致解析漏洞、远程命令执行、任意文件读取等问题
allow_url_include和allow_url_fopen,都可以远程包含文件
extension_dir php扩展的路径
asp_tags 开启后,才可以对asp标签进行解析
magic_quotes_gpc 对字符进行转义类似addslashes()
open_basedir 将用户可操作的文件限制在某目录下,可以绕过
libxml 2.9以前的版本默认支持并开启了外部实体的引用,会导致XXE
opcache 当开启了opcache并可以上传文件时,可以在本地生成一个与服务器文件名相同的文件,并生成缓存文件xx.php.bin。上传后恶意缓存文件会将服务器上的原文件覆盖,从而getshell。
imap CVE-2018-19518
session 可以看session的存储路径,session包含可以用到
upload_tmp_dir 可以查看临时文件存放的文件夹,但是文件名是随机的
参考:php各个版本的姿态
phpinfo中值得注意的信息

标签:web,函数,文件,CTFHUB,PHPINFO,autoload,url,allow,php
From: https://www.cnblogs.com/dwh02/p/18037864

相关文章

  • 纯手撸web框架
    纯手撸web框架(1)纯手撸#encoding:utf8#author:heart#blog_url:https://www.cnblogs.com/ssrheart/#time:2024/2/26importsocketserver=socket.socket()server.bind(('127.0.0.1',8080))server.listen(5)whileTrue:conn,addr=server.a......
  • 【soap】idea生成WebServices接口
    目录1.创建接口2.生成wsdl文件3.在soapUI中,生成6个文件4.将生成的文件拷贝到工程中5.在service-config中注册服务1.创建接口新建一个webServices工程,按照接口规范生成接口、请求类、响应类。注意:(请求响应的实体中添加基本属性及get/set方法、满参构造、空参构造)//此接口与下方......
  • ssts-hospital-web-master项目实战记录二十六:项目迁移-Hook实现(usCountdown)
    记录时间:2024-02-27记录时间:2024-02-26一、useCountdown模块实现hooks/useCountdown.tsimport{ref,onUnmounted}from'vue'exportfunctionuseCountdown(initialSeconds:number){ constcounter=ref(initialSeconds) letinterval:ReturnType<typeof......
  • 【内容管理及平台建设】上海道宁为您提供全媒体信息管理平台——WebFuture
     在数字化、智能化的浪潮下我们的生活和工作方式正在经历前所未有的变革  动易软件是综合性软件平台更是一种全新的生活和工作方式为客户提供互联网内容管理移动互联网内容管理全媒体内容管理的平台建设及技术服务  PART01:开发商......
  • PC端web通过自定义协议唤起应用
    写注册表调用WindowsRegistryEditorVersion5.00[HKEY_CURRENT_USER\Software\Classes\test]@="URL:TestProtocol"[HKEY_CURRENT_USER\Software\Classes\test\shell][HKEY_CURRENT_USER\Software\Classes\test\shell\open][HKEY_CURRENT_USER\......
  • C#程序全局异常处理—WPF和Web API两种模式
    C#程序的全局异常处理,网上搜下资料都是一大堆,我这里最近也是独立做一个B/S结构的小项目,后面又增加了需求用WPF实现相同的功能,这里将我所使用的全局异常处理方式做一个简短的总结分享。WebAPI项目的全局异常处理这种项目下,我们可以直接自定义一个全局异常的过滤器,用来处理全局......
  • Taurus.MVC WebMVC 入门开发教程3:数据绑定Model
    前言:在这篇Taurus.MVCWebMVC入门开发教程的第三篇文章中,我们将重点介绍如何进行数据绑定操作,还会学习如何使用${属性名称} CMS语法来绑定页面上的元素与Model中的属性。步骤1:创建Model首先,我们需要创建一个Model类来存储数据。在VisualStudio中,右键单击项目文......
  • 《安富莱嵌入式周报》第333期:F35战斗机软件使用编程语言占比,开源10V基准电源,不断电运
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1y1421f7ip目录:1、F35战斗机软件使用编程语言占比2、开源10V基准电源,不断电运行一年,误差小于1uV3、资讯(1)苹果开源配置语言Pkl......
  • WebApi项目初始结构简介
    1、launchSettings.json项目的配置文件,包括项目名称、端口号等信息2、依赖项存放项目所需要的一些依赖,例如log3、Controller控制器,可以理解为所有与逻辑相关的东西都在控制器里书写4、配置文件5、程序入口......
  • Web自动化实战:Excel测试用例封装
    1.安装依赖pipinstallpytest-xlsx收集xlsx文件解析内容,识别测试用例将测试用例交给pytest框架参考文档:https://mp.weixin.qq.com/s/iD_KWamziFrTnDt8qpuWWA2.创建excel文件2.1基本例子注意点:文件名称:test_开头文件内容:必须有标记列插件在运行时,会解析【标记】这一......