文章目录
- 坐标绘图
- 盲水印
- git泄露
- [bugku]TLS
- 拼图
- [ACTF新生赛2020]NTFS数据流
- 我吃三明治
- single dog
- 喵喵喵
- Mysterious(反汇编)
- [GXYCTF2019]SXMgdGhpcyBiYXNlPw==
- 弱口令
- 从娃娃抓起
- [WUSTCTF2020]alison_likes_jojo
- [安洵杯 2019]Attack
- USB
- 间谍启示录
- 黄金六年
- zip
- 百里挑一
- zero
- [UTCTF2020]sstv
- [MRCTF2020]千层套路
- [MRCTF2020]Hello_ misc
- [WUSTCTF2020]spaceclub
- 派大星的烦恼
- [MRCTF2020]pyFlag
- Business Planning Group
- [GUET-CTF2019]soul sipse
- [INSHack2017]10-cl0v3rf13ld-lane-signal
- [BSidesSF2019]zippy(流量)
- What the password?
坐标绘图
梅花香自苦寒来
import matplotlib.pyplot as plt
import numpy as np
x,y=np.loadtxt('./1.txt',delimiter=',',unpack=True)
plt.plot(x,y,'.')
plt.show()
gnuplot
盲水印
信息不好先挂了
同下
4-1
虚拟机打开BlindWaterMark
启动虚拟source tutorial-env/bin/activate
将两张图片放进去python bwmforpy3.py decode --oldseed day1.png day2.png flag.png
git泄露
[bugku]log
- git log:查看日志
- git show:查看内容
- git diff:对比文件
[bugku]stash
- git stash list :查看git stash所储藏的修改
- git stash pop:查看git stash最近一次入站的命令,在这道题就是flag
[bugku]Index
[bugku]TLS
首先编辑—> 首选项—>RSA密钥,把给的密钥文件选中
在压缩包http的底下看见
- 同上
git用到的工具
拼图
[ACTF新生赛2020]NTFS数据流
NTFS流隐藏文件,使用工具NtfsStreamsEditor打开
我吃三明治
010editor中间base64转base32
single dog
改后缀
AAencode解密
喵喵喵
题目提示有二维码,但是010打开并没有发现隐藏压缩包,应该想到lsb隐写
另存为png文件发现打不开。。改一下文件头就好了
明显高矮了,改个高
扫了之后是个网盘地址。。下载flag.rar打开
这里猜测有NTFS文件流隐写,将flag.txt解压到一个新建的文件夹内,利用NtfsStreamsEditor
得到反编译,进行解码
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7
import base64
def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))
return ciphertext[::-1]
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
写脚本得到flag
#Author: mochu7
def decode(arg1):
ciphertext = arg1[::-1]
flag = ''
for i in range(len(ciphertext)):
if i % 2 == 0:
s = int(ciphertext[i]) - 10
else:
s = int(ciphertext[i]) + 10
s = s ^ i
flag += chr(s)
print(flag)
if __name__ == '__main__':
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
decode(ciphertext)
Mysterious(反汇编)
[GXYCTF2019]SXMgdGhpcyBiYXNlPw==
base64隐写脚本2
'''
base64隐写解密
'''
base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
flag=''
with open('flag.txt','r') as f:
for line in f.readlines():
line=line[:-1]
num=line.count('=')
if num == 0 :
continue
lastchar = line[-(num+1)]
#print(line,num,lastchar)
myindex = base64chars.index(lastchar)
#print(myindex)
bin_str = bin(myindex)[2:].zfill(6)
#print(bin_str)
flag+=bin_str[6-2*num:]
#print(bin_str[6-2*num:])
print(''.join([chr(int(flag[i:i + 8], 2)) for i in range(0, len(flag), 8)]))
弱口令
Stegdetect程序主要用于分析JPEG文件。 因此用Stegdetect可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息。
Stegdetect 通过统计测试来分析图像文件中是否包含隐藏内容。 它运行静态测试以判断隐藏的内容是否存在。 此外, 它还会尝试识别隐藏内容是通过哪个隐写工具嵌入的
根据提示弱口令进行猜测,当口令为123456可以分离出内容
PS D:\Tools\Misc\cloacked-pixel> python2 .\lsb.py extract .\goddess.png flag.txt 123456
[+] Image size: 500x500 pixels.
[+] Written extracted data to flag.txt.
PS D:\Tools\Misc\cloacked-pixel> cat .\flag.txt
flag{jsy09-wytg5-wius8}
从娃娃抓起
- 中文电吗
- 五笔编码
[WUSTCTF2020]alison_likes_jojo
- 分离图片
- 暴力破解
- base64解密
- outguess解密
outguess -k "killerqueen" -r jljy.jpg hidden.txt
[安洵杯 2019]Attack
- mimikatz的使用
分离出个加密文件
发现一句话“这可是administrator的秘密,怎么能随便给人看呢?”,administrator是windows操作系统管理员用户,猜测和用户密码有关。
重新分析流量包,搜索查看常用协议,发现在http协议中存在lsass.dmp
(*dmp文件是windows系统中的错误转储文件,当Windows发生错误蓝屏的时候,系统将当前内存【含虚拟内存】中的数据直接写到文件中去,方便定位故障原因。)
(*里面包含主机用户密码信息)
将lsass.dmp提取出来,选择文件-导出对象-HTTP,搜索.dmp文件-save保存提出
使用mimikatz分析.dmp文件,使用管理员权限打开命令提示符,cd 进去存放mimikatz.exe文件夹中,使用mimikatz.exe。
(*lsass.dmp文件需要和mimikatz.exe在一个文件夹下 )
//载入dmp文件
sekurlsa::minidump lsass.dmp
//读取登陆密码
sekurlsa::logonpasswords full
将密码解密,往下拉看到flag
USB
- binwalk
- usb数据包
- CRC报错
- stegsolve
- 维吉尼亚
- 栅栏密码
间谍启示录
- foremost分离
- 解压,运行flag.exe生成隐藏文件,开启查看隐藏项目即可
黄金六年
- kinovea
文章
zip
CRC32爆破
,一般用于压缩包里文件内容较短时
爆破脚本
import zipfile
import string
import binascii
def CrackCrc(crc):
for i in dic:
for j in dic:
for p in dic:
for q in dic:
s = i + j + p + q
if crc == (binascii.crc32(s) & 0xffffffff):
#print s
f.write(s)
return
def CrackZip():
for I in range(68):
file = 'out' + str(I) + '.zip'
f = zipfile.ZipFile(file, 'r')
GetCrc = f.getinfo('data.txt')
crc = GetCrc.CRC
#以上3行为获取压缩包CRC32值的步骤
#print hex(crc)
CrackCrc(crc)
dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt', 'w')
CrackZip()
f.close()
百里挑一
- exiftool
exiftool 文件夹名 | grep flag
找到前半个,后半个在流里找
zero
- 零宽度隐写
第一个字母不是第一行第一个,存在隐写
[UTCTF2020]sstv
- 音频隐写 使用QSSTV将慢速扫描电视传输(SSTV)音频文件转换(解码)为图像
[MRCTF2020]千层套路
- zip套娃
- 二维码坐标绘图
文章
# -*- coding:utf-8 -*-
# author: mochu7
def hex_str(str):#对字符串进行切片操作,每两位截取
hex_str_list=[]
for i in range(0,len(str)-1,2):
hex_str=str[i:i+2]
hex_str_list.append(hex_str)
print("hex列表:%s\n"%hex_str_list)
hex_to_str(hex_str_list)
def hex_to_str(hex_str_list):
int_list=[]
dec_list=[]
flag=''
for i in range(0,len(hex_str_list)):#把16进制转化为10进制
int_str=int('0x%s'%hex_str_list[i],16)
int_list.append(int_str)
dec_list.append(int_str-128)#-128得到正确的ascii码
for i in range(0,len(dec_list)):#ascii码转化为字符串
flag += chr(dec_list[i])
print("转化为十进制int列表:%s\n"%int_list)
print("-128得到ASCII十进制dec列表:%s\n"%dec_list)
print('最终答案:%s'%flag)
if __name__=='__main__':
str='d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd'
print("字符串长度:%s"%len(str))
hex_str(str)
[MRCTF2020]Hello_ misc
with open('out.txt','r') as Dec:
res = ''
for i in Dec.readlines():
Bin = '{:08b}'.format(int(i))
print(Bin)
Sub_Bin = Bin[:-6]
res += Sub_Bin
print(res)
for j in range(0,len(res),8):
full_bin = res[j:j+8]
print(chr(int(full_bin,2)),end="")
import base64
with open('data.txt','r') as file:
for i in file.readlines():
line = str(base64.b64decode(i),'utf8')
print(line.replace('1',' '))
- 压缩包里面都是xml时,此压缩包应该后缀为docx
文章
[WUSTCTF2020]spaceclub
01转换解码
派大星的烦恼
a='0110110000101100000011000110110010011100101011000000110010000110101011000010110010001100000111000010110001000110001001101010110001100110101001100110110001000110011011001010011010101100010001100010110011000110101001100010110011001100000111001100110001001100'
for j in range(0,len(a),8):
b= a[j:j+8]
c=b[::-1]
print(chr(int(c,2)),end="")
[MRCTF2020]pyFlag
三张图片往下拉,看到zip的三部分,组成后进行暴力破解四位数
对文本里进行base解密
在线用不了,用IDLE
import 64
c='内容'
base64.d85decode/16/32/16/64
Business Planning Group
打开图片010,看图片结尾搜索IEND,看到bpg文件,打开即可
Honeyview
[GUET-CTF2019]soul sipse
- Steghide是一款开源的隐写术软件,它可以让你在一张图片或者音频文件中隐藏你的秘密信息
steghide extract -sf /root/Desktop/out.wav
修改文件头
Unicode解码
[INSHack2017]10-cl0v3rf13ld-lane-signal
(修改后缀名+分离出摩斯电码helpme+IEND看到ogg,au打开转摩斯码)
[BSidesSF2019]zippy(流量)
What the password?
Volatility
借鉴文章一
vol.py -f OtterCTF.vmem imageinfo
Win7SP1x64
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Rick:1000:aad3b435b51404eeaad3b435b51404ee:518172d012f97d3a8fcc089615283940:::
这里得到的518172d012f97d3a8fcc089615283940没解出来,试试用lsadump
,这个模块也是用来提取密码的
vol.py -f OtterCTF.vmem --profile=Win7SP1x64 lsadump