当前位置: 首页 > news >正文

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里的脚本了)

相关文章:

  • 11.1 排序算法
  • C++中的智能指针类别
  • 汽车MCU虚拟化--对中断虚拟化的思考(1)
  • 利用GNSS IMU集成提高车道级定位精度
  • Blueprints - Collision Presets相关
  • 4月啤酒品类线上销售数据分析
  • Java-集合基础
  • LeetCode # 1070. 产品销售分析 III
  • Python列表
  • RustDesk服务器
  • 整理GTX收发器示例工程(高速收发器十一)
  • 医院该如何应对网络安全?
  • Redis缓存(笔记一:缓存介绍和数据库启动)
  • C. Turtle and an Incomplete Sequence
  • 一维时间序列信号的改进小波降噪方法(MATLAB R2021B)
  • [case10]使用RSQL实现端到端的动态查询
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [数据结构]链表的实现在PHP中
  • 【技术性】Search知识
  • canvas 绘制双线技巧
  • co模块的前端实现
  • ES2017异步函数现已正式可用
  • JavaScript的使用你知道几种?(上)
  • Java应用性能调优
  • magento2项目上线注意事项
  • PAT A1050
  • Unix命令
  • vue-cli在webpack的配置文件探究
  • 解析 Webpack中import、require、按需加载的执行过程
  • 解析带emoji和链接的聊天系统消息
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 手机端车牌号码键盘的vue组件
  • 提醒我喝水chrome插件开发指南
  • 微服务框架lagom
  • 怎样选择前端框架
  • AI算硅基生命吗,为什么?
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #Linux(权限管理)
  • #nginx配置案例
  • (0)Nginx 功能特性
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C++哈希表01)
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (九十四)函数和二维数组
  • (理论篇)httpmoudle和httphandler一览
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (已解决)vscode如何选择python解释器
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包