Do hơi tâm lý nên kết quả mọi thứ ko như ý muốn (toàn bị stuck giữa giữa bài
Đề bài cho 1 file pcap…
Okie mở nó ra , chà 1 đống packets toàn SSL
http://www.vnsecurity.net/2010/03/codegate-2010-challenge7-weak-ssl-cracking/
và k9 (teammate) đã decrypt ra được, và export cho mình 1 file txt nhìn gọn gàng như thế này
GET /get?k=3bEQgZLJHvtB7UzbxmmSPowYC/Tvi6mNa2fgS93LGo8%3D 200 OK\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSAIwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSAYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSAowYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSA4wYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSBIwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSBYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSBowYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSB4wYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSCIwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSCYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSCowYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSC4wYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSDIwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSDYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmmSDowYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
.....................................................................................
GET /get?k=3bEQgZLJHvtB7UzbxmmSPowYC/Tvi6mNa2fgS93LGo8%3D 200 OK\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkAPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkBPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkCPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkDPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkEPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkFPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkGPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkHPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
GET /get?k=3bEQgZLJHvtB7UzbxmkIPYwYC/Tvi6mNa2fgS93LGo8%3D 500 Internal Server Error\r\n
....................................................................................
GET /get?k=3bEQgZLJHvtB7Uzbxmn%2BPYwYC/Tvi6mNa2fgS93LGo8%3D 401 Unauthorized\r\n
..................................................................................
GET /get?k=rvN54fbpP5gVvTGlsAzsL4wYC/Tvi6mNa2fgS93LGo8%3D 401 Unauthorized\r\n
Nhìn đống request này thì mình đã đoán đc đây là log của 1 đối tượng nào đấy đang bị tấn công bằng phương thức Padding Oracle, kĩ thuật tấn công được tìm ra bởi thaidn (chắc ai cũng biết) bởi vậy bài này mới tên là GAOThái
http://blog.gdssecurity.com/labs/2010/9/14/automated-padding-oracle-attacks-with-padbuster.html
Okie , dễ thấy rằng tool khi khai thác Decryption via Padding Oracle thì nó sẽ stop sau khi tìm đc AES_DECRYPT(key,block[1]). Và khi đó IV (đồng thời là block[0]) ^ AES_DECRYT(key,block[1]) == “\x10″*16
Mình lấy đoạn cipher lúc đầu
GET /get?k=3bEQgZLJHvtB7UzbxmmSPowYC/Tvi6mNa2fgS93LGo8%3D 200 OK\r\n
>>> base64.b64decode(’3bEQgZLJHvtB7UzbxmmSPowYC/Tvi6mNa2fgS93LGo8=’ ).encode(‘hex’ )
‘ddb1108192c91efb41ed4cdbc669923e8c180bf4ef8ba98d6b67e04bddcb1a8f’
Rồi lấy đoạn cipher cuối cùng (khi tool đã exploit hoàn tất)>>> base64.b64decode(’3bEQgZLJHvtB7UzbxmmSPowYC/Tvi6mNa2fgS93LGo8=’ ).encode(‘hex’ )
‘ddb1108192c91efb41ed4cdbc669923e8c180bf4ef8ba98d6b67e04bddcb1a8f’
>>> base64.b64decode(‘rvN54fbpP5gVvTGlsAzsL4wYC/Tvi6mNa2fgS93LGo8=’ ).encode(‘hex’ )
‘aef379e1f6e93f9815bd31a5b00cec2f8c180bf4ef8ba98d6b67e04bddcb1a8f’
aef379e1f6e93f9815bd31a5b00cec2f là IV , ta đem đi XOR với “\x10″*16 là biết đoạn AES_DECRYPT(key,block[1]) là gì thôi ‘aef379e1f6e93f9815bd31a5b00cec2f8c180bf4ef8ba98d6b67e04bddcb1a8f’
>>> hex (0xaef379e1f6e93f9815bd31a5b00cec2f ^ 0×10101010101010101010101010101010)
’0xbee369f1e6f92f8805ad21b5a01cfc3fL’
Có AES_DECRYPT(key,block[1]) rồi ta lại đem đi XOR với đoạn cipher lúc đầu’0xbee369f1e6f92f8805ad21b5a01cfc3fL’
>>> hex (0xbee369f1e6f92f8805ad21b5a01cfc3f ^ 0xddb1108192c91efb41ed4cdbc669923e)
’0x635279707430317344406d6e66756e01L’
>>> ’635279707430317344406d6e66756e01′.decode(‘hex’ )
‘cRypt01sD@mnfun\x01′
Flag: cRypt01sD@mnfun’0x635279707430317344406d6e66756e01L’
>>> ’635279707430317344406d6e66756e01′.decode(‘hex’ )
‘cRypt01sD@mnfun\x01′
Nghĩ lại thấy tiếc , nhưng thôi, rút kinh nghiệm vậy

0 nhận xét:
Đăng nhận xét