首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ROP-Ret2csu详解

    利用原理 当在x64环境下函数的参数传递凑不齐类似“pop rdi;ret”/“pop rsi;ret”/“pop rdx;ret”等3个传参的gadgets时,就可以考虑使用_libc_csu_init...     rbx, 1 #此时,rbx会加1,然后和rbp对比 cmp     rbp, rbx #payload中只需要将rbp置为1,比较结果为非零值,便不会发生跳转,使程序继续执行到ret...jnz     short loc_5555555546F0 这两段代码运行后,会将栈顶指针移动56字节 所以一般要在后面加上56个字节的数据才可以连接到到ret...利用思路 当在x64程序中找不到rdx、rsi、edi时,再使用此方法 确定gadget1、gadget2的地址及顺序 构造初步ret2csu payload函数 ---- 例题 easy_csu...main'] print "write_got:"+ hex(write_got) print "main_Addr:"+ hex(main_addr) def csu(r12,r13,r14,r15,ret_addr

    1.6K20

    ROP_Ret2Shellcode-32实例

    ROP_Ret2Shellcode-32实例 一、相关知识 之前我们说过ret2text漏洞是依赖于程序中存在执行 system("/bin/sh")的函数,那么如何解决ret2text的局限性 ret2textshellcode...没有执行shell的函数,没有开启NX保护 传入自定义的shellcode ret2libc 开启NX(可写的不可执行) 使用libc函数,leak libc + ROP 什么是shellcode...(DEP)数据执行保护:可写的不可执行,可执行的不可写 二、实例教学 实例下载:提取码:8189 step1:checksec 检查保护 我们发现没有NX和canary保护 这时我们可以用ret2text...护着ret2shellcode step2:查看是否存在系统函数 -d 显示汇编语句 grep system 查找是否存在system函数,但是这里显然是没有的,所以只能用ret2shellcode

    10010

    (十)汇编语言——CALL和RET指令

    (十)汇编语言——CALL和RET指令 文章目录 (十)汇编语言——CALL和RET指令 CALL指令 功能 寄存器 内存 段间转移 返回指令 ret retf 实例 MUL指令 模块化程序设计...返回指令 我们这里主要介绍ret指令和retf指令。 ret 用栈中的数据,修改IP的内容,从而实现近转移,相当于 pop IP。...retf 用栈中的数据,修改CS和IP的内容,从而实现远转移; 实例 这个程序就是计算一下ax的平方,但是值得注意的就是,这里我们用到了栈段,因为我们的call 指令和ret指令需要入栈和出栈操作...聪明的小伙伴们应该想到了,调用我们刚刚介绍的CALL 指令和RET指令即可。但是呢,需要我们去解决两个问题,那就是参数和返回值的问题,我们来看一下这两个问题我们如何来解决。...子程序开始: 子程序中使用的寄存器入栈 子程序内容 子程序使用的寄存器出栈 返回(ret、retf) capital: push cx push si change: mov cl,[si]

    1.1K30
    领券