목록전체 글 (166)
Pwnstar
보호되어 있는 글입니다.

hack the box에서 sick rop와 상당히 비슷한 문제여서 별 생각 안하고 빨리 풀 수 있었던 것 같다. 어셈블리어로 작성된 바이너리인데, __int64 main() { size_t v0; // rax char buf; // [rsp+0h] [rbp-1F4h] write(::buf, 31uLL); v0 = read(&buf, 800uLL); return write(&buf, v0); } 다행히 보호기법은 하나도 걸려있지 않고, seccomp도 없다. 다만 rax를 설정할 수 있는 가젯이 없어서 write함수의 return값을 이용해서 설정해줘야 한다. 설명할 것은 별로 없고, 처음 입력 때에 뒤에 SROP를 위한 값들을 미리 넣어주고, 두 번째 입력때에 dummy를 15개 넣어주면 srop가 가..

가위바위보 게임인데 요...문제는 쉬웠다. 그래도 라업을 작성하는 이유는 재밌어서...? 카나리가 없는게 참 다행이다. main __int64 __usercall main@(char **a1@, char **a2@, __int64 a3@) { char v3; // ST0F_1 __int64 v5; // [rsp-8h] [rbp-8h] __asm { endbr64 } v5 = a3; printf_("How about a friendly game of Rock-Paper-Scissors? [y/n]: ", a1, a2); v3 = getchar_(); getchar_(); if ( v3 == 'y' ) play_game((__int64)&v5, (__int64)a1); else puts_(); return ..

요즘 주말마다 공부할 겸 한 문제라도 풀어보자라는 마인드로 CTF를 하나씩 참가하고 있는데, 계속 포너블만 조지다보니 그래도 조금씩 풀 수 있는 문제가 늘어나는 것 같다. 일요일에는 보통 데이트를 해서 토요일 하루만 빡세게 푸는데, 이번 씨텦에서 난이도가 높은 문제는 하나도 못풀어서 좀 아쉽다...그래도 5문제 정도 풀었는데, 너무 쉬운 문제나, 기록할만하지 않은 문제는 빼고 라업을 작성해야겠다. 쉬운 난이도 문제 두 개는 다 패스하기로 했다. 너무 쉬웠음; 중간 난이도 문제들이 적당히 어렵고 재밌었는데 sort it 부터 보자. 64비트 바이너리에 보호기법이 전부 걸려있다. 실행을 해 보면 단어들을 알파벳 순서대로 나열하라고 한다. // local variable allocation has failed..
보호되어 있는 글입니다.

좀 아쉬움이 많이 남는 CTF였다. 건드리면서 거의 다 풀었다고 생각한 문제들이 많았는데 결국 푼거는 이 한문제밖에 없다. 그래도 비교적 빨리 풀어서 기분은 좋았다. 가젯찾기 좀 힘든 문제였음. checksec got overwrite는 가능하고, NX bit만 걸려있다. main int __cdecl main(int argc, const char **argv, const char **envp) { __int128 v4; // [rsp+0h] [rbp-10h] v4 = 0uLL; printf("n = ", argv, envp, 0LL, 0LL); __isoc99_scanf("%d", &v4); if ( (signed int)v4 > 255 ) exit(1); *((_QWORD *)&v4 + 1) = ca..
보호되어 있는 글입니다.
보호되어 있는 글입니다.