I love arnimals like frorggies and crarbs and octurpurse nc byuctf.xyz 40015 tag: hard
[45 solves / 463 points]
Analysis
1 2 3 4 5
Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x3fe000)
이 문제는 소스 코드가 주어져 있지 않아서 IDA로 바이너리 분석해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
int __cdecl main(int argc, constchar **argv, constchar **envp) { int v4[12]; // [rsp+Ch] [rbp-34h] BYREF int i; // [rsp+3Ch] [rbp-4h]
puts("I love frorggies so much! So much I made this application to store all the frorgie names you want"); puts("How many frorgies you want to store? "); __isoc99_scanf("%d", v4); for ( i = 0; i < v4[0]; ++i ) { puts("Enter frorgy name: "); read(0, (char *)&v4[1] + 10 * i, 0xAuLL); } puts("Thank you!"); return0;
main 자체는 간단하다. 명백하게 bof가 발생하는데 이 bof를 몇 번 일으킬지 내가 지정할 수 있다. 문제는 10글자씩 입력할 수 있어서 원하는 주소를 입력할 때 패딩을 잘 주면서 해야 한다.