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

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

Rxw

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
On this page
第八届西湖论剑网络安全技能大赛部分wp