pwnable

    Tip of bypass mitgation

    보호되어 있는 글입니다.

    Jmp To ShellCode by various Opcode

    보호되어 있는 글입니다.

    Stack Buffer Overflow checked by Windbg

    보호되어 있는 글입니다.

    [Pwnable] j0n9hyun's secret

    이번에는 j0n9hyun's secret이다. 바로 mitigation check! Partial Relro, no canary, NX, none pie 보호기법이 많이 걸려있지는 않아서 익스가 힘들거 같지는 않다. 바로 코드부터 살펴보자 main이 잡히지 않고 이상한 함수들도 엄청 많은걸 보니 stripped + statically linked binary인거 같다. 그럼 start 함수의 첫번째 인자(sub_4009C9)가 main 함수이므로 바로 살펴보자 stripped binary라 잘 봐서는 모르겠다. 코드만 보고 대충 유추를 해보면 "input name:"이라는 내용을 출력하고 %s format string이 있으니까 문자열을 입력받는거 같다. 그리고 나머지는 알아볼 수 없으니 한번 바이너리를..

    [Pwnable] Unexploitable #2

    이번에는 Unexploitable #2이다. 이 문제는 약간의 trick 문제라 그 trick을 잘 알고 있으면 쉽게 풀 수 있다. 우선 Mitigation check부터 하자 Partial Relro, no canary, NX enable, none pie 코드를 살펴보자 main에서는 그냥 평범하게 fgets 부분에서 BOF 터져서 ROP가 가능해보인다. 근데 이제 문제점이 있다. 사용 가능한 함수중에 출력을 해주는 함수가 존재하질 않는다. 출력을 해주는 함수가 없는 got를 구할 수 없어 libc base를 구할 수 없다. 그래서 gift 함수를 보면 system 함수를 이용한다. 우리는 system 함수로 libc leak 후에 libc base를 구할거다. system 함수는 출력해주는 기능을 ..

    [Pwnable] World Best Encryption Tool

    이번에는 World Best Encryption Tool이다. 이것도 취약점이 대놓고 보여서 쉬우니까 후딱 풀자 Canary, NX, Partial Relro, none pie이다. main이다. src에 입력받는 부분에 %s로 length check가 없어서 BOF가 터진다. 그리고 입력한 문자열을 0x31만큼 0x1C랑 xor연산해준다. dest로 src 문자열을 복사하고, s1에 또 입력받는데 다시 BOF가 터진다. 그럼 우선 익스 시나리오를 구상해보자 1. src 입력 받는 부분으로 canary leak -> strncpy 이용해서 canary 1byte 덮으면 가능 2. s1에 Yes 입력해서 다시 src에 입력받음 3. libc leak, return to main 4. return to sy..