2.7学习

news2025/2/11 9:44:54

crypto

buu-还原大师

仔细阅读题目,这里有一段字符串,但是其中有四个大写字母被替换成了‘?’,那么我们写脚本:首先将四个问号均换成26个大写字母并且组成不同的组合, 所以有四个循环让四个问号都遍历26个大写字母。然后将其进行md5加密,由于仅进行md5加密后的结果与我们的md5密文(十六进制)形式不符,所以要用一个hexdigest()转换,然后与题目所给的已知的密文前四位比对(由于md5加密的特性--细小的变化导致md5的值截然不同,所以仅前四位(已知的)比较就可以验证了),然后print出这个hex。

import hashlib
for i in range(65,91):
    for a in range(65,91):
        for s in range(65,91):
            str='TASC'+chr(i)+'O3RJMV'+chr(a)+'WDJKX'+chr(s)+'ZM'
            md5_str=hashlib.md5(str.encode())
            if md5_str.hexdigest()[0:4]=='e903':
                print(md5_str.hexdigest().upper())

  这就是结果,也是flag

西电ctf终端-古密-Augustine's Way

下载附件后用记事本打开,看到题目移位密码下面的是密文,想到移位第一个是凯撒

移位密码的工作原理:

  1.     选择一个移位数:加密前需要确定一个移位数 ( k ),( k ) 是一个介于 0 和 25 之间的整数(对于英文字母表而言)。
  2.     加密过程:

        对于明文中的每一个字母,根据移位数 ( k ) 将其在字母表中向后移动 ( k ) 个位置。
        如果字母移到字母表的末尾之后,则从字母表的开头重新开始计数。

     3.    解密过程:

        对于密文中的每一个字母,根据相同的移位数 ( k ) 将其在字母表中向前移动 ( k ) 个位置。

用bugku的在线工具枚举

西电ctf-古密Augustine's Way#2 

与上一题相关联,仍然是凯撒,但是这里我们难以直接使用在线工具,我们需要自己移位。根据前一题的格式moectf,将前五位更改,发现是将flag前移了8位得到了密文,所以我们需要将密文的每个字符后移8位得到flag

misc

buu-webshell后门

用火绒自定义扫描,只扫描刚才下载的附件解压后的文件夹,扫出来了两个异常,一个为php文件,一个是png文件,我们首先用VScode打开php文件,直接看到了pass=‘ba8e6c6f35a53933b871480bb9a9545c’所以包上flag{}就提交

re

nssctf-[SWPUCTF 2022 新生赛]babyre

如题,用ida打开后按一下f5就可以看到flag

nssctf- [LitCTF 2023]enbase64

查壳,无壳,32位用ida32位打开,找到main函数,然后依据题目,看到base64和flag双击flag后可以看到一个像base64编码的

直接去cyberchef解码,但是解不出来, 然后我们再返回main函数,查看刚刚的base64进去后看到了一个basechange函数

baseChange()‌ 函数在编程中通常用于修改或转换数据。以下是一些具体的例子和解释:

  1. 字符串异或操作‌:在某些编程挑战中,baseChange() 函数可能用于对输入的字符串进行异或操作。例如,在LitCTF Reverse挑战中,输入的字符串与一个固定值(如3)进行异或操作。具体步骤如下:

    • 将输入字符串转换为ASCII码。
    • 对每个字符的ASCII码与3进行异或操作。
    • 将异或后的结果转换回字符并拼接成新的字符串。
  2. base64编码转换‌:在某些情况下,baseChange() 函数可能用于处理base64编码。例如,在LitCTF的另一个挑战中,程序需要进行base64编码的转换。具体步骤如下:

    • 下载并放置对应的DLL文件。
    • 动态调试程序,找到转换后的编码表。
    • 使用找到的编码表进行base64解码。

这些例子展示了baseChange()函数在不同场景下的应用,包括字符串处理和编码转换。通过理解这些应用场景,可以更好地掌握baseChange()函数的使用方法和技巧。

那么这里是将base64加密的自定义表给转换了,所以我们要将原表找出,直接跑这个脚本

#include<stdio.h>
#include<string.h>
int main()
{
int v3[65] = {};
char Source[] = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”;
char Destination[65] = {};
char *result;
v3[0] = 16;
v3[1] = 34;
v3[2] = 56;
v3[3] = 7;
v3[4] = 46;
v3[5] = 2;
v3[6] = 10;
v3[7] = 44;
v3[8] = 20;
v3[9] = 41;
v3[10] = 59;
v3[11] = 31;
v3[12] = 51;
v3[13] = 60;
v3[14] = 61;
v3[15] = 26;
v3[16] = 5;
v3[17] = 40;
v3[18] = 21;
v3[19] = 38;
v3[20] = 4;
v3[21] = 54;
v3[22] = 52;
v3[23] = 47;
v3[24] = 3;
v3[25] = 11;
v3[26] = 58;
v3[27] = 48;
v3[28] = 32;
v3[29] = 15;
v3[30] = 49;
v3[31] = 14;
v3[32] = 37;
v3[34] = 55;
v3[35] = 53;
v3[36] = 24;
v3[37] = 35;
v3[38] = 18;
v3[39] = 25;
v3[40] = 33;
v3[41] = 43;
v3[42] = 50;
v3[43] = 39;
v3[44] = 12;
v3[45] = 19;
v3[46] = 13;
v3[47] = 42;
v3[48] = 9;
v3[49] = 17;
v3[50] = 28;
v3[51] = 30;
v3[52] = 23;
v3[53] = 36;
v3[54] = 1;
v3[55] = 22;
v3[56] = 57;
v3[57] = 63;
v3[58] = 8;
v3[59] = 27;
v3[60] = 6;
v3[61] = 62;
v3[62] = 45;
v3[63] = 29;
result = strcpy(Destination, Source);
for (int i = 0; i <= 47; ++i)
{
for (int j = 0; j <= 63; ++j)
Source[j] = Destination[v3[j]];
result = strcpy(Destination, Source);
}
printf(“%s”, result);
}

跑出后得到了表gJ1BRjQie/FIWhEslq7GxbnL26M4+HXUtcpmVTKaydOP38of5v90ZSwrkYzCAuND

解密得flag将LitCTF改为NSSCTF

web

bugku-shell

开启环境后得到的是一个一无所有的页面,仔细读题简单看就是一个通过s进行get传参的题,所以我们首先查看一下目录,用system函数

system("ls");   // 执行ls命令,显示当前目录的文件和子目录
system("pwd");  // 执行pwd命令,显示当前工作目录的绝对路径
system("date"); // 执行date命令,显示当前的日期和时间 

system("mkdir new_dir"); // 执行mkdir命令,创建一个名为new_dir的目录
system("rm -rf old_dir"); // 执行rm命令,删除一个名为old_dir的目录及其内容
system("cp file1.txt file2.txt"); // 执行cp命令,将file1.txt复制为file2.txt

输入?/s=system(ls)得到如下结果 然后我们直接访问该环境的txt文件,得到了flag

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

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

相关文章

oracle ORA-27054报错处理

现象 在oracle执行expdp&#xff0c;rman备份&#xff0c;xtts的时候,由于没有足够的本地空间&#xff0c;只能使用到NFS的文件系统但有时候会出现如下报错 ORA-27054: NFS file system where the file is created or resides is not mounted with correct options根据提示信…

使用LLaMA Factory踩坑记录

前置条件&#xff1a;电脑显卡RTX 4080 问题&#xff1a;LLaMA-Factory在运行的时候&#xff0c;弹出未检测到CUDA的报错信息 结论&#xff1a;出现了以上的报错&#xff0c;主要可以归结于以下两个方面&#xff1a; 1、没有安装GPU版本的pytorch&#xff0c;下载的是CPU版本…

电路研究9.3——合宙Air780EP中的AT开发指南(含TCP 示例)

根据合宙的AT研发推荐&#xff0c; AT指令基本上也简单看完了&#xff0c;这里开始转到AT的开发了。 AT 命令采用标准串口进行数据收发&#xff0c;将以前复杂的设备通讯方式转换成简单的串口编程&#xff0c; 大大简化了产品的硬件设计和软件开发成本&#xff0c;这使得几乎所…

Reqable使用实践

一、背景 日常开发中&#xff0c;难免要抓取请求数据&#xff0c;查看接口数据&#xff0c;从而更好定位问题&#xff0c;基于这个原因&#xff0c;查找了一些抓包工具&#xff0c;例如&#xff1a; HttpCanary、 Steam 、Fiddler等&#xff0c;不是要钱&#xff0c;就是只对苹…

【蓝桥杯嵌入式】2_LED

全部代码网盘自取 链接&#xff1a;https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码&#xff1a;3ii2 1、电路图 74HC573是八位锁存器&#xff0c;当控制端LE脚为高电平时&#xff0c;芯片“导通”&#xff0c;LE为低电平时芯片“截止”即将输出状态“锁存”…

B树详解及其C语言实现

目录 一、B树的基本原理 二、B树操作过程图形化演示 三、B树的应用场景 四、C语言实现B树及示例 五、代码执行结果说明 六、应用实例&#xff1a;文件系统目录索引 七、总结 一、B树的基本原理 B树&#xff08;B-Tree&#xff09; 是一种自平衡的树数据结构&#xff0c;…

ARM64 Linux 内核学习指南:从基础到实践

前言 ARM64 作为当今主流的处理器架构&#xff0c;被广泛应用于移动设备、嵌入式系统和服务器领域。学习 ARM64 在 Linux 内核中的实现&#xff0c;不仅有助于深入理解操作系统底层机制&#xff0c;还能提升在内核开发、驱动编写、虚拟化等领域的专业能力。 本指南面向对 Lin…

零基础都可以本地部署Deepseek R1

文章目录 一、硬件配置需求二、详细部署步骤1. 安装 Ollama 工具2. 部署 DeepSeek-R1 模型3. API使用4. 配置图形化交互界面&#xff08;可选&#xff09;5. 使用与注意事项 一、硬件配置需求 不同版本的 DeepSeek-R1 模型参数量不同&#xff0c;对硬件资源的要求也不尽相同。…

掌握Spring @SessionAttribute:跨请求数据共享的艺术

SessionAttribute注解在Spring中的作用&#xff0c;就像是一个“数据中转站”。 在Web应用中&#xff0c;我们经常需要在多个请求之间共享数据。比如&#xff0c;用户登录后&#xff0c;我们需要在多个页面或请求中保持用户的登录状态。这时&#xff0c;SessionAttribute注解就…

视频采集卡接口

采集卡的正面有MIC IN、LINE IN以及AUDIO OUT三个接口&#xff0c; MIC IN为麦克风输入&#xff0c;我们如果要给采集到的视频实时配音或者是在直播的时候进行讲解&#xff0c;就可以在这里插入一个麦克风&#xff0c; LINE IN为音频线路输入&#xff0c;可以外接播放背景音乐…

64【32与64位程序的区别】

很多人可能有一个观念&#xff0c;那就是64位的程序NB&#xff0c;有技术含量&#xff0c;但是要说nb在哪&#xff0c;很多人又说不上来&#xff0c;本节来对这个问题做一个探讨 下图中左边的是加载的64程序&#xff0c;右边的是32位程序&#xff0c; 在上一节课我们已经理解…

ai智能DeepSeek 在 Cursor 中的配置与应用实践

DeepSeek 是一款高效的深度搜索引擎&#xff0c;能够为开发者提供更智能、更精准的搜索体验。在数据量大、查询复杂的场景中&#xff0c;DeepSeek 能够帮助提升查询的响应速度和精确度。本文将介绍 DeepSeek 在 Cursor 中的配置与应用&#xff0c;帮助开发者理解如何在实际开发…

Deepseek的起源与发展

文章目录 前言一、Deepseek的起源二、DeepSeek的发展脉络三、Deepseek的突破与优势(1)功能强大:核心能力与应用场景(2)性能优势:效率与效果的革命性提升四、Deepseek开源引发关注前言 DeepSeek 在网络安全领域带来的新机遇,DeepSeek 从崭露头角到引领 AI 领域的重大变革,已…

【如何掌握CSP-J 信奥赛中的深搜算法】

CSP-J 信奥赛中的深搜&#xff08;深度优先搜索&#xff09;算法是一个重要知识点&#xff0c;以下是一些学习深搜算法的建议&#xff1a; 理解基础概念 定义与原理&#xff1a;深度优先搜索是一种用于遍历或搜索图、树等数据结构的算法。它从起始节点开始&#xff0c;沿着一条…

Unity笔试常考

线程同步的几种方式 1.信号量pv操作 2.互斥加锁 3.条件变量 五层网络协议指的是哪五层 1.应用层 2.运输层 3.网络层 4.链路层 5.物理层 TCP和UDP区别 tcp 面向连接&#xff0c;保证发送顺序&#xff0c;速度慢&#xff0c;必须在线&#xff0c;三次握手&#xff0c;4次挥手…

Qt:Qt基础介绍

目录 Qt背景介绍 什么是Qt Qt的发展史 Qt支持的平台 Qt版本 Qt的优点 Qt的应用场景 Qt的成功案例 Qt的发展前景及就业分析 Qt背景介绍 什么是Qt Qt是⼀个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向…

【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置

【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置 本地版部署deepSeek R1 可以参考文章 3分钟教你搭建属于自己的本地大模型 DeepSeek R1 Ollama 是一个开源工具&#xff0c;旨在帮助用户轻松在本地计算机上运行、部署和管理大型语言模型&#xff08;LLMs&#xff09;…

让office集成deepseek,支持office和WPS办公软件!(体验感受)

导读 AIGC:AIGC是一种新的人工智能技术&#xff0c;它的全称是Artificial Intelligence Generative Content&#xff0c;即人工智能生成内容。 它是一种基于机器学习和自然语言处理的技术&#xff0c;能够自动产生文本、图像、音频等多种类型的内容。这些内容可以是新闻文章、…

动态规划问题——青蛙跳台阶案例分析

问题描述&#xff1a; 一只青蛙要跳上n级台阶&#xff0c;它每次可以跳 1级或者2级。问&#xff1a;青蛙有多少种不同的跳法可以跳完这些台阶&#xff1f; 举个例子&#xff1a; 假设台阶数 n 3 &#xff0c;我们来看看青蛙有多少种跳法。 可能的跳法&#xff1a; 1. 跳1级…

MySQL 数据库编程-C++

目录 1 数据库基本知识 1.1 MYSQL常见命令 1.2 SQL注入 1.3 ORM框架 1 数据库基本知识 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成&#xff1a…