전체 글
-
-
[LOB] xavius > death_knightWargame/Lord of Buffer Overflow 2021. 8. 18. 14:33
[LOB] xavius > death_knight 이번 문제는 입력을 6666 포트에 remote로 받는다. 핵심만 살펴보면 buffer가 40byte이고 256byte 입력을 받기에 bof가 일어난다. 이렇게 실행되고 있는것을 확인할 수 있다. 하지만 buffer의 정확한 위치를 알 수 없어 brute force를 때렸다. Shellcode Reverse shellcode를 만들어 줌 [Pwnable] Generate shellcode with gdb-peda gdb-peda를 이용한 쉘코드 만들기 이렇게 사용하면 된다. 만들 수 있는 쉘코드 목록 리버스 쉘코드를 만들어 보았다. 끝 chocovy.tistory.com 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 from pwn..
-
[LOB] nightmare > xaviusWargame/Lord of Buffer Overflow 2021. 7. 16. 13:19
[LOB] nightmare > xavius stack, code, ret , LD 등 필터링이 다 걸려있다. 쉘 코드 넣을 곳을 찾아야 하는데 이번 문제는 이전의 문제들과 달리 fgets를 통해 stdin으로 입력을 받는다. 이때 stdin에 buffer가 생기는데 이 공간을 사용하면 된다. fget의 세번째 인자가 stdin인데 부분이다. 이렇게 찾을 수 있다. 이제 입력을 받고 다시 확인해보자 : 문자의 끝 : 문자 길이 : 문자의 시작 즉 0x40015000에 입력이 있다는 소리다. 이곳에다가 쉘 코드를 박으면 된다. xavius / throw me away
-
[LOB] succubus > nightmareWargame/Lord of Buffer Overflow 2021. 7. 16. 10:59
[LOB] succubus > nightmare PLT Return Address에 strcpy가 들어가야 한다. 그리고 27번 줄에서 Return Address다음 4Byte를 A로 바꾸는데 RTL Chaning을 방지하는 것 같다. Return Address에 strcpy를 넣고 이를 통해 A로 바뀐 4Byte를 원하는 주소로 바꿔서 RTL Chaning을 할 수 있다. gdb로 메인 함수를 살펴보면 이렇게 친절하게 strcpy의 PLT가 보인다. 0x8048410 이제 core dumped를 일으켜 strcpy의 Return Address의 주소와 쉘 코드가 들어갈 주소를 찾아보자 A가 들어간 0xbffffad0가 strcpy의 첫 번째 인자가 되고 두 번째 인자인 다음 4Byte(0xbffffad..
-
[LOB] zombie_assassin > succubusWargame/Lord of Buffer Overflow 2021. 7. 15. 17:53
[LOB] zombie_assassin > succubus 이번 문제는 소스 코드가 엄청 길다. 문제에 핵심은 11줄에 있는 MO 함수 속 system을 이용하는 것 같다. MO 함수를 실행시키기 위해서는 코드 속 함수들을 차례대로 실행해야 하는데 RTL Chaning을 이용하면 된다. 우선 함수들의 주소를 구하고 system("/bin/sh")을 위해 "/bin/sh"도 구해준다. 도개걸윷모 ㅋㅋ; 이제 주소는 찾았고 payload만 짜면 된다. 다시 보니까 라이브러리에 존재하는 "/bin/sh"을 못쓴다. (코드 잘 보자 ㅎㅎ) 이렇게 "/bin/sh"을 넣을 주소를 찾았다. (0xbffffa78) succubus / here to stay
-
[LOB] assassin > zombie_assassinWargame/Lord of Buffer Overflow 2021. 7. 15. 16:06
[LOB] assassin > zombie_assassin FEBP ( Fake EBP ) 문제다. 이 문제는 golem에서 사용했던 FPO를 응용하면 된다. [LOB] golem > darkknight [LOB] golem > darkknight [LOB] golem > darkknight 이번 문제는 FPO를 이용한 문제다. FPO(Frame Pointer Overflow)는 SFP를 조작해 eip를 변조시키는 공격이다. 이 과정을 이해하려면 함수 에필로그 과정을 알고 있어야 한다. 먼저.. chocovy.tistory.com FPO에서는 서브 함수가 끝나고 메인 함수 leave, ret에서 쉘 코드를 실행할 수 있었는데 이번 문제는 메인 함수에서 bof가 일어나기 때문에 Return Address를..