[Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

Thảo luận trong 'Writeup WhiteHat Grand Prix' bắt đầu bởi BkavCR, 20/09/14, 10:09 AM.

  1. BkavCR

    BkavCR Super Moderator

    Tham gia: 27/09/13, 11:09 AM
    Bài viết: 204
    Đã được thích: 89
    Điểm thành tích:
    48
    Link tải đề:

    Re 100
    http://grandprix.whitehat.vn:8020/A21C793D1FDC70E74BA7D821BFE53A16/re100

    Re 200
    http://grandprix.whitehat.vn:8020/2433571F38506E0BA86A5A0C650D3511/re200

    Re 300
    http://grandprix.whitehat.vn:8020/4CBBCFCEB7B53F1594853D1FF5FC1EE0/re300.exe
    Cập nhật: Username: WhiteHat_Grand_Prix_2014

    Mời các bạn viết Writeup và cùng thảo luận về Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014.

    ________________________________________
    BQT cập nhật Writeup để các bạn cùng tham khảo:

    RE100 - Avengers:
    Mã:
    import dis
    
    def myfunc():
        _1 = ''
    
    
        #'from zlib import decompress as y\nfrom binascii import unhexlify as u'
        for i in [102,114,111,109,32,122,108,105,98,32,105,109,112,111,114,116,32,100,101,99,111,109,112,114,101,115,115,32,97,115,32,121,10,102,114,111,109,32,98,105,110,97,115,99,105,105,32,105,109,112,111,114,116,32,117,110,104,101,120,108,105,102,121,32,97,115,32,117]:
            _1 += chr(i)
    
    
        exec(_1)
        c = 5225289992572816510375617297175513170291190435493698272730040307127264906868335001081343190341346338780406158345171271164984495365L
        hi = eval(y(u(hex(c)[2:-1]))) #lambda x:x=='f51cbcad85917552208a18890b21ce9c'
        print hi(raw_input('Your input:'))
    dis.dis(myfunc)
    
    
    myfunc()
    Flag:
    Mã:
    Flag{f51cbcad85917552208a18890b21ce9c}
    RE200 - b33p

    Re200.txt:
    Mã:
    (('`')|('$'))
    +
    '='
    +
    (('`')|('%'))
    +
    (('[')^('-'))
    +
    (('`')|('!'))
    +
    (('`')|(','))
    +
    '('
    +
    '"'
    +
    (('`')|(','))
    +
    (('`')|('!'))
    +
    (('`')|('-'))
    +
    (('"')^('@'))
    +
    (('`')|('$'))
    +
    (('`')|('!'))
    +
    (('{')^('['))
    +
    (('`')|('&'))
    +
    (('`')|(','))
    +
    (('`')|('!'))
    +
    (('`')|('''))
    +
    ':'
    +
    (('`')|('&'))
    +
    (('`')|(','))
    +
    (('`')|('!'))
    +
    (('`')|('''))
    +
    '='
    +
    '='
    +
    '''
    +
    (('[')^('/'))
    +
    (('`')|('%'))
    +
    (('`')|('#'))
    +
    '0'
    +
    (('[')^(')'))
    +
    (('[')^('*'))
    +
    (('[')^('.'))
    +
    (('`')|('!'))
    +
    (('`')|('''))
    +
    (('`')|('#'))
    +
    (('"')^('@'))
    +
    (('`')|(')'))
    +
    (('`')|('!'))
    +
    (('`')|('%'))
    +
    (('`')|('!'))
    +
    '1'
    +
    '2'
    +
    '0'
    +
    (('[')^(','))
    +
    (('`')|('%'))
    +
    (('"')^('@'))
    +
    (('`')|('$'))
    +
    (('[')^('+'))
    +
    (('`')|('#'))
    +
    (('`')|('!'))
    +
    (('`')|('%'))
    +
    (('`')|('-'))
    +
    (('[')^('-'))
    +
    '2'
    +
    (('`')|('$'))
    +
    '0'
    +
    (('`')|('#'))
    +
    '''
    +
    '"'
    +
    ')'
    +
    (('[')^('+'))
    +
    (('[')^(')'))
    +
    (('`')|(')'))
    +
    (('`')|('.'))
    +
    (('[')^('/'))
    +
    (('{')^('['))
    +
    (('`')|('$'))
    +
    '('
    +
    (('[')^(')'))
    +
    (('`')|('!'))
    +
    (('[')^(','))
    +
    '_'
    +
    (('`')|(')'))
    +
    (('`')|('.'))
    +
    (('[')^('+'))
    +
    (('[')^('.'))
    +
    (('[')^('/'))
    +
    '('
    +
    '"'
    +
    (('[')^('"'))
    +
    (('`')|('/'))
    +
    (('[')^('.'))
    +
    (('[')^(')'))
    +
    (('{')^('['))
    +
    (('`')|(')'))
    +
    (('`')|('.'))
    +
    (('[')^('+'))
    +
    (('[')^('.'))
    +
    (('[')^('/'))
    +
    ':'
    +
    '"'
    +
    ')'
    +
    ')'

    ---------------------------------------------
    Re200.py:

    Mã:
    import os
    import sys
    import time
    
    
    def get_plaintext():
        f = open("re200.txt", "r")
        logs = f.read().split("\n")
        f.close()
    
    
        plaintext = ""
    
    
        for log in logs:
            if len(log) == 1:
                continue
    
    
            if "((" in log:
                if log[6] == '|':
                    plaintext = plaintext + chr(ord(log[3] ) | ord(log[9]))
                elif log[6] == '^':
                    plaintext = plaintext + chr(ord(log[3] ) ^ ord(log[9]))
    
    
            else:
                plaintext = plaintext + log[1]
    
    
        print plaintext
    
    
    if __name__ == '__main__':
        get_plaintext()
    
    
    #d=eval("lambda flag:flag=='tec0rquagcbiaea120webdpcaemv2d0c'")
    #print d(raw_input("your input:"))
     
    

    Flag{tec0rquagcbiaea120webdpcaemv2d0c}

    RE300 - botbie

    re300.py
    Mã:
    dat = open("dat.wtf", "rb").read()
    secret = b'\x2f\xe8\xa5\xba\xa4\xa4\x0f\xbd'
    name = "WhiteHat_Grand_Prix_2014"
    
    
    password = ""
    for i in range(0, 8):
        ecx = secret[i]
        for j in range(len(name), 0, -1):
            edx = dat.index(ecx)
            ecx = chr(ord(name[j - 1]) ^ edx)
        password = password + ecx.encode("hex")
    print password
    
    dat.wtf
    Mã:
    703b 68f3 4ddb a4b7 46be 2b38 e1fa 6b50
    fce5 f762 b077 5a5c d08c d51a 87dc 123d
    cd3a 9b7b 4aec 4b1e 631d 60c2 78ad f694
    23bc 972d 8de3 8e69 8866 2c98 9dcb 1bfb
    20aa 5db1 0561 52f9 1fbb 04ff 3110 8955
    f182 7a45 2549 6f64 ed18 9e1c d6d3 9af4
    c9c0 0f0a e228 7e33 fd34 a02f 9157 dd03
    27b6 6dce bf01 1643 a359 ef4c dfd1 7115
    e07f 4785 48c4 de56 764f 5375 5bb9 952a
    095f 9232 d26c 0826 a58a 5807 f551 e89f
    abd8 c3b2 eec7 8144 1780 0dd7 29e4 a983
    c199 e6f0 0e6a d4a1 740b eb3f ae0c a641
    b493 ca30 35af 7972 aca8 7cbd 8414 b5b3
    cccf 9c13 b8c5 4039 e78b 2202 65da 96f2
    9054 06ea 2e21 42f8 c83e 3c00 5e19 d967
    868f a27d 4e6e 37ba 7324 e9fe 11a7 36c6
    
    Chạy kịch kịch kịch:
    -> e76f63389797f52f
    -> Flag{e76f63389797f52f}
     
    Last edited by a moderator: 02/10/14, 06:10 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  2. vhnvn

    vhnvn W-------

    Tham gia: 22/09/14, 02:09 PM
    Bài viết: 13
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    Re100 và Re200 team mình làm nhanh quá nên không lưu file gì cả, h mất hết file tmp rồi :)

    Re300:
    Mã:
    sub_401A00(std::cout, "Enter your username: \n");sub_401C30(std::cin, User);
    sub_401A00(std::cout, "Enter your password: \n");
    sub_401C30(std::cin, Pass);
    if ( strlen(Pass) == 16 )
    {
        idx = 0;
        do
        {
            v4 = Pass[idx];
            if ( v4 < '[' && v4 > '@' )
                Pass[idx] = v4 + 32;
            v5 = Pass[idx + 1];
            if ( v5 < '[' && v5 > '@' )
                Pass[idx + 1] = v5 + 32;
            v6 = Pass[idx + 2];
            if ( v6 < '[' && v6 > '@' )
                Pass[idx + 2] = v6 + 32;
            v7 = Pass[idx + 3];
            if ( v7 < '[' && v7 > '@' )
                Pass[idx + 3] = v7 + 32;
            idx += 4;
        }
        while ( idx < 16 );
        v8 = 0;
        while ( 1 )
        {
            v9 = Pass[v8];
            if ( v9 < '0' || v9 > 'f' || v9 > '9' && v9 < 'a' )
                break;
            ++v8;
            if ( v8 >= 16 )
            {
                v11 = strlen(User);
                v13 = 1;
                for(int i=0;i
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. babyrobots

    babyrobots W-------

    Tham gia: 08/03/14, 12:03 PM
    Bài viết: 2
    Đã được thích: 0
    Điểm thành tích:
    1
    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    Write-up RE200 - babyrobots
    Mã:
    (('`')|('$'))+'='+(('`')|('%'))+(('[')^('-'))+(('`')|('!'))+(('`')|(','))+'('+'"'+(('`')|(','))+(('`')|('!'))+(('`')|('-'))+(('"')^('@'))+(('`')|('$'))+(('`')|('!'))+(('{')^('['))+(('`')|('&'))+(('`')|(','))+(('`')|('!'))+(('`')|('''))+':'+(('`')|('&'))+(('`')|(','))+(('`')|('!'))+(('`')|('''))+'='+'='+'''+(('[')^('/'))+(('`')|('%'))+(('`')|('#'))+'0'+(('[')^(')'))+(('[')^('*'))+(('[')^('.'))+(('`')|('!'))+(('`')|('''))+(('`')|('#'))+(('"')^('@'))+(('`')|(')'))+(('`')|('!'))+(('`')|('%'))+(('`')|('!'))+'1'+'2'+'0'+(('[')^(','))+(('`')|('%'))+(('"')^('@'))+(('`')|('$'))+(('[')^('+'))+(('`')|('#'))+(('`')|('!'))+(('`')|('%'))+(('`')|('-'))+(('[')^('-'))+'2'+(('`')|('$'))+'0'+(('`')|('#'))+'''+'"'+')'+(('[')^('+'))+(('[')^(')'))+(('`')|(')'))+(('`')|('.'))+(('[')^('/'))+(('{')^('['))+(('`')|('$'))+'('+(('[')^(')'))+(('`')|('!'))+(('[')^(','))+'_'+(('`')|(')'))+(('`')|('.'))+(('[')^('+'))+(('[')^('.'))+(('[')^('/'))+'('+'"'+(('[')^('"'))+(('`')|('/'))+(('[')^('.'))+(('[')^(')'))+(('{')^('['))+(('`')|(')'))+(('`')|('.'))+(('[')^('+'))+(('[')^('.'))+(('[')^('/'))+':'+'"'+')'+')'
    
    Nhìn qua thấy có các dấu cộng nối string, ví dụ như đoạn:
    Mã:
    +'1'+'2'+'0'+
    , các biểu thức trong ngoặc đơn là or, xor, có vẻ như là or, xor giá trị của các kí tự để được kí tự mới, test thử:
    Mã:
    (('`')|('$'))
    với:
    Mã:
    Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> chr(ord('`')|ord('$'))
    'd'
    ra printable char :D
    Ta làm tương tự cho phần còn lại như sau (chú ý escape '):
    Mã:
    chr(ord('`')|ord('$'))+'='+chr(ord('`')|ord('%'))+chr(ord('[')^ord('-'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord(','))+'('+'"'+chr(ord('`')|ord(','))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('-'))+chr(ord('"')^ord('@'))+chr(ord('`')|ord('$'))+chr(ord('`')|ord('!'))+chr(ord('{')^ord('['))+chr(ord('`')|ord('&'))+chr(ord('`')|ord(','))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('\''))+':'+chr(ord('`')|ord('&'))+chr(ord('`')|ord(','))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('\''))+'='+'='+'\''+chr(ord('[')^ord('/'))+chr(ord('`')|ord('%'))+chr(ord('`')|ord('#'))+'0'+chr(ord('[')^ord(')'))+chr(ord('[')^ord('*'))+chr(ord('[')^ord('.'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('\''))+chr(ord('`')|ord('#'))+chr(ord('"')^ord('@'))+chr(ord('`')|ord(')'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('%'))+chr(ord('`')|ord('!'))+'1'+'2'+'0'+chr(ord('[')^ord(','))+chr(ord('`')|ord('%'))+chr(ord('"')^ord('@'))+chr(ord('`')|ord('$'))+chr(ord('[')^ord('+'))+chr(ord('`')|ord('#'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('%'))+chr(ord('`')|ord('-'))+chr(ord('[')^ord('-'))+'2'+chr(ord('`')|ord('$'))+'0'+chr(ord('`')|ord('#'))+'\''+'"'+')'+chr(ord('[')^ord('+'))+chr(ord('[')^ord(')'))+chr(ord('`')|ord(')'))+chr(ord('`')|ord('.'))+chr(ord('[')^ord('/'))+chr(ord('{')^ord('['))+chr(ord('`')|ord('$'))+'('+chr(ord('[')^ord(')'))+chr(ord('`')|ord('!'))+chr(ord('[')^ord(','))+'_'+chr(ord('`')|ord(')'))+chr(ord('`')|ord('.'))+chr(ord('[')^ord('+'))+chr(ord('[')^ord('.'))+chr(ord('[')^ord('/'))+'('+'"'+chr(ord('[')^ord('"'))+chr(ord('`')|ord('/'))+chr(ord('[')^ord('.'))+chr(ord('[')^ord(')'))+chr(ord('{')^ord('['))+chr(ord('`')|ord(')'))+chr(ord('`')|ord('.'))+chr(ord('[')^ord('+'))+chr(ord('[')^ord('.'))+chr(ord('[')^ord('/'))+':'+'"'+')'+')'
    
    paste vô python ta có kết quả:
    Mã:
    'd=eval("lambda flag:flag==\'tec0rquagcbiaea120webdpcaemv2d0c\'")print d(raw_input("your input:"))'
    Vậy flag là: Flag{tec0rquagcbiaea120webdpcaemv2d0c}
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. vhnvn

    vhnvn W-------

    Tham gia: 22/09/14, 02:09 PM
    Bài viết: 13
    Đã được thích: 0
    Điểm thành tích:
    16
    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    Code đội mình (mới viết lại sau khi lấy đề từ babyrobots :D):

    PHP:
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  5. AngryBird

    AngryBird W-------

    Tham gia: 25/07/13, 08:07 PM
    Bài viết: 1
    Đã được thích: 0
    Điểm thành tích:
    1
    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    RE100 - Avengers:
    Mã:
    import dis
    
    def myfunc():
        _1 = ''
    
    
        #'from zlib import decompress as y\nfrom binascii import unhexlify as u'
        for i in [102,114,111,109,32,122,108,105,98,32,105,109,112,111,114,116,32,100,101,99,111,109,112,114,101,115,115,32,97,115,32,121,10,102,114,111,109,32,98,105,110,97,115,99,105,105,32,105,109,112,111,114,116,32,117,110,104,101,120,108,105,102,121,32,97,115,32,117]:
            _1 += chr(i)
    
    
        exec(_1)
        c = 5225289992572816510375617297175513170291190435493698272730040307127264906868335001081343190341346338780406158345171271164984495365L
        hi = eval(y(u(hex(c)[2:-1]))) #lambda x:x=='f51cbcad85917552208a18890b21ce9c'
        print hi(raw_input('Your input:'))
    dis.dis(myfunc)
    
    
    myfunc()
    Flag:
    Mã:
    Flag{f51cbcad85917552208a18890b21ce9c}
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  6. REBD

    REBD W-------

    Tham gia: 22/09/14, 02:09 PM
    Bài viết: 8
    Đã được thích: 0
    Điểm thành tích:
    6
    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    3 bài RE của đội REBD.
    Mã:
    http://ltops9.wordpress.com/2014/09/20/write-up-whitehat-grandprix-re100-re200-challenges/
    Do đã có nhiều bài ở trên rồi nên mình dẫn link thôi, ai muốn vào đọc thì đọc.
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  7. b33pt34m

    b33pt34m W-------

    Tham gia: 23/09/14, 04:09 PM
    Bài viết: 7
    Đã được thích: 0
    Điểm thành tích:
    6
    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    Write-up RE200 - b33p


    Re200.txt:
    Mã:
    (('`')|('$'))
    +
    '='
    +
    (('`')|('%'))
    +
    (('[')^('-'))
    +
    (('`')|('!'))
    +
    (('`')|(','))
    +
    '('
    +
    '"'
    +
    (('`')|(','))
    +
    (('`')|('!'))
    +
    (('`')|('-'))
    +
    (('"')^('@'))
    +
    (('`')|('$'))
    +
    (('`')|('!'))
    +
    (('{')^('['))
    +
    (('`')|('&'))
    +
    (('`')|(','))
    +
    (('`')|('!'))
    +
    (('`')|('''))
    +
    ':'
    +
    (('`')|('&'))
    +
    (('`')|(','))
    +
    (('`')|('!'))
    +
    (('`')|('''))
    +
    '='
    +
    '='
    +
    '''
    +
    (('[')^('/'))
    +
    (('`')|('%'))
    +
    (('`')|('#'))
    +
    '0'
    +
    (('[')^(')'))
    +
    (('[')^('*'))
    +
    (('[')^('.'))
    +
    (('`')|('!'))
    +
    (('`')|('''))
    +
    (('`')|('#'))
    +
    (('"')^('@'))
    +
    (('`')|(')'))
    +
    (('`')|('!'))
    +
    (('`')|('%'))
    +
    (('`')|('!'))
    +
    '1'
    +
    '2'
    +
    '0'
    +
    (('[')^(','))
    +
    (('`')|('%'))
    +
    (('"')^('@'))
    +
    (('`')|('$'))
    +
    (('[')^('+'))
    +
    (('`')|('#'))
    +
    (('`')|('!'))
    +
    (('`')|('%'))
    +
    (('`')|('-'))
    +
    (('[')^('-'))
    +
    '2'
    +
    (('`')|('$'))
    +
    '0'
    +
    (('`')|('#'))
    +
    '''
    +
    '"'
    +
    ')'
    +
    (('[')^('+'))
    +
    (('[')^(')'))
    +
    (('`')|(')'))
    +
    (('`')|('.'))
    +
    (('[')^('/'))
    +
    (('{')^('['))
    +
    (('`')|('$'))
    +
    '('
    +
    (('[')^(')'))
    +
    (('`')|('!'))
    +
    (('[')^(','))
    +
    '_'
    +
    (('`')|(')'))
    +
    (('`')|('.'))
    +
    (('[')^('+'))
    +
    (('[')^('.'))
    +
    (('[')^('/'))
    +
    '('
    +
    '"'
    +
    (('[')^('"'))
    +
    (('`')|('/'))
    +
    (('[')^('.'))
    +
    (('[')^(')'))
    +
    (('{')^('['))
    +
    (('`')|(')'))
    +
    (('`')|('.'))
    +
    (('[')^('+'))
    +
    (('[')^('.'))
    +
    (('[')^('/'))
    +
    ':'
    +
    '"'
    +
    ')'
    +
    ')'

    ---------------------------------------------
    Re200.py:

    Mã:
    import os
    import sys
    import time
    
    
    def get_plaintext():
        f = open("re200.txt", "r")
        logs = f.read().split("\n")
        f.close()
    
    
        plaintext = ""
    
    
        for log in logs:
            if len(log) == 1:
                continue
    
    
            if "((" in log:
                if log[6] == '|':
                    plaintext = plaintext + chr(ord(log[3] ) | ord(log[9]))
                elif log[6] == '^':
                    plaintext = plaintext + chr(ord(log[3] ) ^ ord(log[9]))
    
    
            else:
                plaintext = plaintext + log[1]
    
    
        print plaintext
    
    
    if __name__ == '__main__':
        get_plaintext()
    
    
    #d=eval("lambda flag:flag=='tec0rquagcbiaea120webdpcaemv2d0c'")
    #print d(raw_input("your input:"))
     
    

    Flag{tec0rquagcbiaea120webdpcaemv2d0c}
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  8. b33pt34m

    b33pt34m W-------

    Tham gia: 23/09/14, 04:09 PM
    Bài viết: 7
    Đã được thích: 0
    Điểm thành tích:
    6
    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    Write-up RE300 - b33p

    Re300.py:

    Mã:
    
    import os
    import sys
    import time
    
    
    username = "WhiteHat_Grand_Prix_2014"
    
    
    whatever = [0x70, 0x3B, 0x68, 0xF3, 0x4D, 0xDB, 0xA4, 0xB7, 0x46, 0xBE, 0x2B, 0x38, 0xE1, 0xFA, 0x6B, 0x50, 0xFC, 0xE5, 0xF7, 0x62, 0xB0, 0x77, 0x5A, 0x5C, 0xD0, 0x8C, 0xD5, 0x1A, 0x87, 0xDC, 0x12, 0x3D,
    0xCD, 0x3A, 0x9B, 0x7B, 0x4A, 0xEC, 0x4B, 0x1E, 0x63, 0x1D, 0x60, 0xC2, 0x78, 0xAD, 0xF6, 0x94, 0x23, 0xBC, 0x97, 0x2D, 0x8D, 0xE3, 0x8E, 0x69, 0x88, 0x66, 0x2C, 0x98, 0x9D, 0xCB, 0x1B, 0xFB,
    0x20, 0xAA, 0x5D, 0xB1, 0x05, 0x61, 0x52, 0xF9, 0x1F, 0xBB, 0x04, 0xFF, 0x31, 0x10, 0x89, 0x55, 0xF1, 0x82, 0x7A, 0x45, 0x25, 0x49, 0x6F, 0x64, 0xED, 0x18, 0x9E, 0x1C, 0xD6, 0xD3, 0x9A, 0xF4,
    0xC9, 0xC0, 0x0F, 0x0A, 0xE2, 0x28, 0x7E, 0x33, 0xFD, 0x34, 0xA0, 0x2F, 0x91, 0x57, 0xDD, 0x03, 0x27, 0xB6, 0x6D, 0xCE, 0xBF, 0x01, 0x16, 0x43, 0xA3, 0x59, 0xEF, 0x4C, 0xDF, 0xD1, 0x71, 0x15,
    0xE0, 0x7F, 0x47, 0x85, 0x48, 0xC4, 0xDE, 0x56, 0x76, 0x4F, 0x53, 0x75, 0x5B, 0xB9, 0x95, 0x2A, 0x09, 0x5F, 0x92, 0x32, 0xD2, 0x6C, 0x08, 0x26, 0xA5, 0x8A, 0x58, 0x07, 0xF5, 0x51, 0xE8, 0x9F,
    0xAB, 0xD8, 0xC3, 0xB2, 0xEE, 0xC7, 0x81, 0x44, 0x17, 0x80, 0x0D, 0xD7, 0x29, 0xE4, 0xA9, 0x83, 0xC1, 0x99, 0xE6, 0xF0, 0x0E, 0x6A, 0xD4, 0xA1, 0x74, 0x0B, 0xEB, 0x3F, 0xAE, 0x0C, 0xA6, 0x41,
    0xB4, 0x93, 0xCA, 0x30, 0x35, 0xAF, 0x79, 0x72, 0xAC, 0xA8, 0x7C, 0xBD, 0x84, 0x14, 0xB5, 0xB3, 0xCC, 0xCF, 0x9C, 0x13, 0xB8, 0xC5, 0x40, 0x39, 0xE7, 0x8B, 0x22, 0x02, 0x65, 0xDA, 0x96, 0xF2,
    0x90, 0x54, 0x06, 0xEA, 0x2E, 0x21, 0x42, 0xF8, 0xC8, 0x3E, 0x3C, 0x00, 0x5E, 0x19, 0xD9, 0x67, 0x86, 0x8F, 0xA2, 0x7D, 0x4E, 0x6E, 0x37, 0xBA, 0x73, 0x24, 0xE9, 0xFE, 0x11, 0xA7, 0x36, 0xC6,
    0xBC, 0x35, 0x35, 0x01, 0x20, 0x10, 0x35, 0x01, 0xC0, 0x11, 0x35, 0x01, 0xD0, 0x11, 0x35, 0x01
    
    
    ]
    
    
    def get_password():
        need_this = [0x2f, 0xe8, 0xa5, 0xba, 0xa4, 0xa4, 0x0f, 0xbd]
    
    
        password = ""
    
    
        for t in range(0, len(need_this)):
            for j in range(0, 255):
                cl = j
                for i in range(0, len(username)):
                    cl = whatever[cl ^ ord(username[i])]
    
    
                if cl == need_this[t]:
                    password = password + hex(j) + " "
                    break
    
    
        print password
    
    
    
    
    if __name__ == '__main__':
        get_password()
    
    
    
    


    Flag{e76f63389797f52f}
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  9. \xbot

    \xbot Guest

    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    RE200 - botbie
    Mã:
    (('`')|('$'))+'='+(('`')|('%'))+(('[')^('-'))+(('`')|('!'))+(('`')|(','))+'('+'"'+(('`')|(','))+(('`')|('!'))+(('`')|('-'))+(('"')^('@'))+(('`')|('$'))+(('`')|('!'))+(('{')^('['))+(('`')|('&'))+(('`')|(','))+(('`')|('!'))+(('`')|('''))+':'+(('`')|('&'))+(('`')|(','))+(('`')|('!'))+(('`')|('''))+'='+'='+'''+(('[')^('/'))+(('`')|('%'))+(('`')|('#'))+'0'+(('[')^(')'))+(('[')^('*'))+(('[')^('.'))+(('`')|('!'))+(('`')|('''))+(('`')|('#'))+(('"')^('@'))+(('`')|(')'))+(('`')|('!'))+(('`')|('%'))+(('`')|('!'))+'1'+'2'+'0'+(('[')^(','))+(('`')|('%'))+(('"')^('@'))+(('`')|('$'))+(('[')^('+'))+(('`')|('#'))+(('`')|('!'))+(('`')|('%'))+(('`')|('-'))+(('[')^('-'))+'2'+(('`')|('$'))+'0'+(('`')|('#'))+'''+'"'+')'+(('[')^('+'))+(('[')^(')'))+(('`')|(')'))+(('`')|('.'))+(('[')^('/'))+(('{')^('['))+(('`')|('$'))+'('+(('[')^(')'))+(('`')|('!'))+(('[')^(','))+'_'+(('`')|(')'))+(('`')|('.'))+(('[')^('+'))+(('[')^('.'))+(('[')^('/'))+'('+'"'+(('[')^('"'))+(('`')|('/'))+(('[')^('.'))+(('[')^(')'))+(('{')^('['))+(('`')|(')'))+(('`')|('.'))+(('[')^('+'))+(('[')^('.'))+(('[')^('/'))+':'+'"'+')'+')'
    
    Dùng chức năng replace của text editor yêu thích bất kì:
    Mã:
    ''' -> "'"
    (' -> ord('
    (" -> ord("
    (ord -> chr(ord
    
    Thêm chữ print ở đằng trước cho nó xinh xinh:
    Mã:
    print chr(ord('`')|ord('$'))+'='+chr(ord('`')|ord('%'))+chr(ord('[')^ord('-'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord(','))+'ord('+'"'+chr(ord('`')|ord(','))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('-'))+chr(ord('"')^ord('@'))+chr(ord('`')|ord('$'))+chr(ord('`')|ord('!'))+chr(ord('{')^ord('['))+chr(ord('`')|ord('&'))+chr(ord('`')|ord(','))+chr(ord('`')|ord('!'))+chr(ord('`')|ord("'"))+':'+chr(ord('`')|ord('&'))+chr(ord('`')|ord(','))+chr(ord('`')|ord('!'))+chr(ord('`')|ord("'"))+'='+'='+"'"+chr(ord('[')^ord('/'))+chr(ord('`')|ord('%'))+chr(ord('`')|ord('#'))+'0'+chr(ord('[')^ord(')'))+chr(ord('[')^ord('*'))+chr(ord('[')^ord('.'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord("'"))+chr(ord('`')|ord('#'))+chr(ord('"')^ord('@'))+chr(ord('`')|ord(')'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('%'))+chr(ord('`')|ord('!'))+'1'+'2'+'0'+chr(ord('[')^ord(','))+chr(ord('`')|ord('%'))+chr(ord('"')^ord('@'))+chr(ord('`')|ord('$'))+chr(ord('[')^ord('+'))+chr(ord('`')|ord('#'))+chr(ord('`')|ord('!'))+chr(ord('`')|ord('%'))+chr(ord('`')|ord('-'))+chr(ord('[')^ord('-'))+'2'+chr(ord('`')|ord('$'))+'0'+chr(ord('`')|ord('#'))+"'"+'"'+')'+chr(ord('[')^ord('+'))+chr(ord('[')^ord(')'))+chr(ord('`')|ord(')'))+chr(ord('`')|ord('.'))+chr(ord('[')^ord('/'))+chr(ord('{')^ord('['))+chr(ord('`')|ord('$'))+'ord('+chr(ord('[')^ord(')'))+chr(ord('`')|ord('!'))+chr(ord('[')^ord(','))+'_'+chr(ord('`')|ord(')'))+chr(ord('`')|ord('.'))+chr(ord('[')^ord('+'))+chr(ord('[')^ord('.'))+chr(ord('[')^ord('/'))+'ord('+'"'+chr(ord('[')^ord('"'))+chr(ord('`')|ord('/'))+chr(ord('[')^ord('.'))+chr(ord('[')^ord(')'))+chr(ord('{')^ord('['))+chr(ord('`')|ord(')'))+chr(ord('`')|ord('.'))+chr(ord('[')^ord('+'))+chr(ord('[')^ord('.'))+chr(ord('[')^ord('/'))+':'+'"'+')'+')'
    
    -> d=evalord("lambda flag:flag=='tec0rquagcbiaea120webdpcaemv2d0c'")print dord(raw_inputord("your input:"))
    Không dc hoàn hảo lắm vì còn dính mấy chữ ord do replace bậy :">, nhưng vẫn đủ để có flag:
    -> Flag{tec0rquagcbiaea120webdpcaemv2d0c}
     
    Chỉnh sửa cuối: 24/09/14, 08:09 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  10. \xbot

    \xbot Guest

    Re: [Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014

    RE300 - botbie
    re300.py
    Mã:
    dat = open("dat.wtf", "rb").read()
    secret = b'\x2f\xe8\xa5\xba\xa4\xa4\x0f\xbd'
    name = "WhiteHat_Grand_Prix_2014"
    
    
    password = ""
    for i in range(0, 8):
        ecx = secret[i]
        for j in range(len(name), 0, -1):
            edx = dat.index(ecx)
            ecx = chr(ord(name[j - 1]) ^ edx)
        password = password + ecx.encode("hex")
    print password
    
    dat.wtf
    Mã:
    703b 68f3 4ddb a4b7 46be 2b38 e1fa 6b50
    fce5 f762 b077 5a5c d08c d51a 87dc 123d
    cd3a 9b7b 4aec 4b1e 631d 60c2 78ad f694
    23bc 972d 8de3 8e69 8866 2c98 9dcb 1bfb
    20aa 5db1 0561 52f9 1fbb 04ff 3110 8955
    f182 7a45 2549 6f64 ed18 9e1c d6d3 9af4
    c9c0 0f0a e228 7e33 fd34 a02f 9157 dd03
    27b6 6dce bf01 1643 a359 ef4c dfd1 7115
    e07f 4785 48c4 de56 764f 5375 5bb9 952a
    095f 9232 d26c 0826 a58a 5807 f551 e89f
    abd8 c3b2 eec7 8144 1780 0dd7 29e4 a983
    c199 e6f0 0e6a d4a1 740b eb3f ae0c a641
    b493 ca30 35af 7972 aca8 7cbd 8414 b5b3
    cccf 9c13 b8c5 4039 e78b 2202 65da 96f2
    9054 06ea 2e21 42f8 c83e 3c00 5e19 d967
    868f a27d 4e6e 37ba 7324 e9fe 11a7 36c6
    
    Chạy kịch kịch kịch:
    -> e76f63389797f52f
    -> Flag{e76f63389797f52f}
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan