AWD训练赛QWQ

使用D盾啥都没扫到,河马倒是扫了挺多东西,但是代码审计能力太差,不怎么看得懂

一般这里我们如果扫到那种很明显的一句话木马,直接删掉,爆出对手IP后尝试利用

代码审计能力不好,只能从网站页面入手

是一个登录界面,尝试一些弱口令登录,发现不行

找到登录界面的文件login.php,

检索一些关键字(password、email)

这里并没有发现什么有用信息

继续去找和这个文件相关的文件,容易发现它还包含了两个文件

经过查看head.php和connect.php,最终在后者发现了数据库远程连接的账号密码

$username = "cms";

$password = "eb0d39d2931c480f";

使用命令进行mysql远程连接

mysql -h47.104.192.166 -P3306 -ucms -peb0d39d2931c480f

 

连上之后我们查它的数据库和表

最后在cms库下的users表里发现了页面的登录邮箱和密码

admin@bugku.com
21232f297a57a5a743894a0e4a801fc3

 这里密码进行了加密,解md5得到密码为 admin

在cms库下有一个flag表,我们尝试查它的具体内容,并没有flag

先去登录网站页面

进去之后很容易发现存在文件上传漏洞

其实我们第一时间是应该修改自己的登录密码,防止被别人改了,每个队伍的账号密码是一样的

但是在网页上似乎改不了

我们可以在数据库里进行修改

update cms.users set password=password('testtest') where email='admin@bugku.com';

改了之后最好刷新一下配置

flush privileges;

现在别人就无法使用默认的密码对我们的网站进行登录

但是这里还有个问题,别人依然可以远程连接我们的数据库来查看我们的users内容

也就是说,我们还需要修改数据库远程连接的密码

而那个密码并不在cms库,而是在mysql数据库下的user表

修改密码的命令

update mysql.user set password=password('新密码') where user='用户名';

 一定注意:

MySQL 5.7.6版本以下,才能使用此方法来修改密码,从MySQL 5.7.6版本起,user表使用authentication_string列代替之前版本中的password列来存储密码,并且它删除了password列。

我们使用最新的列名进行修改 

update mysql.user set authentication_string=password('新密码') where user='用户名';

先查一下它原本的信息(登录IP,用户名,密码)

select host,user,authentication_string from mysql.user;

修改cms的密码,假设改为111111

update mysql.user set authentication_string=password('111111') where user='cms';

修改成功后记得刷新配置

再次尝试使用默认密码连接数据库,发现已经不行了

 使用新修改的密码111111,连接成功

刚才查出的host其实还存在一个问题

如果Host=%,表示所有IP都有连接权限。

虽然我们已经修改了连接的密码,但是保险起见,我们最好还是再完善一下 

这里不能直接删掉这个%,因为删掉的话cms这个用户就彻底无法连接了,包括你自己

我们应该将%改为localhost

update mysql.user set host=localhost where user='cms';

修改后同理需要刷新配置

这样只要不是本地的ip(这里指的是非队伍白名单里的ip)都无法使用cms用户来远程连接我们的数据库了,当然更不能查看到我们修改后的网站登录密码。

接下来我主要再讲一下前面提到的文件上传漏洞利用,其实在awd里面我们更应该做好的是防护。

爆出对手的域名之后,使用ping命令就可以拿到对应的ip

我先上传的是普通一句话木马,成了,没有任何绕过

连上之后也很容易找到flag

 

之后直接传不死马

关于不死马的原理利用和处理方法可以参考我另一篇博客:

http://t.csdnimg.cn/yU0vb 

同样上传成功

可以看到,尽管我删除了它,但是它依然存在,这就是不死马的魅力

不死马隐蔽性也比较好,只要对手还没处理掉这个不死马,我们就能通过这个shell拿flag

还有一个问题就是,虽然在数据库里select查不到flag,但我们通过系统命令其实可以cat到flag

但是这是一个错误的flag,不知道是完全错误的还是进行了加密的,有大佬可以告知一下原因吗?

这里cat出来的flag和蚁剑里面获取的flag内容不一样 ,很奇怪

此外,在比赛途中我们也要经常查看一下有没有其他用户登录了我们的服务器,以及有没有新产生的什么可疑文件:

如果有其他用户登录直接将它踢掉,发现被上传了木马直接删掉,如果遇到不死马就写脚本,基于条件竞争来克制,具体的awd常见防御操作请参考我另一篇博客:

http://t.csdnimg.cn/QKR2L 

我是Myon,后续会继续给大家更新CTF、AWD,网络安全、渗透测试等相关的内容,

喜欢的可以关注点赞支持一下,谢谢!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Js基础——事件流

引入 当浏览器发展到第四代时( IE4 及 Netscape Communicator 4 ),浏览器开发团队遇到了一个很有意思 的问题:页面的哪一部分会拥有某个特定的事件?要明白这个问题问的是什么,可以想象画在一张纸上的一组…

一个非常简单的变分量子分类器 (VQC)

一、说明 在之前的帖子(这里和这里)中,我已经开始谈论 QML,为什么以及如何学习,从现在开始,我将开始分享我的研究和发现,到目前为止,这些都是非常基本的。 二、实验概述 今天&#…

【C++设计模式之命令模式:行为型】分析及示例

简介 命令模式是一种行为型设计模式,它将请求封装成一个对象,从而使不同的请求可以被参数化、队列化或记录化。这种模式允许请求的发送者和接收者进行解耦,同时提供更高的灵活性和可扩展性。 描述 命令模式的核心思想是通过命令对象来封装…

Mysql内置函数、复合查询和内外连笔记

目录 一、mysql内置函数 1.1.日期函数 1.2.字符串函数 1.3.数学函数 1.4.其他函数 二、复合查询 2.2 自连接 2.3 子查询 2.3.1单行自查询 2.3.2 多行子查询 2.3.3 多列子查询 2.3.4在from子句中使用子查询 2.3.5合并查询 三、表的内连和外连 3.1内连接 3.2外连接…

LabVIEW利用以太网开发智能液位检测仪

LabVIEW利用以太网开发智能液位检测仪 目前,工业以太网接口在国内外的发展已经达到了相当深入的程度,特别是在自动化控制和工业控制领域有着非常广泛的应用。在工业生产过程中,钢厂的连铸机是前后的连接环节,其中钢水从大钢包进入…

【云笔记篇】Microsoft OneNote笔记分区数据删除方法

【云笔记篇】Microsoft OneNote笔记分区数据删除方法 Microsoft OneNote删除分区数据需要在网页端操作才能彻底删除—【蘇小沐】 1、实验 系统版本Windows 11 专业工作站版22H2(22621.1485);OneNoteOneNote 2016(版本 2303 Build 16.0.162…

苹果系统_安装matplotlib__pygame,以pycharm导入模块

为了更便捷、连贯的进行python编程学习,尽量在开始安装python软件时,将编辑器、模块一并安装好,这样能避免以后版本冲突的问题。小白在开始安装pycharm、pip、matplotlib往往会遇到一些问题,文中列示其中部分bug,供大家…

BLIP2模型加载在不同设备上

背景 现在大语言模型越来越大,占用的内存越来越多,这导致内存较小的设备无法体验大模型的效果。transformer提供了将一个大模型分别加载在gpu和cpu上的方法。 加载方法 以多模态模型BLIP2为例,将其语言模型放在gpu上,其余部分放…

C++ day2

自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <ios…

创作2周年?浅记一下~

前言&#xff1a; 最近确实有点缺乏去更新博客的动力&#xff0c;一晃两年过去了&#xff0c;其实也是我新入职公司的两年&#xff0c;两年虽然不长&#xff0c;但是确实发生了太多事情值得去记录下来... 机缘 说是机缘也不是算是&#xff0c;第一次写博客是刚好在CSDN里面查资…

MyBatisPlus(十一)包含查询:in

说明 包含查询&#xff0c;对应SQL语句中的 in 语句&#xff0c;查询参数包含在入参列表之内的数据。 in Testvoid inNonEmptyList() {// 非空列表&#xff0c;作为参数List<Integer> ages Stream.of(18, 20, 22).collect(Collectors.toList());in(ages);}Testvoid in…

四位十进制频率计VHDL,DE1开发板验证,仿真和源码

名称&#xff1a;四位十进制频率计VHDL&#xff0c;DE1开发板验证 软件&#xff1a;Quartus 语言&#xff1a;VHDL 要求&#xff1a; 数字频率计设计要求 1、四位十进制数字显示的数学式频率计,其频率测量范围为10~9999khz,测量单位为kHz。 2、要求量程能够转换。即测几十…