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

1.24学习

misc

buuctf-easycap

附件是一个wireshark流量分析文件,用wireshark打开全是TCP,那就追踪任意TCP数据流

crypto

bugku-你喜欢下棋吗

下载附件后一个压缩包一个文本文件,文本文件为压缩包的密码看了这个文本再结合题意,应该是一个棋盘密码,用在线工具解密棋盘密码在线加密解密 - 千千秀字

解压后得到了一个文本文件,是flag.txt,打开后发现又是一个密文一种5bit的编码,没听过,搜搜看,了解到了一种加密方法【博多密码】,然后用在线工具解密Baudot Code, Baudot-Murray Code (online tool) | Boxentriq

bugku-小山丘的秘密

解压附件后得到了一个文本文件和一个图片,那个文本文件包含了密文然后图片是一个棋盘(看着像3*3)依据这个棋盘设置矩阵为3*3,然后它的A=0,设置好密钥后进行解密

buuctf-rsarsa

下载附件后打开为文本文件可以知道这一个RSA加密,已知的条件是pqec的值,那么我们需要写rsa的脚本来解出m

re

nssctf-[SWPUCTF 2021 新生赛]fakerandom

下载附件后得到的是一个python代码

import random
flag = 'xxxxxxxxxxxxxxxxxxxx'
random.seed(1)
l = []
for i in range(4):
    l.append(random.getrandbits(8))
result=[]
for i in range(len(l)):
    random.seed(l[i])
    for n in range(5):
        result.append(ord(flag[i*5+n])^random.getrandbits(8))
print(result)
# result = [201, 8, 198, 68, 131, 152, 186, 136, 13, 130, 190, 112, 251, 93, 212, 1, 31, 214, 116, 244]

 这个代码引入了random库,有个flag(被隐藏了需要解出),然后用random.seed()生成一个随机的数然后命了一个空列表为l,然后循环四次最终使列表l增加了四个随机生成的八位数。又命了一个空列表result,此时的len(l)就是4,那么又循环了四次,其中i值为0,1,2,3,然后又用random.seed(l[i]),其中的种子值也就是seed_value是列表l的第i位,然后得到一个随机数。再循环五次:在result列表里增加一个元素,即flag的第i*5+n位的ascii码与random.getrandbits随机生成的八位数进行异或的结果。然后输出result

for i in range(len(l)):
    random.seed(l[i])
    for n in range(5):
        result.append(ord(flag[i*5+n])^random.getrandbits(8))

代码中的这一段,result的第零位与flag的第零位挂钩(即0*5+0位),

result的第一位与flag的第一位挂钩(即0*5+1位)

result的第二位与flag的第二位挂钩(即0*5+2位)

....

result的第五位与flag的第五位挂钩(即1*5+0位)

result的第六位与flag的第六位挂钩(即1*5+1位)

...

....

由此我们可以推断result与flag是一一挂钩,相互联系的

因此我们再用同样的方法,将flag与result的关系相互换,再根据异或的特性(即A=(A^B)^B)

import random
result = [201, 8, 198, 68, 131, 152, 186, 136, 13, 130, 190, 112,251,93,212,1,31,214,116,244]
flag=[]
random.seed(1)  #生成与原相同的随机数
l = []
for i in range(4):
    l.append(random.getrandbits(8))   #产生了同一个列表l
print(l)
for i in range(len(l)):
    random.seed(l[i])
    for r in range(5):
        flag.append(chr(result[i*5+r]^random.getrandbits(8)))
print(flag)

web

nssctf-[SWPUCTF 2022 新生赛]ez_ez_php

开启环境看到了一串php代码其中关键一句为第四行,一个变量file的前三位为php(强比较)就输出nice

  • substr函数

    • substr(string, start, length):从字符串中提取子字符串。

    • string:要处理的字符串。

    • start:子字符串的起始位置(从0开始)。

    • length:子字符串的长度。

由于在页面最末端看到了flag.php,也就是说这个包含了一个文件,所以想到php伪协议

所以我们输入?file=php://filter/read=convert.base64-encode/resource=flag.php(如此就满足了强比较的条件) 然后得到了一串的base64,解码告知真正的flag在flag里,不在flag.php里,所以将前面的最后的改为flag,就行

 


http://www.kler.cn/a/521194.html

相关文章:

  • 人工智能前沿技术进展与应用前景探究
  • 彻底理解JVM常量池
  • vue3中Teleport的用法以及使用场景
  • 【python】python基于机器学习与数据分析的二手手机特性关联与分类预测(源码+数据集)【独一无二】
  • Synology 群辉NAS安装(3)环境的准备工作
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue爬虫技术的咖啡与茶饮料文化平台(高质量源码,可定制,提供文档,免费部署到本地)
  • WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ
  • 在Ubuntu上用Llama Factory命令行微调Qwen2.5的简单过程
  • 【算法】数论基础——约数个数定理、约数和定理 python
  • 2024 开源社年度报告:拥抱开源新生活
  • 消息队列篇--扩展篇--码表及编码解码(理解字符字节和二进制,了解ASCII和Unicode,了解UTF-8和UTF-16,了解字符和二进制等具体转化过程等)
  • DroneXtract:一款针对无人机的网络安全数字取证工具
  • 从Stargate看全球科技变局与中国IT互联网的破局之路
  • 每日 Java 面试题分享【第 13 天】
  • 2025最新 Docker 国内可用镜像源仓库地址(01月02日更新)
  • 【UE】Level、World
  • Android AutoMotive--CarPropertyService
  • AIGC专栏18——EasyAnimateV5.1版本详解 应用Qwen2 VL作为文本编码器,支持轨迹控制与相机镜头控制
  • 【WebRTC - STUN/TURN服务 - COTURN配置】
  • Linux二进制部署K8s集群的平滑升级教程