[TUCTF2018] Timber

Link Bài này cũng dễ nhìn, trông khá ngắn. vừa vô thấy trong hàm dostuff() getName(&format); printf("Alright "); printf(&format); Format string rồi. Xem các hàm trong IDA thì thấy có hàm date() unsigned int date() { unsigned int v0; // ST04_4 v0 = __readgsdword(0x14u); system("/bin/cat ./flag"); return __readgsdword(0x14u) ^ v0; } Rồi vậy là xong. … Tiếp tục đọc [TUCTF2018] Timber

[TUCTF2018] canary

Link xem mã giả trên IDA thì thấy dòng này devrand = open("/dev/urandom", 0); biến &devrand nhận giá trị random từ /dev/urandom. sau đó nó khởi tạo canary với hàm initcanary() read(devrand, (char *)s + 40, 4u); *((_DWORD *)s + 11) = nextind; cans[nextind] = *((_DWORD *)s + 10); lưu giá trị random vào vị … Tiếp tục đọc [TUCTF2018] canary

[TUCTF2018] Shella-hard

Link Mở IDA lên thì ta thấy trong hàm main cho ta nhập vào bằng hàm read() 0x8048441 <main+6> push 0x1e 0x8048443 <main+8> lea eax, [ebp - 0x10] 0x8048446 <main+11> push eax 0x8048447 <main+12> push 0 0x8048449 <main+14> call read@plt <0x8048300> Ta thấy length của buf là 0x1e, trong khi offset của buf tới ebp … Tiếp tục đọc [TUCTF2018] Shella-hard

[TUCTF2018] Shella-easy

Link Mới vô thấy hàm gets(&s), overflow rồi . vmmap lên thì thấy stack có excute. đề bài cũng tên shell nên quăng shell rồi khỏi suy nghĩ. 0xfffdd000 0xffffe000 rwxp 21000 0 [stack] ở dưới có check biến if ( v5  != 0xDEADBEEF) exit(0); 0x08048541 <+102>: cmp DWORD PTR [ebp-0x8],0xdeadbeef vậy thì nhập tràn … Tiếp tục đọc [TUCTF2018] Shella-easy