일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- cmd2
- Docker
- 클라우드가 뭐야
- tlqkf
- 포너블
- kotlin
- pwnable.kr
- SQLiteConstraintException
- cmd1
- 액션바 필요없숴
- 애너그램 그룹
- 6566
- java.lang.IllegalStateException
- 백준
- 블록체인
- 파이썬
- 나이순 정렬
- 클라우드란?
- UNIQUE constraint failed
- pwnable
- pwable.kr
- Make sure the Cursor is initialized correctly before accessing data for it.
- 코틀린
- Couldn't read row 0
- col -1 from CursorWindow
- 쏘큩
- 10814
- python
- 페니빙
- Drive-By-Download
- Today
- Total
푸르미르
pwnable.kr 4.flag 본문
리버싱에 관련있는 거 같은데
문제에서 하라는 대로 다운을 받았다.
다운 받은 파일에 대해 궁금하니 ls -al
해당 파일을 실행파일로 바꿔보자
chmod +x flag
실행파일로 바꾼 flag파일을 실행시켜보자
I will malloc() and strcpy the flag there. take it.
=> malloc,strcpy, flag를 그곳에 둘것이니 가져가시오.
이것으로 본다면 flag는 c언어로 작성된 파일이라는 것을 알 수 있다.
gdb로 flag 파일을 디버깅 하려했더니
No debugging symbols found in flag
=> 가능성 1. 파일 손상 2. 암호화 되어있어 읽지 못함
flag파일을 윈도우로 가져와서 freeware을 돌려보았다.
맨아래 unpack info에서 detected UPX! PACKER 이 문구로 보아 UPX 패킹으로 인해 어셈블리 코드를
읽어내지 못했던 것이였다.
UPX 패킹을 풀어보자.
UPX설치를 위해 내가 따라 했던 사이트.
zoomadmin.com/HowToInstall/UbuntuPackage/upx
STEP1까지 따라하다가 안되서 뻘짓하다가 이상한거 다운받았다.
https://github.com/upx/upx/releases
결국 여기가서 직접 다운받음...
다운 받고 압축 푸는 거 잊지 말긔
flag 파일 mv 명령어로 upx 파일 안에 넣어주구~
terminal에서 해당 파일의 위치로 가서 ./upx flag 해주면 upx패킹이 풀린다. (언패킹)
자 다시,
gdb로 파일을 분석해보자.
gdb flag해주고
disas main이라 쳐주면, => main 분석
드디어 어셈블리코드!!!
flag파일의 주소는 0x6c2070
flag를 알아내었다.
답은 flag: UPX...? sounds like a delivery service :)
'SECURITY > pwnable' 카테고리의 다른 글
pwnable.kr 6.random (0) | 2021.04.06 |
---|---|
pwnable.kr 5.passcode (문제 파악) (0) | 2021.03.31 |
pwnable.kr 3.bof (2) | 2021.03.24 |
pwnable.kr 2.collision (0) | 2021.03.24 |
pwnable.kr 1. fd (2) | 2021.03.22 |