일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 신경망
- sgd
- C언어
- 순전파
- 코딩
- 책
- 소프트맥스 함수
- HTML
- 파이썬
- PICO CTF
- PostgreSQL
- 기울기
- 리뷰
- FastAPI
- 딥러닝
- CTF
- 아파치
- Python
- Apache2
- AdaGrad
- 설치
- picoCTF
- 역전파
- Python Challenge
- 신경망 학습
- flag
- 백준
- PHP
- 오차역전파법
- 우분투
- Today
- Total
Story of CowHacker
Pwnable_Flag 본문
포너블 4번 문제를 풀어 볼것이다.
flag라는 4번문제, 아빠가 선물을 줬다는 글이랑 리버싱이라는 글과 바이너리가 필요하다는 글이 있었다.
또 나는 다운로드 링크를 통해 받은 flag라는 파일을 cat 으로 열어봤다.
깨진 글이 였다.
gdb로 열어봤다.
disassemble main 으로 main 구문을 어셈블리어로 볼려고 했는데 로드가 되지 않았다.
권한을 줘 봤다. 실행 권한이 없어서 그런가 싶어서 이다.
x, 실행권한을 준걸 확인하고,
음...똑같은 현상이였다.
이번에는 flag파일을 실행 시켜 봤다.
malloc이라는 함수에 플레그가 있는 듯 한 말이 떳다.
IDA프로그램으로 파일을 열어봤다.
main 구문도 없고 별 건질 건 없었다. 그래서 이 파일은 도대체 뭘까 해서 봤다.
구글링 결과 컨트롤 + 1 을 누르면 선택 창이 뜨는데 저기서 Strings를 보면 이 파일의 정체를 알수 있다고 했다.
이 파일은 UPX로 되있다는걸 알수 있었다.
UPX란 여러 운영체제에서 수많은 파일 포맷을 지원하는 오픈 소스 실행 파일 압축 프로그램이다.
압축 프로그램이니 압축을 풀어야 될꺼 같았다.
먼저 나는 UPX를 푸는 프로그램을 구글링 해봤다.
https://github.com/upx/upx/releases/tag/v3.95
upx/upx
UPX - the Ultimate Packer for eXecutables. Contribute to upx/upx development by creating an account on GitHub.
github.com
UPX푸는 프로그램을 다운할수 있는 사이트이다.
나는 젤 위에있는 파일을 다운받았다.
잘 다운 된걸 볼수 있었다.
tar.xz파일을 푸는 명령어는 tar -xvf 파일명 이다.
나는 tar -xvf upa-3.95-amd64_linux.tar.xz명령어로 풀었다.
파일이 생긴걸 볼수있었다.
flag를 풀기위해 새로 생긴 파일로 옮겼다.
flag가 성공적으로 옮겨졌다.
UPX로 열러는데 열리지 않았다.
구글링을 해본결과 옵션이 빠져있었다.
-d라는 옵션을 추가해 열어보았다.
성공적으로 언패킹 되었다.
이번에는 어셈블리어로 main을 볼수 있었다.
이제는 IDA로도 열어 볼려고 UPX파일로 들어가 윈도우 바탕화면에 옮겼다.
언패킹을 후 열어보니 아까랑은 다르게 많은 것들을 볼수 있었다.
main 부분을 보니 실행 했을때 글이 보였다.
그 글을 클릭해보니 위에 flag값이 보였다.
느낀점
뭔가 다른 문제들과는 다르게 이 문제는 압축 파일을 열어 보는 과정을 공부하는 느낌이였다.
UPX라는 파일을 알수 있었고, 또 그것을 열기 위해 어떤 작업을 해야하는지도 배웠다.
flag 라는 문제 답게 많은 ctf를 풀때 flag를 찾는 느낌 처럼 뭘 열어서 찾는 것이 비슷한 느낌을 받았다.
'공부 > Pwnable' 카테고리의 다른 글
Pwnable_Random (2) | 2020.07.24 |
---|---|
Pwnable_Passcode (0) | 2019.12.16 |
Pwnable_Bof (0) | 2019.11.29 |
Pwnable_collision (0) | 2019.11.24 |
Pwnable_fd (0) | 2019.11.20 |