H4x0r决定给他的城堡添加一个额外的先进安全身份检验层。他的访问密钥是一个二维码且是唯一的,并一直放在他的钱包里。然而不幸,当他离开他的城堡护城河时一不小心把二维码弄到了河里,二维码被弄湿损毁了。现在他不能回到自己的城堡,迫切需要一个黑客帮助,他在craigslist网站发布了求助,描述了情况,这是你露一手的绝佳机会。
这是损毁的二维码
flag是隐藏在二维码里密码的最后13个字符的MD5值。
使用PS打开二维码,调整图片色阶,使图片大致恢复原样,从图中大致可以推出图片做了蒙版处理。
所以我们调整图像的阈值,使蒙版处理效果失效,让图像恢复正常。
根据上图和二维码一般格式中可推出二维码中间以下部分可能做了反相处理,所以我们将图像中间一下部分再做一次反相让图像恢复原样。
使用PS修复二维码的文章可以参考:如何用PS修复一张模糊的二维码?
尝试着解码,解码结果:
计算出MD5值
root@kali:~# echo sdslabs.co.in | md5sum b149a901f5ca408a81fe8f36f7c717f6 - root@kali:~# echo -n sdslabs.co.in | md5sum 5d75674e66e0b3d57c31efe75099408e -
h4x0r厌烦了你对他的城堡的所有攻击,所以他决定报复攻击你,他给你发来一封带有图片的邮件作为警告,希望你能找出他的警告消息:-)
消息的MD5值就是flag。
给出的图片:
用StegSolve(基于Java开发的流行图片隐写分析软件)打开图片,浏览图片各个颜色通道,发现Blue plane 0通道时图片左上角突然多了一些内容,应该就是隐藏的二进制信息。
所以使用StegSolve中Analyse选项下Data Extract功能查看Blue plane 0通道:
计算出MD5值
1
2
3
4
|
root@kali:~ # echo modernwarfare | md5sum 3c87b2bc2f0e1143ecb67aa8570ffc1b - root@kali:~ # echo -n modernwarfare | md5sum /* 选项-n表示输出文字后不换行*/ d2432052b887f9e09fb8fa44b11861ef - |
用StegSolve打开图片,浏览图片的Gray bits通道:
将Gray bits通道时的图片另存为solved.bmp:
编写脚本提取这些信息,将它们转换为0和1二进制:
1
2
3
4
5
6
7
8
9
|
from PIL import Image flag_img = Image. open ( "solved.bmp" ) w,h = flag_img.size msg = '' for x in range ( 0 , flag_img.size[ 1 ]): g,b,a = flag_img.getpixel((x, 0 )) if g = = 255 : msg + = '0' else : msg + = '1' print msg |
提取出的隐藏二进制数值
1
2
|
root@kali:~ # python get.py 011011010110111101100100011001010111001001101110011101110110000101110010011001100110000101110010011001010000000000000000000000000000 |
使用编码转换神器JPK将二进制串转换为ASCII字符串:
计算出MD5值
1
2
3
4
|
root@kali:~ # echo modernwarfare | md5sum 3c87b2bc2f0e1143ecb67aa8570ffc1b - root@kali:~ # echo -n modernwarfare | md5sum /* 选项-n表示输出文字后不换行*/ d2432052b887f9e09fb8fa44b11861ef - |
H4x0r知道现在简单的文本认证在现今时代被破解根本不是事儿,如今语音认证可谓是风靡一时。因此,他决定也让他的城堡来个语音认证,可惜他不太懂这方面,现在有一个音频文件,他自己似乎无法破译,现在他需要你的帮助,你可以在这里下载这份音频文件。
找到隐藏的密码,flag就是密码的MD5值。
下载压缩文件之后,解压,使用Audacity打开wav格式的音频文件。
打开之后播放几次没有听出什么异常,然后分析一波,既然是基于提示是语音认证,那么解题方向应该不是数字隐藏,然后试着改变音频轨道和效果,分析音频频谱,也没有发现什么,之后观察音频波形,发现波形很有规律。
整个音频波形只有两种,且每8个波形为一个周期,突然想起二进制0,1,最后发现当
波形先下后上为0
波形先上后下为1时解出的二进制串为011000100110000101101011011001000110111101110010
,将二进制串转ACSII在线在线转换之后为:bakdor
计算出MD5值
1
2
|
root@kali:~ # echo -n bakdor | md5sum /* 选项-n表示输出文字后不换行*/ e1b64df17443b51e3007fd3d5370dca1 - |
所以flag为e1b64df17443b51e3007fd3d5370dca1
。
H4x0r,一天早上,为自己的网站搞了一个身份验证系统。他很自然觉得自己搞了一个先进高端的系统,然而我们是知道他是多么"出色的"。成为管理员非常容易,你可以访问这个链接的轻松获取flag。
姿势一:
1
|
javascript:document.cookie= "username=admin" |
姿势二:
1
2
3
4
5
6
7
8
9
10
|
import requests def main(): cookie = { "username" : "admin" } req = requests.get(url, cookies = cookie) print (req.text) if __name__ = = "__main__" : main() |
姿势三:
【Backdoor CTF 2013 Writeup 未完待续,安全脉搏专栏作者4ido10n原创,转载请注明来自安全脉搏】