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

BUUCTF ciscn_2019_n_8 wp

1.使用checksec命令查看文件的保护机制开启情况:

显示STACK CANARY 、NX 、PIE 均开启 ,说明此题 非常难 或者只是 “下马威” 而已。

2.利用IDA静态分析:

main函数中直接出现了system("/bin/sh");,且该命令调用条件是(*(_QWORD *)&var[13] == 17LL),即从数组 var的第14个元素开始,连续8字节内存所存储的64位整数值等于17。

表达式分解:​

  • var[13]: 这表示数组 var的第14个元素(索引从0开始)。

  • &var[13]: 使用取地址运算符 &获取 var[13]内存地址​。

  • (_QWORD *)&var[13]: 这是一个强制类型转换。它将获取到的地址(原本可能是指向某种类型的指针,比如 char*int*)强制转换为 _QWORD *类型的指针。_QWORD通常表示一个 ​64位(8字节)​​ 的无符号整型(类似于 unsigned long longuint64_t),常见于Windows或底层编程。

  • *(_QWORD *)&var[13]: 这里的 *解引用运算符。它访问刚才转换得到的 _QWORD *类型指针所指向的内存地址,并将该地址开始的 ​8个字节​ 的数据解释为一个 _QWORD类型的值。

  • == 17LL: 这将解引用得到的 _QWORD值与 17LL进行比较。LL后缀表示这是一个 long long类型的常量(通常也是64位整数)。】

再向上分析可知程序首先利用 scanf 将数据读入var,没有限制输入长度的 scanf 便是突破口。但是,我们并不知道var的实际构造:长度和类型,所以无法得知如何输入可以满足(*(_QWORD *)&var[13] == 17LL),那么接下来便要寻找 var 的定义。

——通过双击 var 可以跳转到相关.bss段:

这便给出了var的明确信息:

  1. 变量类型与大小​:

    • _DWORD var[15]表明 var是一个包含15个双字(DWORD)的数组,每个 DWORD 占 ​4 字节​(32位)。

    • 因此,var的总大小为 ​15 × 4 = 60 字节

    • 这在内存中是一块连续的存储空间,可用于存放整数或其他32位数据。

  2. 存储位置与属性​:

    • 位于 ​.bss​(bss:00004060),这意味着 var未初始化的全局变量或静态变量​(程序加载时自动初始化为0)。

    • public var表明该变量是全局可见的(可能被多个函数访问)。

  3. 偏移计算(关键点)​​:

    • 代码 *(_QWORD *)&var[13]试图从 var[13]开始读取8字节(QWORD)。

    • var[13]是数组的第14个元素(索引从0开始),偏移为 ​13 × 4 = 52 字节​(从 var起始地址算起)。

    • 因此,*(_QWORD *)&var[13]会读取 ​偏移52到59字节​ 的数据(共8字节)作为一个64位整数。

3.编写python脚本:

通过以上分析,我们的payload的目标就是让输入到相对于var[0]​偏移52到59字节​的数据可被识别为long型的17:

var 本身类型规定每个元素占4字节,而目标数据读取8字节,那么可以考虑p32()和p64()的搭配。

p32()p64()的函数本质是 ​pwntools​ 提供的打包函数,用于将整数按指定字节序转换为字节流。p32(数值)生成 ​4字节​ 数据 (32位),p64(数值)生成 ​8字节​ 数据 (64位)。在32位的程序中使用p64() 并不冲突】

from pwn import *
r = remote("node5.buuoj.cn", 26184)# 先利用p32()填满前13个元素
# 再利用p64()注入目标数据
offset = 13 
payload = p32(17) * offset + p64(17)r.sendline(payload)
r.interactive()
4.获取flag:

system 函数中调用的是 "/bin/sh" ,仅让我们获取了控制权,所以我们需要搭配 ls(显示子目录)和 cat(读取)命令获取flag。

http://www.dtcms.com/a/396380.html

相关文章:

  • 静态网站做一单多少钱联盟或专业团体的官方网站的建设
  • 猜艺士科技网站建设坑梓网站建设咨询
  • 模仿ios系统的html网站合肥建设工程网
  • 高端大气上档次的网站招聘网站开发方案doc
  • 品牌商标购买网站wordpress过滤显示插件
  • 厦门网站建设制作店面设计费计入什么科目
  • 小红网站建设软件技术是干嘛的
  • 南宁网站建设人才招聘人物摄影网站
  • 网站建设目标是什么dw企业网站设计
  • 做中考试卷的网站wordpress广告先显示
  • 网站色哦优化8888闽侯县住房和城乡建设网站
  • LangGraph:记忆
  • 网站推广怎么样wordpress水印图片插件
  • 公司自己的网站怎样做杭州网站建站
  • 做网站学哪种代码好开家网络公司需要多少钱
  • 织梦网站移动化宁波网站网站建设
  • 根据颜色找网站宁波网站制作定制
  • 织梦cms手机网站昆钢建设集团网站
  • 泉州网站建设平台素材
  • 电脑网站转换手机网站怎么做公司logo设计图片欣赏
  • C++基础:(二)C++入门知识介绍(下)
  • Pyside6 + QML - 信号与槽07 - 一个函数被多个信号触发
  • 网站建设经费的请示中国建设门户网登录入口
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(35):文法運用10课2+文法と使いえ方3)
  • 通过新闻学习日语,标题《ビール各社 厳しい暑さでも育つホップの栽培技術開発など進む》
  • 中国建设银行章丘支行网站做网站排名有用吗
  • 《模拟电子技术》之结型场效应管
  • 【Jenkins】配置到实战教程
  • 国之珍微站个人网站wordpress渗透
  • 有那些网站可以做推广企业网站建设 厦门