give_you_flag
保存下来,用 photoshop 把缺失的三个角给修复,手机扫码即可获得 flag 。
或者用QR research
掀桌子
m = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
num=""
for i in range(0,len(m),2):
hex = m[i:i+2]
num += chr(int(hex,16)-128) #此处因为ascii只用了7位二进制,因此需对num减2的7次方即128
print(num)
ext3
使用winhex打开附件
按Ctrl+F搜索flag字符串
找到flag.txt的路径:~root/Desktop/file/O7avZhikgKgbF/flag.txt
然后使用360压缩打开附件
base64解码
base64stego
有点像base64加密后的字符串是不是?
这儿有个小技巧:
“flag"base64加密之后变成了"ZmxhZw==”,搜一下文本中没有出现。
这里就要提到base64加密隐写了:
简单来说,base64编码再解码这个过程中,会出现"="个数*2bit的字节数的无效字节,也就是说这些字节无论填充什么,都不会影响结果。(因为这些字节在解码的过程中被删掉了)
base64隐写其实就是在这些字节上做文章。
神奇的base64隐写
最后贴一个网上找的base64隐写脚本:
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
with open('stego.txt', 'rb') as f:
bin_str = ''
for line in f.readlines():
stegb64 = str(line, "utf-8").strip("\n")
rowb64 = str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")#删除首尾换行
offset = abs(b64chars.index(stegb64.replace('=','')[-1])-b64chars.index(rowb64.replace('=','')[-1]))
#把末尾的'='去掉,offset = |给定字符串在b64表中的位置-解码字符串在b64表中的位置|
equalnum = stegb64.count('=') #计算等号个数
if equalnum:
bin_str += bin(offset)[2:].zfill(equalnum * 2)#返回offset的二进制形式
print(''.join([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)])) #8 位一组
记得要把那个txt放进pythonproject2里才能运行出结果
功夫再高也怕菜刀
拿到附件后直接拖进winhex
发现有kali linux字样,就把该文件拖到kali里面,使用binwalk提取文件,发现里面有一个压缩包,其中有flag.txt
使用foremost分离文件
可是还没装
临时装一下
sudo apt-get update
sudo apt-get install foremost
zip里面含有flag.txt,但是有密码加密
接下来上wireshark
一定要把搜索栏按照我标的调,尤其是第一个,它默认不是分组字节流,在这种情况下你搜索flag.txt,结果是搜索不到东西的。会有好几个符合条件的字节流,我看网上wp出奇的一致,都选在了1150这里,我都试了一下,发现结果都是正确的。在1150处右键跟踪TCP流:
FFD8FF是jpg文件的文件头
把以FF D8开头、FF D9结尾的这部分复制,并在winhex中新建文件并粘贴,注意粘贴格式选择为ASCII Hex
保存为jpg文件格式得到一张jpg格式的图片
base64÷4
666C61677B45333342374644384133423834314341393639394544444241323442363041417D。我们分析一下这串字符,发现由数字和大写字母组成,再联想到题目,猜测是base16加密,于是我们解密一下。
embarrass
法一:
解压之后,用winhex打开
法二:
kali中打开binwalk
分离出来很多文件,用 strings misc_02.pcapng | grep flag语句查找flag
成功查找flag
神奇的Modbus
使用Wireshark在数据包中寻找flag
wireshark输入modbus过滤并追踪tcp流
ctf{Easy_Mdbus} 提交错误 根据题目可得sctf{Easy_Modbus}
something_in_image
法一:
改为txt形式
法二:
strings命令
wireshark-1
附件解压后,是一个pcap数据包
看到“登陆”,可以想到HTTP POST请求,用wireshark打开这个pcap数据包后,搜索 http.request.method==“POST”, 只显示HTTP POST方法的。
在下面可以看到passwd的值,也就是答案。
flag{ffb7567a1d4f4abdffdb54e022f8facd}
pure_color
下载文件,打开,是一个png文件。
什么都没有,我们用010编辑器打开。
没有flag,StegSolve打开
打开 File Format Analysis 没有flag的线索。
最后,在下面的那俩按钮那里,发现了。
Aesop_secret
打开下载附件发现是张gif动图
用gif分解网站分解
可以知道是拼图,拼出来是
用notepad++打开原来图片,在文件末尾发现了一串密文
U2FsdGVkX19QwGkcgD0fTjZxgijRzQOGbCWALh4sRDec2w6xsY/ux53Vuj/AMZBDJ87qyZL5kAf1fmAH4Oe13Iu435bfRBuZgHpnRjTBn5+xsDHONiR3t0+Oa8yG/tOKJMNUauedvMyN4v4QKiFunw==
初步怀疑是base64解密
丢到在线解密网站
无果。
再结合题目,为aes解密
输入密码,输入上面得到的ISCC
再解密一次,才得到flag
Training-Stegano-1
下载文件,用010编译器打开。
直接输入 steganoI 就可以
Test-flag-please-ignore
下载附件后,notepad++打开
先观察,判断编码和进制转换,发现只有0-f的字符,推断是十六进制
附上http://www.bejson.com/convert/ox2str/
转文字后得到flag
can_has_stdio?
用写字板打开发现是Brainfuck文件
Brainfuck介绍
用在线工具解析文件
最后得到flag
János-the-Ripper
下载附件后,解压,misc100
winhex打开
PK开头,而且有一个flag.txt文件,怕不是又是一个压缩包,包中之包
后缀改.zip
暴力破解
提取
hit-the-core
把文件拖入Winhex里面
在右边找到了关键信息, 大括号外面 每隔四个是大写的字母
同理大括号里面也是同样的方法,连起来就行了;
ALEXCTF{K33P_7H3_g00D_w0rk_up}
快乐游戏题
2017_Dating_in_Singapore
附件下载下来
复制到txt文本上,“-”肯定是分隔,每段字符通过观察又都是2的倍数,
所以↓这样两两分隔开来
猜测是日期
在给出的pdf中画出
一行对应一个月,每两位代表一个日期
HITB{CTFFUN}
Erik-Baleog-and-Olaf
解压后发现是一个没有后缀的文件
放到winhex中查看,发现是一个png文件
扫描半天也扫不出来,截图尝试放大一下,还是不行,尝试改成黑白色, 用的还是Stegsolve
实在不行 用ps补全
手机扫描出flag
glance-50
前面得Aseop_secret提到一个网站
TWCTF{Bliss by Charles O’Rear}
法二:
运用kali虚拟机的convert命令
root@kali:~# convert +adjoin glance.gif piece-%03d.gif
root@kali:~# convert +append piece-*.gif output.gif
打开output.gif
就发现flag:
签到题
base64解密一下
ggQ@gQ1fqh0ohtjpt_sw{gfhgs#}
瞅着像栅栏密码+凯撒密码
心仪的公司
下载得:
法一:
发现有webshell字样
最后输入:
http contains "shell"
法二:
用linux的strings
strings webshell.pcapng | grep {
strings webshell.pcapng | grep -E0 '^....*?{....*?}$' 也可以用这个
Banmabanma
没毛病,老条形码了,扫它
flag{TENSHINE}
扫码连接
easycap
reverseMe
stage1 还要加油
手机扫描二维码得到
03F30D0AB6266A576300000000000000000100000040000000730D0000006400008400005A00006401005328020000006300000000030000000800000043000000734E0000006401006402006403006404006405006406006405006407006708007D00006408007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100712B00577C010047486400005328090000004E6941000000696C000000697000000069680000006961000000694C0000006962000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007307000000746573742E7079520300000001000000730A00000000011E0106010D0114014E280100000052030000002800000000280000000028000000007307000000746573742E707974080000003C6D6F64756C653E010000007300000000
将其在winhex中打开
新建文件
将前面得到的字符串复制,ctrl+v 弹框选择
观察发现为python编译之后的代码,保存为.pyc文件,反编译
python反编译在线工具
反编译之后得到python源码,修饰之后运行
def flag():
str = [65,108,112,104,97,76,97,98]
flag = ''
for i in str:
flag += chr(i)
print(flag)
flag()
AlphaLab
misc1
d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd
想办法呗,转换成10进制的数余128再转换成16进制数最后使用转换工具,将16进制转换成字符串好的成功。
qu = 'd4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd'
hex_new = ''
for i in range(0,len(qu),2):
hex_ = qu[i:i+2]
d_ = int('0x'+ hex_, 16)
d_surplus = d_%128
temp = hex(d_surplus)[2:4]
hex_new+=temp
print(str(hex_new))
54686174207761732066617374212054686520666c61672069733a2044444354467b39616633633964333737623631643236396231313333376633333063393335667d
将输出的结果复制转换成字符串就可以了。
这里贴上16转字符串:http://www.bejson.com/convert/ox2str/
That was fast! The flag is: DDCTF{9af3c9d377b61d269b11337f330c935f}
Excaliflag
扔进stegsolve
就出来了
Cephalopod
第一步,使用wireshark搜索flag字符串,可以看到
发现有flag.png。
第二步:思考如何提取出PNG图片。PNG的16进制为89504E47,然后搜索该16进制,找到一条TCP报文,然后追踪TCP流。可以看到这是一个图片数据流。
第3步,保留原始数据。然后复制进去winhex然后修改文件后缀名为png,就可以得到flag图片
法二:
wireshark丢进追踪流里面,发现一个明显提示
有个png文件
foremost是不行的,需要另外一个有点老的软件tcpxtract
tcpxtract
通过下面命令安装:
apt-get install tcpxtract
使用方法:
tcpxtract -f XXX.pcap
然后就分离出来了一张图片了
a_good_idea
下载附件
重命名,zip解压(比rar解压出来的文件多,搞不懂这两个为啥)
先打开to_do(打开顺序反了的话,得不到二维码)
再与to拼接图片
再上下翻
扫描二维码
得到flag:NCTF{m1sc_1s_very_funny!!!}
补充:binwalk打开就直接有hint.txt了,还可以ps调高曝光度,得到二维码,还有Beyond Compare
simple_transfer
我们下载附件,看到是一个抓包分析的题。
第一步当然是直接打开,搜索flag,发现无果,
果断到统计–>协议分级查看:
可以看到,协议的字节百分比占用基本全在NFS协议上,直接过滤NFS
观察报文,发现有个pdf文件
直接foremost分解;
打开pdf文件,里面什么都没有,
右键单击,发现又复制图片,所以知道应该是有图片给遮挡住了。
直接CTRL + A 全选,新建一个txt文件,CTRL + V 粘贴,
得到flag。
Ditf
用binwalk看看文件里面有没有其他东西,存在一个png图片一个RAR压缩包,foremost进行分离;
解压要密码
试了下不是伪加密
archpr爆破失败
那应该是要到png里去找了
查了查
PNG文件图像头部不止是文件类型的标识;还包含了长度、高度以及校验值
通常情况下,一个图像的产生,就会被赋予各种文件头部信息;
一般情况下图像刚产生的时候,长宽高等信息会被校验,产生一个值X1
如果这个图象被修改了,有可能产生图像无法打开或者显示不全,校验值被修改为X2;
使用TWeakPNG去校验的时候,通过长宽高算出来的校验值是X1跟现在的X2不一致,产生报错。
高度值被修改,通过错误的长宽高,算出错误的校验值X3(Winhex 第二行前四个字节为宽度,4-7字节为高度,最后三个字节以及第三行第一字节为CRC校验值),如果计算出来的值报错,那一定是被篡改过
修改高度
解开压缩包得到.pcapng格式的文件Ditf.pcapng,使用wireshark进行分析,内容太多,无从下手,尝试搜索各种关键字,在搜索png时,发现kiss.png,追踪http流量发现一串特征明显的代码:ZmxhZ3tPel80bmRfSGlyMF9sb3YzX0ZvcjN2ZXJ9;
base64解码
得到flag{Oz_4nd_Hir0_lov3_For3ver}。
What-is-this
把文件拷贝到kail Linux
把这两张图片(pic2.jpg,pic1.jpg)拷贝到win—>用“Stegsolve”软件打开,经过一波操作下来flag就出现了
再见李华
用stegsolve看完之后没有发现什么异常
再试试这个
可以发现在文件中还存在着其他的文件
把解压后的图片后缀改为.zip
我们可以看到,改完后缀是再想打开就会需要密码
仔细找找题目给的提示
LiHua 1000
在这里猜测LiHua应该是密码的一部分(署名)1000应该是指四位数的密码
组合起来,从这个思路去爆破,就好了
密码是15CCLiHua
Flag:Stay hungry, Stay foolish.
小小的PDF
下载下来是一个 pdf文件 ,不管有没有隐藏文件,先用formost 分离一下,没想到直接 分离出来了三张图片,包含一张flag图片
至此 我在攻防世界中已经 遇到 三种 pdf 的隐写方式:
1,新手区 : pdf :将flag隐藏在图片的下面 》 需要 先将格式转为 word 再将图片拖开 就能看到 flag
2,新手区 :stegano :利用类似水印的方法将flag隐藏在大量文字下面(不清粗具体方法) 》 全选复制 到 txt文件中就能 显示出密文
3,高手区: 小小的pdf: 嵌入文件 》 直接用 formost 分析 或用 binwalk分离
倒立屋
是lsb隐写
用stegsolve也可以
得到flag
尝试了下要反过来:flag{9102_cCsI}
法二:
直接先扔进zsteg
打野
打野)
利用zsteg检测下图片里是否存有隐写数据。
成功出现flag:qwxf{you_say_chick_beautiful?}