MCTF--MISC
之前结束了我们学校的校赛,为了师弟更好的学,那就出个详细的wp吧,首先先讲杂项MISC,这次的MISC其实还是非常简单的。
一笔画完
这题其实只是一个简单的编程题,运用的思想就是递归,这个题不多解释,直接给出脚本:
#!/usr/bin/env python
# encoding: utf-8from pwn import *
# * 0
# # 2
# . 1p=remote("123.206.131.120", 9998)
p.recvuntil("]\n")
p.sendline("y")for T in range(1):maze=[ "......","......","......","......","......","......" ]#maze1=["....#.","......","...#..",".#*...","......"]p.recvuntil(":\n")for i in range(6):pic=p.recvuntil("\n",drop=True)maze[i]=picprint mazedata=[[],[],[],[],[]]for i in range(5):for j in range(6):if maze[i][j]==".":data[i].append(1)if maze[i][j]=="*":data[i].append(0)if maze[i][j]=="#":data[i].append(2)print dataways=[]waysx=""waysy=""payload=""def dfs(data,row,i,ways):# a=[1,-1]data[row][i]=3 #这里置为3表示已经这个点已经走过if row+1<len(data) and data[row+1][i]==1:if not dfs(data,row+1,i,ways):data[row+1][i]=1if row-1>-1 and data[row-1][i]==1:if not dfs(data,row-1,i,ways):data[row-1][i]=1if i+1< len(data[0])and data[row][i+1]==1:if not dfs(data,row,i+1,ways):data[row][i+1]=1if i-1 >-1 and data[row][i-1]==1:if not dfs(data,row,i-1,ways):data[row][i-1]=1for row1 in data:for i1 in row1:if(i1==1):return Falseways.append((row,i))return Truefor row in data:for i in row:if i==0:dfs(data,data.index(row),row.index(i),ways)#print(ways)for i in range(len(ways)-1,-1,-1):sh=""sh=ways[i]waysx+=str(sh[0])waysy+=str(sh[1])print waysxprint waysyfor i in range(len(waysx)-1):a=int(waysx[i+1])-int(waysx[i])b=int(waysy[i+1])-int(waysy[i])if a==0:if b==1:payload+="d"if b==-1:payload+="a"if a==1:payload+="s"if a==-1:payload+="w"print payloadp.recvuntil("\n")p.sendline(payload)print p.recv()
#=============================================================================
maze=[ "......","......","......","......","......","......" ]#maze1=["....#.","......","...#..",".#*...","......"]p.recvuntil(":\n")
for i in range(6):pic=p.recvuntil("\n",drop=True)maze[i]=pic
print maze
data=[[],[],[],[],[],[]]
for i in range(6):for j in range(6):if maze[i][j]==".":data[i].append(1)if maze[i][j]=="*":data[i].append(0)if maze[i][j]=="#":data[i].append(2)print dataways=[]
waysx=""
waysy=""
payload=""
def dfs(data,row,i,ways):# a=[1,-1]data[row][i]=3 #这里置为3表示已经这个点已经走过if row+1<len(data) and data[row+1][i]==1:if not dfs(data,row+1,i,ways):data[row+1][i]=1if row-1>-1 and data[row-1][i]==1:if not dfs(data,row-1,i,ways):data[row-1][i]=1if i+1< len(data[0])and data[row][i+1]==1:if not dfs(data,row,i+1,ways):data[row][i+1]=1if i-1 >-1 and data[row][i-1]==1:if not dfs(data,row,i-1,ways):data[row][i-1]=1for row1 in data:for i1 in row1:if(i1==1):return Falseways.append((row,i))return Truefor row in data:for i in row:if i==0:dfs(data,data.index(row),row.index(i),ways)
#print(ways)for i in range(len(ways)-1,-1,-1):sh=""sh=ways[i]waysx+=str(sh[0])waysy+=str(sh[1])
print waysx
print waysyfor i in range(len(waysx)-1):a=int(waysx[i+1])-int(waysx[i])b=int(waysy[i+1])-int(waysy[i])if a==0:if b==1:payload+="d"if b==-1:payload+="a"if a==1:payload+="s"if a==-1:payload+="w"
print payloadp.recvuntil("\n")
p.sendline(payload)
print p.recv()#====================================================================
maze=[ ".......",".......",".......",".......",".......","......." ]#maze1=["....#.","......","...#..",".#*...","......"]p.recvuntil(":\n")
for i in range(6):pic=p.recvuntil("\n",drop=True)maze[i]=pic
print maze
data=[[],[],[],[],[],[]]
for i in range(6):for j in range(7):if maze[i][j]==".":data[i].append(1)if maze[i][j]=="*":data[i].append(0)if maze[i][j]=="#":data[i].append(2)print dataways=[]
waysx=""
waysy=""
payload=""
def dfs(data,row,i,ways):# a=[1,-1]data[row][i]=3 #这里置为3表示已经这个点已经走过if row+1<len(data) and data[row+1][i]==1:if not dfs(data,row+1,i,ways):data[row+1][i]=1if row-1>-1 and data[row-1][i]==1:if not dfs(data,row-1,i,ways):data[row-1][i]=1if i+1< len(data[0])and data[row][i+1]==1:if not dfs(data,row,i+1,ways):data[row][i+1]=1if i-1 >-1 and data[row][i-1]==1:if not dfs(data,row,i-1,ways):data[row][i-1]=1for row1 in data:for i1 in row1:if(i1==1):return Falseways.append((row,i))return Truefor row in data:for i in row:if i==0:dfs(data,data.index(row),row.index(i),ways)
#print(ways)for i in range(len(ways)-1,-1,-1):sh=""sh=ways[i]waysx+=str(sh[0])waysy+=str(sh[1])
print waysx
print waysyfor i in range(len(waysx)-1):a=int(waysx[i+1])-int(waysx[i])b=int(waysy[i+1])-int(waysy[i])if a==0:if b==1:payload+="d"if b==-1:payload+="a"if a==1:payload+="s"if a==-1:payload+="w"
print payloadp.recvuntil("\n")
p.sendline(payload)
print p.recv()p.interactive()
直接运行得到flag:
有玩过QQ炫舞吗?
这题可以说一个比较简单的编程题,就是一个替换字符串的题,脚本如下:
#!/usr/bin/env python
# encoding: utf-8from pwn import *
#context.log_level = 'debug'
#context.terminal = ['tmux', 'splitw', '-h']p=remote("123.206.131.120", 9999)p.sendlineafter("\n","y")a=["^","<",">","v"]
b=["W","A","D","S"]for j in range(0, 10):payload=""p.recvuntil(': ')string=p.recv(10)#print string for i in range(0, 10):if string[i]=='^':payload+='w'if string[i]=='<':payload+='a'if string[i]=='>':payload+='d'if string[i]=='v':payload+='s'p.recvuntil('performance: ')p.send(payload)print "success"
print p.recvall()
也是直接运行脚本就可以得到flag:
小结:这两个脚本我运用的都是pwntools这个库中的函数,这个库中的函数的优秀之处就是可以很方便的获得打印出来的各种字符串。
前两个是编程题,所以我就放一起讲了,接下来的就是一些有趣的杂项题:
听说你是萌新
这个题是一个图片隐写的入门题,将图片用010打开,搜索字符串,发现flag:
团长!团长你再做什么
这个图片也是一个比较常见的套路,就是改变图片的长度,改变了图片之后flag就可以很清楚地看见了,具体更改图片的方法可以参考https://blog.csdn.net/u010391191/article/details/80804177,这篇文章讲更改图片高度和长度都讲的很详细,更改了高度之后的图片如下:
flag就很清楚了;
恰恰相反
这个题目我感觉还是比较坑的题目,这个题我看的时间是最长的,作为一个只用010editor的人来说,我也是吃尽了苦头,这个题应该是要用winhex的对比功能,当然再对比之前还是要先进行一些操作的:
利用foremost来进行图片的分离,最后分离出来的图片利用winhex进行图片对比:Tool -- File tool -- Compare;
这两列数据很明显就是ascii,然后再写个脚本输出字符串或是自己一个个地手动输入也行,但是注意这些都是16进制;
压缩礼包
这个题目也就是考察了zip文件格式和zip明文爆破的知识,首先打开txt,发现是PK开头的,所以就是zip文件,所以在010中另存为zip解决了第一步,
然后这个题目的一个坑点就是将明文爆破的图片放在了比赛的平台上,所以还要到平台上去下载这个logo,然后就是进行明文爆破了,之后解压出来发现是一个mc的文件,用mc打开,就可以找到flag了,这个flag还是有一段悠久的历史;
自闭的蟒蛇
一个简单的python沙箱逃逸:
MCTF
MCTF--MISC相关推荐
- sun.misc.BASE64Encoder找不到jar包的解决方法
1.右键项目->属性->java bulid path->jre System Library->access rules->resolution选择accessible ...
- python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用grey灰色映射、将不同亮度映射到不同的色彩、并添加颜色标尺
python使用matplotlib可视化.使用matplotlib可视化scipy.misc图像.自定义使用grey灰色映射.将不同亮度映射到不同的色彩.并添加颜色标尺 目录
- python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用RdYIBu色彩映射、将不同亮度映射到不同的色彩
python使用matplotlib可视化.使用matplotlib可视化scipy.misc图像.自定义使用RdYIBu色彩映射.将不同亮度映射到不同的色彩 目录
- python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用winter色彩映射、将不同亮度映射到不同的色彩
python使用matplotlib可视化.使用matplotlib可视化scipy.misc图像.自定义使用winter色彩映射.将不同亮度映射到不同的色彩 目录
- python使用matplotlib可视化、使用matplotlib可视化scipy.misc图像、自定义使用Accent色彩映射、将不同亮度映射到不同的色彩
python使用matplotlib可视化.使用matplotlib可视化scipy.misc图像.自定义使用Accent色彩映射.将不同亮度映射到不同的色彩 目录
- 不降低scipy版本解决AttributeError: module ‘scipy.misc‘ has no attribute ‘imresize‘问题
问题描述 在Tensorflow2.1.0上运行代码出现 AttributeError: module 'scipy.misc' has no attribute 'imresize' 查阅资料大多都 ...
- module 'scipy.misc' has no attribute 'imresize'
报错 module 'scipy.misc' has no attribute 'imresize' import scipy.misc scipy.misc.imresize(img, (im_he ...
- sun.misc.BASE64Encoder在Eclipse中不能直接使用的原因和解决方案
1.为什么在Eclipse中不能直接使用sun.misc.BASE64Encoder和sun.misc.BASE64Decoder呢? 因为sun.misc.BASE64Encoder和sun.mis ...
- openJDK之sun.misc.Unsafe类CAS底层实现
2019独角兽企业重金招聘Python工程师标准>>> 注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html,而后自己结合 ...
- scipy 图像处理(scipy.misc、scipy.ndimage)、matplotlib 图像处理
from scipy.misc import imread / imsave / imshow imresize / imrotate / imfilter 1. scipy.misc 下的图像处理 ...
最新文章
- Memcache知识点梳理
- 一种利用ADO连接池操作MySQL的解决方案(VC++)
- 【c基础】之 文件及其操作
- Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
- 100行JavaScript代码实现JavaScript
- 985博士妈妈辅导女儿作业被气哭:博士父母带娃真是太难了...
- linux中用户识别码,C语言中设置用户识别码的相关函数的简单讲解
- Could not find a version that satisfies the requirement Twisted=13.1.0 (from Scrapy)
- 数据-第19课-递归的应用实战一
- 企业微信邀请通知在哪里设置?如何关闭?
- 计算机开机选择用户界面,Windows10每次开机都会出现选择操作系统界面的解决方法...
- HTTP 长连接短连接使用场景是什么
- Unity游戏快速制作特效
- Flink反压如何排查
- Bluetooth技术学习笔记 ——HFP之Call
- Encyclopaedia Britannica Ultimate 2014电子版下载|大不列颠百科全书
- iOS 12.4 越狱工具 unc0ver 详细教程;Android 手机无痛互传;Apple 更改应用评级
- 当今安全领域面试的几大怪现状
- centos 7 定时备份文件夹,增量文件
- CSS: overflow-anchor 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容