美文网首页
i春秋CTF大本营

i春秋CTF大本营

作者: 小小怪吃吃吃 | 来源:发表于2018-11-30 17:34 被阅读0次

    百度杯”CTF比赛 九月场Code

    分析
    1、看到链接想到文件包含,读取index.php,发现源代码解密如下:

    image.png
    2、注意三个地方:首先提示利用phpstorm写的代码,其次对包含的文件名进行了过滤,最后将config替换为_。
    3、最关键的点是phpstorm,因为由phpstorm创建的文件目录下面自动生成一个workspace.xml 里面包含了网站文件的结构各种信息。于是访问view-source:http://ad53550afe6b448c83f4a2f04cc564193ecdec0e51524676.game.ichunqiu.com/.idea/workspace.xml
    4、发现fl3g_ichuqiu.php文件,结合index.php中对文件名的限制,构造view-source:http://ad53550afe6b448c83f4a2f04cc564193ecdec0e51524676.game.ichunqiu.com/index.php?jpg=fl3gconfigichuqiu.php进行读取。
    5、
    6、
    7、分析代码逻辑,写出POC(渣渣我看了n多遍都没看懂代码逻辑......真是可怕😨这里给老大递茶🍵终于理清了)
    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
    import base64
    
    txt_enc = 'guest'
    txt_enc1 = ''
    for i in range(0, len(txt_enc)):
        txt_enc1 = txt_enc1 + chr(ord(txt_enc[i])+10)
    set_cookie = 'TG1iSEceDEpN'
    coo = base64.b64decode(set_cookie)
    rnd = coo[0:4]
    print(rnd)
    ttmp = coo[4:]
    key = ''
    for i in range(len(txt_enc1)):
        key = key + chr(ord(txt_enc1[i])^ ord(ttmp[i]))
    
    
    username = 'system'
    username1 = ''
    txtya = ''
    for i in range(len(username)):
        username1 += chr(ord(username[i])+10)
    
    a = '1234567890abcdef' # 这里的a取md5的所有值
    txtya = ''
    for i in range(len(a)):
        key1 = key + a[I]
        txtya = ''
        for (x, y) in zip(username1, key1):
            txtya = txtya + chr(ord(x)^ ord(y))
        shurua = rnd + txtya
        shuru = base64.b64encode(shurua)
        print(shuru)
        with open("3.txt", "a+") as f:
            f.write(shuru + '\n')
    
    

    8、最后跑出flag:


    image.png

    知识点
    1、phpstorm写的会有一个 .idea 文件夹,里面存储了一些配置文件。

    image.png
    2、正则符号理解:见正则表达式全部符号解释
    3、代码审计
    4、加密解密,脚本爆破

    相关文章

      网友评论

          本文标题:i春秋CTF大本营

          本文链接:https://www.haomeiwen.com/subject/vcfnqqtx.html