shellcode(4)
-
HackCTF - Unexploitable #4
__int64 __fastcall main(__int64 a1, char **a2, char **a3) { char s[16]; // [rsp+0h] [rbp-10h] BYREF ((void (__fastcall *)(__int64, char **, char **))init_)(a1, a2, a3); fgets(s, 0x2C, stdin); return 0LL; } 다 풀려있었기에 shellcode를 의도한 문제라고 합리적의심을 할 수 있었다. 처음에 구상은 아래와 같이 했다 SFP를 BSS로 조작해서 shellcode 2번에 나누어서 삽입 shellcode가 있는 주소를 ret 해서 익스 진행 그런데 위와 같이 하다보니 레지스터가 꼬이는 상황이 발생했고, 적절하게 sub rsp, 0x20 을 해줘서 익..
2021.10.15 -
HackCTF - ezshell
보호되어 있는 글입니다.
2021.07.13 -
tamuCTF2018 - pwn3
tamuCTF2018 pwn3번입니다. 가장먼저 nx가 걸려있지않아서 shellcode 삽입이 가능합니다. ida32bit로 한번 까보면 이렇게 나오고 gets에서 bof가 일어납니다. payload내부에 shellcode를 삽입해서 진행하면 되겠네요 ㅎㅎ 3번까지는 풀었는데 4번 파일을 찾고있습니다 ㅠㅠ 풀렸네요 ㅎ (grin)
2018.09.14 -
LOB - 15. giant -> assassin
어느때와 다름없이 먼저 로그인을 합니다. 당연히 소스코드를 열어봅니다. 예전에 봤던 문제들하고 비슷한 유형이네요.이번에는 리턴값 시작이 "\xbf", "\x40"이 아니여야하네요! 그리고 가장 중요한!! 저희가 넣을 수 있는 버퍼의 최대값이 없다는 점입니다.buffer와 sft는 초기화가 되지만 그 뒤는 저희의 맘대로니까요!!(grin) 그럼 argv[2]에 인자를 넣어주고, 그 값이 어디로 가는지를 찾아봅시다! 위의 곳으로 가네요! 하지만 리턴주소를 보면 "\x90\xfa\xff\xbf"로 향해야하는데조건에 맞아서 종료되게 됩니다! 조금 돌려서 생각해보니 리턴주소를 자기 자신으로 하면 리턴을 한번 더 실행하니 그 뒤에 우리가 원하는 ret주소를 입력하면 무난히 통과할 것 같습니다! 리턴주소를 찾기위해 ..
2018.07.30