buuctf[MRCTF2020]千层套路

2024-01-26 11:20
文章标签 buuctf 套路 mrctf2020 千层

本文主要是介绍buuctf[MRCTF2020]千层套路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

buuctf[MRCTF2020]千层套路

  • 题目描述
  • 题目分析
  • 解题过程

题目描述

题目给了一个以四位数字做文件名的压缩文件

题目分析

发现题目给的压缩文件名,就是解压这个压缩文件的密码,既然是千层套路,类似的操作可能要进行一千次。

解题过程

下面就要写脚本进行解题,写了一个比较拙劣的脚本

import zipfile 
import os
i=0while 1:try:file=zipfile.ZipFile('F:\download/attachment (6)/'+str(i)+'/'+os.listdir('F:\download/attachment (6)/'+str(i)+'/')[0],'r')i=i+1file.extractall(path='F:\download/attachment (6)/'+str(i)+'/',pwd=os.listdir('F:\download/attachment (6)/'+str(i-1)+'/')[0][0:4].encode('utf-8'))except:print('循环了'+str(i)+'次')break

然后在1001的文件夹里面发现了qr.txt
在这里插入图片描述
根据文件名和文件内容,是一个二维码啊,那我们再写个脚本画一下二维码。

from PIL import Image
from zlib import *file=open('CTFtools\misc\qr.txt','r').read().split('\n')
#print(file)
i=0
pic=Image.new("RGB",(200,200))
for y in range(200):for x in range(200):if file[i]=='(0, 0, 0)':color=(0,0,0)pic.putpixel([x,y],color)else:color=(255,255,255)pic.putpixel([x,y],color)i=i+1
pic.show()

得到的二维码扫描就可以得到flag

这篇关于buuctf[MRCTF2020]千层套路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646640

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

BUUCTF(34)特殊的 BASE64

使用pycharm时,如果想把代码撤销到之前的状态可以用 Ctrl+z 如果不小心撤销多了,可以用 Ctrl+Shift+Z 还原, 别傻傻的重新敲了 BUUCTF在线评测 (buuoj.cn) 查看字符串,想到base64的变表 这里用的c++的标准程序库中的string,头文件是#include<string> 这是base64的加密函数 std::string

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

算法练习小技巧之有序集合--套路详细解析带例题(leetcode)

前言:         本文详细讲解Python中的有序集合SortedList和C++中的有序集合multiset的用法,配合leetcode的例题来展示实际的用处。(本人水平不够,还无法讲解有序集合的实现方法,只会用)         觉得有帮助或者写的不错可以点个赞,后面也有几道我找出来的题目可以用这个方法快速解决的         (感觉有点水) 目录 有序集合用法讲解:

BUUCTF PWN wp--bjdctf_2020_babystack

第一步   checksec一下,该题是64位的,该题目大概率是一道栈溢出(因为题目里面提到了stack) 分析一下这个二进制保护机制: Arch: amd64-64-little 这表示二进制文件是为64位AMD处理器设计的,使用的是小端序(little-endian)格式。RELRO: Partial RELRO RELRO(Relocation Read-Only)是一种安全特性,旨

qt中的线程套路

qt的线程还是非常优雅的,当然我们可以使用系统自带的函数接口创建线程,但是跨平台移植似乎就是问题。 qt的线程是可以支持跨平台的移植的。 qt的线程非常简单,就是继承QThread然后重写run方法,run函数就是我们的线程主体,对于重写其实本质就是一个回调接口了。 好了注意重点:在主函数实例化然后调用start方法就开始运行线程了,千万不要调用函数调用的急眼了,把run函数也调用了。

Java基础-Lambda表达式的使用套路

1.列表循环 1.1.普通的forEach循环 goodsSkuBatch.stream().forEach(goodsSkuPromote -> {// 循环处理对象 TODO}); 2.列表过滤 // 去重复信息: 过滤收集后补数据库中的ID, 收集listList<EmailMessage> crudList = emailDataList.stream().collect

BUUCTF—[网鼎杯 2020 朱雀组]phpweb

题解 打开题目是这样子的。 啥也不管抓个包看看,从它返回的信息判断出func后面的是要调用的函数,p后面的是要执行的内容。 那我们直接执行个系统命令看看,可以看到返回了hack,估计是做了过滤。 func=system&p=ls 直接读取源码看看咯,可以看到过滤了好多函数,反正我认识的可以进行命令执行的函数都给禁了。 func=file_get_contents&p=ind

从CPU缓存看缓存的套路

点击上方“朱小厮的博客”,选择“设为星标” 当当满200减40优惠码「J2KNAE」 来源:知乎 一、前言 不同存储技术的访问时间差异很大,从 计算机层次结构 可知,通常情况下,从高层往底层走,存储设备变得更慢、更便宜同时体积也会更大,CPU 和内存之间的速度存在着巨大的差异,此时就会想到计算机科学界中一句著名的话:计算机科学的任何一个问题,都可以通过增加一个中间层来解决。 二、引入缓存层 为

BUUCTF派大星的烦恼

解压得到一张图片没啥有用信息 根据下面题目提示,用010editor打开图片发现一段16进制字符串 派大星最近很苦恼,因为它的屁股上出现了一道疤痕!我们拍下了它屁股一张16位位图,0x22,0x44代表伤疤两种细胞,0xf0则是派大星的赘肉。还原伤疤,知道是谁打的派大星!(答案为32位的一串字符串) 注意:得到的 flag 请包上 flag{} 提交 在010editor直接