목록분류 전체보기 (152)
Dyrandy
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
SECCON 대회에 사정이 있어서 참가를 하지 못했지만,친구한테 문제들을 받아 혼자 따로 풀어 보려 한다. classic 문제는 ROP, GOT, PLT를 이용하는 문제다.64비트 기준이라 조금 생소해서 힘들었다... 먼저 바이너리를 ida로 열어보면 위와 같이 나온다.요기서 알아야할 사실은 바로 bp-40이다.40은 16진수로 10진수로 변환해주면 64다.즉, rbp로 부터 64비트 떨어진곳에 v4가 존재하고,+8을 해주면 바로 rip가 된다. classic을 실행시켜보면 위와 같이 나온다. 큰 그림 대략 이렇다. 1. BOF를 터트려 RIP를 바꿔야한다.2. 함수의 주소를 leak 시켜준다.3. leak된 주소로 base를 구한다.4. base를 이용해 /bin/sh를 실행 시킨다. 이 과정을 진행하..
보호되어 있는 글입니다.
한동안 펀을 안해서 머리가 많이 굳었다. 친구가 풀어보라고 문제를 하나 던져줬다. 일단 oneshot 바이너리를 아이다로 까본 결과다.자세히 보면 주소를 릭하는 아주 간단한 구조라는 것을 알 수 있다. 그후 내가 원하는 곳으로 return해줘서 쉽게 접근 할 수 있다. file을 보면 일단 동적으로 할당 되어있고 ldd로 보면 어떤 libc를 사용하는지 알 수 있다. 문제를 풀기에는 어렵지 않다. 1. 먼저 GOT안에 있는 내가 원하는 함수의 주소를 릭 해준다.2. 내가 원하는 함수의 Offset을 구한다.3. 1에서 찾은 주소 - Offset을 해서 Base를 찾는다.4. 찾은 베이스에 One_gadget을 이용한 /bin/sh를 실행 시켜준다. 먼저 puts함수를 사용하기로 해서 puts의 got를 ..
이번 문제는 php wrapper을 이용한 문제다. 이건 200점 짜리 (정말 쉬운) 문제랑 같은 주소이다. 200점 짜리 문제 페이지다. 일단 어디에 flag가 있는지 알아서 바로 글로 넘어갔는데 주석으로 devsrule.php가 있어 글로 가보았다. magic... 이런.... 사실 딱 요기까지만 보고 정말 와... 머하라는 거지 했다. 보면 /etc/passwd로 입력하면 주소가 뜨는 것을 알 수 있다. 하면 LFI, RFI 등 시도를 해볼 수 있다. 다양한 PHP Wrapper을 사용했지만, 역시나 안됬고, 정말 특이하게 php://input이 됬다. RITSEC{WOW_THAT_WAS_A_PAIN_IN_THE_INPUT}
솔직히 250점 짜리보다는 쉬운것 같은데 이게 왜 웹인지는 크흠.... 일단 소스코드를 보면 cgi-bin을 사용하는 것을 알 수 있다. 페이지에 접속을 해보면 위와 같이 뜬다. 나는 shell shock은 아닐줄 알았는데... 일단 검색을 해보면 위와 같이 나온다. https://github.com/hmlio/vaas-cve-2014-6271 위 페이지를 참고하면 아래와 같이 나온다. 해서 curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" http://fun.ritsec.club:8008/cgi-bin/stats 위를 이용하면 나온다 stats에는 아무것도 없다..... flag를 찾아보면 숨겨 놨다..... RITS..