本文主要是介绍[陇剑杯 2021],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
[陇剑杯 2021]jwt(问1)
先认识一下jwt认证
发现题目GET /exec HTTP/1.1中有很明显的jwt特征点
token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwODYsIk1hcENsYWltcyI6eyJhdWQiOiJhZG1pbiIsInVzZXJuYW1lIjoiYWRtaW4ifX0.dJArtwXjas3_Cg9a3tr8COXF7DRsuX8UjmbC1nKf8fc
即:eyJ开头,所以认定为jwt认证
[陇剑杯 2021]jwt(问2)
找到执行成功的命令,将cookie直接解密
[陇剑杯 2021]jwt(问3)
直接搜索执行的命令POST /exec HTTP/1.1
然后查看返回的内容HTTP/1.1 200 OK (text/html)
其中有一个whoami命令
返回的权限为root
[陇剑杯 2021]jwt(问4)
发现写入了一些东西到一个文件里
解码出来,发现是恶意文件
所以上传的恶意文件为1.c
[陇剑杯 2021]jwt(问5)
有建立了一个文件,并且写了内容
base64解码,可知这里定义了looter.so的创建方式
接下来就是直接来到tmp目录,直接自动化编译
分析到这里,已经可以知道恶意so文件为looter.so
[陇剑杯 2021]jwt(问6)
因为是黑客攻击,所以请求为post,因为修改了配置文件, 所以在etc目录
http.request.method==“POST” &&http contains “etc”
所以绝对路径为/etc/pam.d/common-auth
[陇剑杯 2021]webshell(问1)
过滤http,发现一个登录账号密码
下一个包返回的是登录成功的提示
所以登录密码是Admin123!@#
[陇剑杯 2021]webshell(问2)
过滤分组字节流.log,结合一下
/var/www/html/data/Runtime/Logs/Home/21_08_07.log
[陇剑杯 2021]webshell(问3)
分组字节流,搜索whoami,然后找到返回200状态的数据
发现权限是www-data
[陇剑杯 2021]webshell(问4)
过滤http.request.method==“POST”
得到1.php
[陇剑杯 2021]webshell(问5)
通过aaa进行访问,找到相应的数据,
frpc代理
[陇剑杯 2021]webshell(问6)
[陇剑杯 2021]webshell(问7)
先过滤1.php,因为他是通过1.php进行登录的
一个一个翻找,查看追踪流
解码得到socks5的连接账号、密码
还有一种方法:查看连接1.php后,后面还有tcp连接,说明登录了socks5,向前翻找几个即可
[陇剑杯 2021]日志分析(问1)
查看日志发现大部分请求都是404,要求找到泄露的源码,那肯定是访问成功的部分
直接搜索200即可
www%2ezip,%2e就是.
所以泄露的源码文件名是www.zip
[陇剑杯 2021]日志分析(问2)
写入在tmp目录下,那直接搜索tmp
发现关键信息
直接解码一下
写入的文件为sess_car
[陇剑杯 2021]日志分析(问3)
全是get请求,说明在进行目录扫描
在众多的get请求中,有几个很长的请求就很可疑
直接解码
paths字段中的/flag和SplFileObject可能指的是一个特定的文件路径和使用的PHP类。
其中SplFileObject就是黑客使用的类
[陇剑杯 2021]简单日志分析(问1)
很显然,只有user在进行传参
[陇剑杯 2021]简单日志分析(问2)
将传的参数解码
得到绝对路径/Th4s_IS_VERY_Import_Fi1e
[陇剑杯 2021]简单日志分析(问3)
解码第三次上传的参数,就可以得到
[陇剑杯 2021]SQL注入(问1)
看见if,一眼丁真,布尔盲注
[陇剑杯 2021]SQL注入(问2)
往下拉,爆完库名,表名,字段名,肯定还要爆字段内容,所以可以根据select语句直接发现
[陇剑杯 2021]SQL注入(问3)
import re
import urllib.parsearr = []
with open(r"access.log", 'r') as f:pattern = r'sqli\.flag\),(\d+).+\'(.+)\''for i in f:m = re.search(pattern, i)if m:arr.append(m.group(1, 2))# print(m.group(1, 2))
for i in range(len(arr) - 1):if arr[i][0] != arr[i + 1][0]:if '%' in arr[i][1]:print(urllib.parse.unquote(arr[i][1]), end='')else:print(arr[i][1], end='')
[陇剑杯 2021]ios(问1)
直接过滤http
追踪流
[陇剑杯 2021]ios(问2)
直接搜索GitHub
得到项目名:Stowaway
[陇剑杯 2021]ios(问3)
根据上一题的内容搜索ios_agent
得到加密密钥的明文:hack4sec
[陇剑杯 2021]ios(问4)
从下面的内容得知为TLS会话
导入keylog.txt
过滤http2&&ip.dst==192.168.1.12
,得到sql注入数据
导出1.CSV
exp
import re
import urllib.parsearr = []
with open(r"1.CSV", 'r') as f:pattern = r'password,(\d+).+\"(.+)\"_'for i in f:m = re.search(pattern, urllib.parse.unquote(i))if m:arr.append(m.group(1, 2))# print(m.group(1, 2))
flag = []
for i in range(len(arr) - 1):if arr[i][0] != arr[i + 1][0]:flag.append(arr[i][1])
flag = ['0x' + i for i in flag]
flag = [chr(int(i, 16)) for i in flag]
print(''.join(flag))
[陇剑杯 2021]ios(问5)
端口扫描,扫到不开放的端口,目标主机会拒绝,并且返回一个RST 包,而不返回SYN-ACK 数据包,同时win置为0
tcp.flags.reset == 1&&tcp.flags.ack1&&tcp.window_size0
端口范围:10-499
[陇剑杯 2021]ios(问7)
从access.log得到访问的IP地址:172.28.0.2
从sql注入得到攻击的内网IP地址:192.168.1.12
[陇剑杯 2021]ios(问8)
在access.log中得到密码:fxxk
这篇关于[陇剑杯 2021]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!