MCTF--MISC

本文详细介绍了MCTF比赛中关于MISC部分的解题过程,包括编程题和图像隐写等挑战。通过递归解决一笔画问题,使用pwntools库处理字符串替换,学习图片隐写技巧,理解ZIP文件格式及明文爆破,以及解决Python沙箱逃逸问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前结束了我们学校的校赛,为了师弟更好的学,那就出个详细的wp吧,首先先讲杂项MISC,这次的MISC其实还是非常简单的。

一笔画完

这题其实只是一个简单的编程题,运用的思想就是递归,这个题不多解释,直接给出脚本:

#!/usr/bin/env python
# encoding: utf-8

from pwn import *
#   * 0
#   # 2
#   . 1

p=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]=pic
	print maze

	data=[[],[],[],[],[]]

	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 data

	ways=[]
	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]=1
	 
		if row-1>-1 and data[row-1][i]==1:
		    if not dfs(data,row-1,i,ways):
		        data[row-1][i]=1
	 
		if i+1< len(data[0])and data[row][i+1]==1:
		    if not dfs(data,row,i+1,ways):
		        data[row][i+1]=1
		    
		if i-1 >-1 and data[row][i-1]==1:
		    if not dfs(data,row,i-1,ways):
		        data[row][i-1]=1
		for row1 in data:
		    for i1 in row1:
		        if(i1==1):
		            return False
		ways.append((row,i))
		return True
	 
	for 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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值