728x90
1. 문제
1) mitigation 확인
뭐 이렇다
2) 문제 확인
바이너리를 실행시키면 쉘코드를 입력하라고 한다. 아무렇게 치면 세그 폴트가 뜬다
3) 코드흐름 파악
seccomp()함수가 있다. 이건 전에 HackCTF pzshell 풀때 공부했던거다. 따라서 저 함수 때문에 execve같은 syscall은 사용 불가하고 open, write, read 정도만 사용 가능할 것이다.
read로 입력을 받는다. shellcode 변수가 아마도 함수 포인터로 설정되어있어서 6라인에서 쉘코드가 실행된다.
2. 접근방법
현재 로컬에서만 문제를 풀수 있다. [HackCTF] pzshell 문제 풀때 처럼 처음에 시도했다. 단지 로컬이므로 임의로 내가 현재 디렉토리에 flag.txt 라는 파일을 만들고 파일 이름부터 출력될수 있도록 하였다.
- open으로 '.' 열기
- getdents 이용해서 open한 파일 읽어서 저장
- write로 저장한 내용 출력
결론은, 1번으로 open까지 잘되서 fd=3 이 나오는걸 확인했지만, 왠지 모르게 2번 getdents syscall 실행할때 에러가남. getdents syscall이 호출되면 eax에 읽은 크기가 저장되야 하는데, 시발 왠지 모르게 음수가 들어감.
고로 그냥 shellcraft 이용해서 대충 풀었다..
3. 풀이
최종 익스코드는 다음과 같다
4. 몰랐던 개념
- none
728x90
'워게임 > Hitcon training' 카테고리의 다른 글
[Hicon training] LAB 6 (0) | 2020.04.14 |
---|---|
[Hicon training] LAB 5 (0) | 2020.04.14 |
[Hicon training] LAB 4 (0) | 2020.04.13 |
[Hicon training] LAB 3 (0) | 2020.04.13 |
[Hicon training] LAB 1 (0) | 2020.04.13 |