STUDY46 [pwnable.kr] bof pwable.kr 도장깨기 다시 시작 ㅎㅎ 이번에 볼 문제는 bof이다. 기초적이지만 중요한 bof (buffer overflow)!! http://pwnable.kr/bin/bof.c http://pwnable.kr/bin/bof nc pwnable.kr 9000 바이너리의 소스코드를 보면 다음과 같다. #include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme);// smash me! if(key == 0xcafebabe){ system("/bin/sh"); } else{ printf("Nah..\n"); } } int main(int argc, char* argv.. 2019. 11. 11. 리버싱 기초 정리할 일이 있어서 한번 정리해 보았다. Register GPR : 변수와 같은 느낌 ax, bx, cx, dx di, si SPR : 목적이 중요함 bp (base pointer) : 지역변수 sp (stack pointer) : 함수를 효율적으로 사용하기 위해 ip (PC) : 현재 실행 위치 Intel * little endian : 전력이 많이 소모되나, 속도가 빠름 big endian : ex) ARM * Windows : PE 포맷, PE파일의 시그니쳐는 MZ * Linux : ELF 포맷 text -----> object -----> ELF compile Linking calling convension : 기본적이라 의미 없는 것들 마지막에 지역변수 없으면 leave가 아니라 pop 사용 (.. 2019. 10. 14. [wargame.kr] md5 password md5 password 문제를 보면 다음과 같은 디스크립션을 볼 수 있다. md5('value', true); md5에 관련된 문제임을 알 수 있다. 문제로 넘어가면 password를 입력하라고 하며, 소스를 보여준다! 풀이 코드를 보면 다음과 같다. 2019. 10. 7. [wargame.kr] fly me to the moon fly me to the moon 문제를 풀어보았다. web 자체가 오랜만이긴 하지만, 오랜만에 burpsuite를 실행시켜보았당..ㅎ 분석 문제는 다음과 같이 제시된다. javascript game. can you clear with bypass prevent cheating system? 문제 페이지로 이동하면 벽을 피하는 게임을 할 수 있다. 죽으면 다음과 같이 31337점을 얻어야한다고 나온다. 게임을 조금만해보면 알겠지만, 절대 불가능해 보임 ㅎㅎ 개발자도구로 javascript 코드의 값을 수정해서 문제를 해결할 수도 있겠지만, burpsuite로 더 간단하게 해결할 수 있는 문제였다. 풀이 오랜만에 burpsuite를 키고, proxy를 설정하여보면, score가 잡히는 것을 볼 수 있다. .. 2019. 10. 7. [Insomni’hack 2019] beginner reverse beginner reverse는 64bit 바이너리의 rust 언어로 된 리버싱 문제이다. 막상 대회때는 제대로 보지 않은 문제인데, write up 쓰려고 찾다가 고르게 되었다 ㅎㅎ 비슷한 시기에 나왔다는 go언어는 해봤지만, rust는 좀 어렵다고 해서 거리감을 가지고 있었는데 이렇게 리버싱으로 접하게되어 반가웠다. rust 언어로 되어있어서 더 어렵거나 한 문제는 아니었지만…! rust는 어떤 언어인지 좀 찾아봤는데, 메모리 오류를 없애기 위한 목적을 가지고 만들어진 언어라고 한다. 언젠가 한 번 사용해 봐야겠당 ㅎㅎ 분석 ubuntu@ubuntu:~/ctf/2019/insomni$ file beginner_reverse-466bdf23cf344b8ee734a8ae86620ac72a37bb81a95.. 2019. 10. 7. [wargame.kr] login filtering wargame.kr의 login filtering이라는 문제이다. wargame.kr홈페이지 이 문제는 혼자서 풀이 못하였다 엉엉 ㅠㅠ 처음에 injection문제인줄 알았으나, mysql_real_escape_string함수가 있기때문에 injection 공격은 통하지 않는다고 한다. 결론부터 말하자면 이 문제는 mysql은 기본적으로 대소문자를 구분하지 않는다는 것을 알아야 풀이가 가능한 문제이다. 분석 문제에 접속하면 다음과 같이 로그인 창이 나오며, 소스를 볼 수 있다. 해당 소스는 다음과 같다. ID PW get source 공부도 할겸 소스코드를 분석해 보자ㅎㅎ 우선, 처음은 소스코드를 보여주는 코드이다. if (isset($_GET['view-source'])) { show_source(__.. 2019. 10. 7. 이전 1 ··· 3 4 5 6 7 8 다음 반응형