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

BkavCR

VIP Members
27/09/2013
104
203 bài viết
[Writeup] Chủ đề Reverse - Vòng loại WhiteHat Grand Prix 2014
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}
 
Chỉnh sửa lần cuối bởi người điều hành:
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
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
Comment
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
Comment
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
Comment
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
Comment
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
Comment
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
Comment
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
Comment
X
  • \xbot
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 lần cuố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
Comment
X
  • \xbot
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
Comment
Bên trên