목록2024/05/15 (4)
Iriton's log
Description: 이 문제는 작동하고 있는 서비스(ssp_001)의 바이너리와 소스코드가 주어집니다.프로그램의 취약점을 찾고 SSP 방어 기법을 우회하여 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요."flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다. 취약점 분석#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); a..
프로그램을 실행해 보니 그림판처럼 사용자가 그림을 그릴 수 있다.Check 버튼을 누를 때 Wrong 이라고 뜨는 걸 보니,Flag와 연관이 있을 것이라 생각하고 올리디버거를 열었다. Wrong 문자열이 사용되는 함수로 이동하여 살펴 보기로 했다. 보니까 Wrong 메세지 박스를 띄우기 전에 어떤 분기문에 의해 점프한 것을 볼 수 있다.DL과 BL을 비교하는 비교연산자 CMP가 보인다.그럼 이 DL과 BL은 어디서 온 무슨 값인지 알아 보기 위해 코드를 역순으로 읽어보며 파헤쳐 봤다. 여기서 MOV 명령어로 오른쪽 값을 왼쪽에 넣는다. 즉 ECX와 EAX 값에 초점을 두면 된다.코드를 살펴 본 결과 EAX와 ESI의 대조를 추측했지만 그건 너무 복잡해져서 구글링을 해 봤다.그 결과 PEview가 필요해서..
1분 재생만 되는 MP3 Player를 1분 이상 재생시켜서 flag를 얻어야 한다. PEiD로 열어 보니 따로 패킹되진 않았다. 프로그램을 실행시켜서 원하는 MP3 파일을 열었더니 1분이 됐을 때 팝업창이 떴다. 이제 올리디버거로 파일을 열어 봐야겠다. 근데 올리디버거로 프로그램을 실행시켜서 MP3 파일을 열려고 할 때 프로그램이 정지되는 현상이 있었다.백신프로그램이랑 충돌해서 그렇다고 한다. 백신 프로그램을 꺼도 프로그램이 정지되는 걸 보아 코드나 연동 부분에 문제가 생긴 듯하다.그래서 open을 사용하지 않고 직접 경로를 입력해 주고 재생하였다.이렇게 했더니 이번엔 디버거가 멈췄다... 어쩔 수 없이 구글링 해서 다른 사람들이 찾아둔 주소로 이동해서 문제를 풀었다. CMP로 60000ms(올리디버거..
*본 포스트는 Dreamhack - Systemhacking Lecture 을 참고하여 작성되었습니다.분석보호기법 탐지보호기법을 파악할 때 주로 사용하는 툴이 checksec다.pwntools를 설치할 때 같이 설치되어 ~/.local/bin/checksec에 위치한다.checksec을 사용하면 간단한 커맨드 하나로 바이너리에 적용된 보호기법들을 파악할 수 있다.만약 해당 커맨드를 사용했을 때 command not found 에러가 발생한다면, ~/.bashrc 파일의 마지막 줄에 다음 줄을 추가한다.export PATH="$HOME/.local/bin/:$PATH" 취약점 탐색1. buf의 주소이 예제에서는 실습의 편의를 위해 buf 의 주소 및 rbp 와 buf 사이의 주소 차이를 알려준다.print..