我读到过,要想成功地返回lib-c攻击,攻击者应该把命令的地址(例如 "bin/sh")准确地存储在堆栈上,然后再返回到'system'函数(例如)的地址。
所以'system()'函数读取该地址作为其'参数'并执行该命令。但是现在在反汇编了一个调用system()的程序后,我注意到它并没有使用堆栈来获取那个字符串的地址("bin/sh")。相反,该地址被存储在EDI或RDI寄存器中。只要攻击者不能访问这些寄存器,就有可能进行这样的攻击?
![]() |
傻傻的佛珠 · Spring Boot Features· 1 年前 · |
![]() |
紧张的铅笔 · SQL:insert ...· 1 年前 · |
![]() |
有腹肌的饭卡 · IntelliJ ...· 1 年前 · |
![]() |
爱吹牛的海龟 · ubuntu调用OpenCvSharp4 ...· 1 年前 · |
![]() |
爱吹牛的吐司 · 数据库查询前10到20条数据Mysql ...· 2 年前 · |