2024Dragon Knight CTF复现web

2024-05-31 23:52
文章标签 web ctf 复现 knight 2024dragon

本文主要是介绍2024Dragon Knight CTF复现web,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

穿梭隐藏的密钥

首先看看页面的源代码,但是发现f12和鼠标右键都被禁用了

用ctrl+u查看,发现一个可疑页面

访问看看,发现还是只有一张图,查看源代码发现提示

扩展:

Fuzz:Fuzz是一种基于黑盒的自动化软件模糊测试技术,简单的说一种懒惰且暴力的技术融合了常见的以及精心构建的数据文本进行网站、软件安全性测试。

通过字典爆破向目标发送随机或精心构造的数据作为计算机输入,来触发非常规反馈以达到检测漏洞的目的。

Fuzz的核心思想:

  • 目录Fuzz(漏洞点)
  • 参数Fuzz(可利用参数)
  • PayloadFuzz(bypass)

常用工具:御剑、dirsearch、Arjun等

通过提示我们可以得知可能需要参数爆破,但是发现页面为图片,bp抓包也没发现能够爆破的位置 。猜测可能是需要爆破url,用御剑扫描

访问secret.php,发现需要本地(127.0.0.1)才能通过

用bp抓包,构造xff、client_ip、referer发现都不行

尝试ssrf伪造

?参数=http://127.0.0.1/secret.php

但是这里不知道参数是啥所以用Arjun爆破url

得到参数为shell

构造payload:

c3s4f.php?shell=http://127.0.0.1/secret.php

发现虽然成功了但是发现127.0.0.1并不行,可能是被正则禁用了

查看了一下官方的wp得知可以通过sudo.cc绕过

扩展:

sudo.cc指向IP地址127.0.0.1。A记录就是域名指向ip地址,然后可以通过A记录转向访问
类似的还有safe.taobao.com,114.taobao.com,test.xiaodi8.com等

成功得到key和下一关的入口

访问challeng3.php并且POST传参key=MSIBLG

成功进入下一关

// Challenge 1
if (isset($_GET['DrKn'])) {$text = $_GET['DrKn'];if(@file_get_contents($text) == $key) {echo "有点东西呢"."</br>".$key1."</br>";} else {die("貌似状态不在线啊(╯_╰)</br>");}
} 
//GET传参入一个Drkn=MSIBLG,得到key1

 构造payload:

cha11eng3.php?DrKn=data:text/plain,MSIBLG

key1=M_ore.8

// Challenge 2
if (isset($_GET[$key1])) {$damei = $_GET[$key1];if (hash("md4", $damei) == $damei) {echo "又近了一步呢,宝~"."</br>".$key2."</br>".$key3;} else {die("达咩哟~");}
} 
//md4弱比较得到key2

参考链接:[第四届-强网杯]:Funhash

科学计数法:

plaintext : 0e001233333333333334557778889
md4 hash : 0e434041524824285414215559233446

构造payload:

cha11eng3.php?DrKn=data:text/plain,MSIBLG&M_ore.8=0e001233333333333334557778889

 发现并没有第二层的回显猜测有可能是_划线被禁用了,用[绕过

payload:

cha11eng3.php?DrKn=data:text/plain,MSIBLG&M[ore.8=0e001233333333333334557778889

key2=wtf,key3=mC

// Challenge 3
if (isset($_POST[$key2]) && isset($_POST[$key3])) {$user = $_POST[$key2];$pass = $_POST[$key3];if (strlen($user) > 4 || strlen($pass) > 5) {die("还得练");}if ($user !== $pass && md5($user) === md5($pass)) {  echo "还不错哦"."$flag";}else {die("nonono") ;}}
//POST传入的key2的值的长度超过4或key3的值的长度超过5则输入"还得练"
//进行md5强比较得到flag

构造payload:

wtf[]=1&mC[]=2

得到flag

EzLogin

打开源代码查看发现提示有一个注册页面

访问

输入admin,123456尝试发现用户已存在

说明有一个admin用户,回到登入界面用bp抓包爆破密码发现用啥字典都爆不出来,猜测可能不是弱口令爆破换个思路。

cookie中一般会有用户的重要信息,用Hackbar查看一下网页的cookie

发现TOKEN=TOKEN=65794a3163325679626d46745a534936496d78706269497349434a306232746c62694936496d4d354d7a45324f5759785a574935596d55334d6a51325a6a6b354d4459354d4749315a545932596a4a6b49697767496d6c7a5832466b62576c75496a6f7766513d3d

放入Cyberchef里解密一下

可以看到注册的用户lin(在注册界面尝试时注册的)已经被放入cookie中,token的值是用md5加密的用户名,is_admin是判断用户是否为admin为0时登入则会显示“you are not admin!!!”

这里我们将0改为1并重新加密后添加到TOKEN中(先base64后16进制转换)

TOKEN=65794a3163325679626d46745a534936496d78706269497349434a306232746c62694936496d4d354d7a45324f5759785a574935596d55334d6a51325a6a6b354d4459354d4749315a545932596a4a6b49697767496d6c7a5832466b62576c75496a6f7866513d3d

再次登入,登入成功

尝试注册新的用户名但是发现登入还是这个界面,TOKEN值没变

改变TOKEN值,将用户名改变加密后再次带入TOKEN再次访问,发现页面变了

再尝试几次都是一样的,只有改变TOKEN里的用户名界面才会改变

猜测这题可能需要sql盲注(只有正确和错误界面),注入点在TOKEN里的用户名里

所以我们可以写个脚本注入(这里直接用官方wp里的脚本了)

这篇关于2024Dragon Knight CTF复现web的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019404

相关文章

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

构建高性能WEB之HTTP首部优化

0x00 前言 在讨论浏览器优化之前,首先我们先分析下从客户端发起一个HTTP请求到用户接收到响应之间,都发生了什么?知己知彼,才能百战不殆。这也是作为一个WEB开发者,为什么一定要深入学习TCP/IP等网络知识。 0x01 到底发生什么了? 当用户发起一个HTTP请求时,首先客户端将与服务端之间建立TCP连接,成功建立连接后,服务端将对请求进行处理,并对客户端做出响应,响应内容一般包括响应

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

(javaweb)mysql---DDL

一.数据模型,数据库操作 1.二维表:有行有列 2. 3.客户端连接数据库,发送sql语句给DBMS(数据库管理系统),DBMS创建--以文件夹显示 二.表结构操作--创建 database和schema含义一样。 这样就显示出了之前的内容。