티스토리 뷰

포너블 문제를 풀다가 exploit를 할때 항상 같은 틀의 코드를 반복하는 모습이 바보같아서

pwnable exploit form을 만들어봤어요.

전반적인 틀은 youngsouk-hack.tistory.com/76  해당 블로그에서 가져왔습니다.

 

마찬가지로 alias를 이용해서 command처럼 두고 사용하시면 편할 것 같습니다 :)

 

벌도로 원하는 가젯 + 함수들은 list에 추가해주시면 됩니다.

그 예로 libc_start_main함수나, syscall 가젯들 추가해주면 그것도 뽑아올 수 있겠네요. +_+

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
47
48
49
50
51
52
53
54
55
56
57
58
import sys
from pwn import *
 
if len(sys.argv) < 2:
    print "usage : ex.py [filename]"
    exit()
 
original = str(sys.argv[1])
py_name = original + '.py'
= open(py_name, 'w')
= process('/bin/sh')
 
command = 'objdump -d %s | grep "'  % original
obj_list = ['puts''printf''write''fputs''read''fgets''gets''scanf']
 
for i in obj_list:
    command += i + '\|'
command = command[:-2+ '"'
p.sendline(command)
 
sleep(0.5)
obj = p.recv(1000)
 
func = ''
 
for i in obj_list:
    if(obj.find(i)>-1):
        func += '%s_plt = e.plt["%s"]\n' % (i, i)
        func += '%s_got = e.got["%s"]\n\n' % (i, i)
 
gadget = ''
gadget_list = [['pop rdi''prdi'], ['pop rsi''prsi'], ['syscall''syscall']]
 
for i in gadget_list:
    p.sendline('ROPgadget --binary ./'+original+' | grep "' + i[0+ '"')
    sleep(0.3)
    rop_gadget = p.recvline(timeout=0.5)
    ifnot(rop_gadget) ):
        continue
    rop_gadget = rop_gadget.split(':')
    gadget +=  i[1]+' = ' + rop_gadget[0]+'\n'
 
gadget += '\n\n'
 
content = 'from LibcSearcher import *\n'
content += "from pwn import *\n\n"
 
content += "context.log_level = 'debug'\n\n"
 
content += "p = process('./" + str(sys.argv[1]) + "')\n"
content += "#p = remote('',)\n"
content += "e = ELF('./" + str(sys.argv[1]) + "')\n"
content += "l = e.libc\n\n"
content += func + gadget
 
content += "p.interactive()"
 
f.write(content)
 

zshrc set

vi ~/zshrc

해주고 해당 파일안에다가

alias (원하는 command 명) = "python (절대주소)"

해주면 됩니다.

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