buuctf-pwn PWN4(双引号的转义缺陷)题解(学习过程持续更新)

本人也是在自学过程,主要目的也是记录学习过程,有些地方做的不太好,都是按照自己理解进行讲解的(不专业),欢迎大家指出问题

此处我将文件命名为pwn4

checksec pwn4 查看一下保护机制

可以看到这是一个64-bit的文件,canary和NX保护开启

将文件拖入ida64,按F5将汇编代码转换成c语言代码,得到

双击sub_4008C7(),进入sub_4008C7函数

可以看到这是一个菜单,当我们选择v3=2会进入echo()函数,我们做题只需要用到这个选项

双击echo(),进入echo()函数

echo \"%s\" -> echo "%s"

​​​​【\" → 转换成字符 "(在 C 里,双引号 " 是用来标记字符串开头结尾的,你不能直接写 " 放在字符串里面。 想在字符串内部输出一个双引号字符,必须转义:\")】

如果没有双引号我们只需要输入;/bin/sh(;是命令分隔符)

但是由于双引号的存在,";"会失去它的意义,所以我们先写一个 " 闭合前面的双引号,逃出引号

返回虚拟机

nano exp.py

先发送我们的选择'2',然后发送'";/bin/sh',构造system("/bin/sh"),获得shell

保存退出

python3 exp.py

cat flag

此题完

相关推荐
小小测试开发7 小时前
安全评测得分 0.9556 掉到 0.3257,只改了 top_k 和 prompt_style 之外的题面比例
人工智能·安全·prompt
遇印记8 小时前
传输层,网络层
运维·服务器·网络·windows·学习
Navigator_Z9 小时前
LeetCode //C - 1291. Sequential Digits
c语言·算法·leetcode
clorinda9 小时前
PyQt5学习:从界面搭建到与机器学习实战
学习
亚川楼宇自控系统数据中心厂家9 小时前
事故风机监控:守护机房电池间等特殊区域的安全底线
大数据·安全
hz5678910 小时前
局域网会议系统如何搭建:从网络环境到软件选型的完整指南
安全·实时音视频·信息与通信·政务
看着博客敲代码10 小时前
nikto 扫描报 0 host(s) tested 与 Web 服务器漏洞扫描用法
安全·web安全·网络安全
欣欣之王来了11 小时前
Vue3项目脚手架:Vite vs Vue CLI怎么选?
前端·学习·架构·项目·vue3教程
kaixin_啊啊11 小时前
【零基础学AI】第 7 章——让 AI 辅助学习和办公
人工智能·学习
信奥卷王11 小时前
[GESP202506 六级] 学习小组(含视频)
学习