
第八届西湖论剑网络安全技能大赛部分wp

DS
题目名称 easydatalog
题面信息如下: 请你对附件中的日志文件进行分析,找出“张三”的身份证号和手机号,譬如其身份证号是119795199308186673,手机号是73628276413,则提交的flag为“119795199308186673_73628276413”。
题目附件给了 access.log 和 error.log 两个日志文件。我们观察error.log,有大量webshell数据:有压缩包和jpg图片。
但是,jpg图片上多个数据链:
import re
def extract_jpg_data(log_file):
with open(log_file, 'r') as f:
content = f.read()
lines = content.split('\n')
hex_data = []
for line in lines:
# 跳过包含readbytes或bytes的行
if 'readbytes' in line or 'bytes' in line:
continue
# 如果行包含dumpio_in或dumpio_out
if 'dumpio_in' in line or 'dumpio_out' in line:
# 提取冒号后的内容
parts = line.split('dumpio_in (data-HEAP): ', maxsplit=1)
if len(parts) > 1:
data = parts[1].strip()
else:
parts = line.split('dumpio_out (data-HEAP): ', maxsplit=1)
if len(parts) > 1:
data = parts[1].strip()
else:
continue
hex_data.append(data)
data = ''.join(hex_data)
# 查找jpg数据(从FFD8到FFD9)
jpg_pattern = r'FFD8FFE0.*?00FFD9'
jpg_matches = re.findall(jpg_pattern, data)
# 保存找到的jpg数据
for i, jpg_data in enumerate(jpg_matches):
binary_data = bytes.fromhex(jpg_data)
with open(f'out.jpg', 'wb') as f:
f.write(binary_data)
if __name__ == '__main__':
extract_jpg_data('error.log')
得到图片,在用盲水印工具:
最后解密得到结果:
DASCTF{30601319731003117X_79159498824}
- Title: 第八届西湖论剑网络安全技能大赛部分wp
- Author: Rxw
- Created at : 2025-01-19 11:34:24
- Updated at : 2025-01-19 20:24:44
- Link: https://rxw2023-github-io.pages.dev/2025/01/19/第八届西湖论剑网络安全技能大赛部分wp/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments