Exp1 PC平台逆向破解(5)M
改机器指令
直接修改程序机器指令,改变程序执行流程
操作思路
总思路
- 通过反汇编查找含有跳转指令的汇编行,修改该部分的机器代码使之跳转至getShell函数(其中getShell等函数地址也通过反汇编查询)
分布思路
反汇编查询相关指令行
- 【2】
- 【3】
- 【1】
- 【4】
- EIP:80484ba +d7ffffff= 80484ba-0x29正好是8048491(foo首地址)这个值
通过vi编辑器修改相应部分代码
- 【5】
- 退出编辑前记得将16进制转换为原格式 :%!xxd -r
执行程序,比较修改前后效果
【a】
若遇到如下情况,可参照此解决方案:【64位Kali无法顺利执行pwn1问题的解决方案 】
【6】
备注:更新源建议额外添加kali官方源
简单BOF注入
- 通过构造输入参数,造成BOF攻击,改变程序执行流
操作思路
总思路
- 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
分布思路
手动测试缓冲区长度
- 【b】
- 找到1234覆盖了返回地址
用getshell的地址覆盖返回地址
- 通过构造一个含16进制getshell地址的字符串文件,将字符串注入缓冲区
- (地址由反汇编查看)
- 【c】
注入shellcode
操作思路
总思路
- 注入一个shellcode并运行这段shellcode。
分布思路
准备一个shellcode
\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\
修改设置
- 【d】
构造payload
- 结构:anything+retaddr+nops+shellcode
- 首先输入攻击命令
- 找到进程号32549
- 【e】
- 用gdb进行调试,找到注入buf的内存地址
- 【f】
- 【g】
- 地址为0xffffd2f0
- 将地址改为0xffffd2f0
- 【h】
- 攻击成功
- 【i】
相关推荐
chensen 2020-11-14
lwnylslwnyls 2020-11-06
ATenhong 2020-10-15
yanzhelee 2020-10-13
佛系程序员J 2020-10-10
guojin0 2020-10-08
佛系程序员J 2020-10-08
bluewelkin 2020-09-16
wwzaqw 2020-09-04
zhongdaowendao 2020-09-02
favouriter 2020-08-18
奎因amp华洛 2020-08-15
一青年 2020-08-13
千锋 2020-08-10
nangongyanya 2020-08-09
dongxurr 2020-08-08
明天你好 2020-08-03
kyelu 2020-08-03
Ashes 2020-08-03