bugku 16-31 writeup(misc)

十六、想蹭网络先破解wifi密码

题目给了我们一个数据包,且提示我们flag为wifi密码,

第一步:

打开文件,WIFI连接认证的重点在WPA的四次握手包,即eapol协议的包,过滤一下:
刚好四个包
在这里插入图片描述

第二步

既然是密码,还给了我们数据包,那么我们开始爆破,首先需要一个字典

因为手机号为11位,给了我们7位,故我们使用一下python代码生成字典
代码如下:

import string
s = string.digits
f = open('1.txt', 'w')
for i in s:
    for j in s:
        for k in s:
            for o in s:
                f.write("1391040"+i+j+k+o+'\n')

第三步

使用aircrack-ng进行爆破。

首先进行安装aircrack-ng,我在kali下进行操作。无法锁定的原因是我之前使用终端时,可能强制退出,还有命令在执行,那么我们就强制解除,命令如下

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

在这里插入图片描述
然后进行安装aircrack-ng
命令如下

apt-get install aircrack-ng

安装好用,进行爆破,得出密码

aircrack-ng -a2 wifi.cap -w password.txt

在这里插入图片描述
aircrack-ng使用

aircrack-ng -w 字典文件 目标 

破解KEY,漫长的过程.漫不漫长取决于两个方面:一是网管的聪明程度(能否设置出复杂的密码),二是电脑的速度. 
usage:aircrack-ng[options]<.cap/.ivsfile(s)>

Commonoptions:
-a<amode>:暴破(1/WEP,2/WPA-PSK)

-e<essid>:选择essid为目标

-b<bssid>:选择ap的mac为目标,就是破解识别的关键字

-q:使用安静模式,无数出模式

-C<macs>:将所有的AP合并为一个虚拟的

–help:显示这个帮助

十七、linux2

根据题目提示,flag为key{},那么使用winhex打开文件,并搜索key发现flag.

十八、账号被盗了

点击getf lag,发现没有管理员权限,那么我们就想到cookie,使用抓包工具将cookie的值,改成ture,即可得到一个网站然而发现该网站我怎么也进去,打扰了。

十九、细心的大象

1、下载图片,使用winhex打开没发现什么有用的信息

2、用binwalk查看图片是否包含其他文件,成功分离出一个压缩文件
在这里插入图片描述
3、发现该压缩文件里有个图片是加密的,于是我们寻找密码

4、在用winhex看一下大象的图片,还是没发现重要信息,我们打开文件的属性,去看看文件的详细信息里面有什么信息,发现一串类似于base64加密的东西。
在这里插入图片描述
5、把该串信息当作密码输入,发现失败了,base64解密后,再输入,可以得到以下图片
在这里插入图片描述
使用winhex打开修改图片的高为500,就可以在图片里看到flag了
在这里插入图片描述

二十、爆照

1、首先对文件进行分析,发现1个压缩包,压缩包里有一个动态图和8个文件。更具文件的大小可以发现88、888、8888比较特殊。flag应该在这3张图片里。

使用winhex打开可以依次打开这3个文件可以发现这3个文件都是jpg文件。修改后缀名为jpg

可以发现88文件有个二维码,扫描得bilibili

在这里插入图片描述
888文件是个图片,查看文件详细信息可以发现一段base64加密的数据,解密得silisili
在这里插入图片描述
8888文件修改后缀名得到一张图片,详细信息没有有用信息,使用binwalk分析下,发现了一个压缩包。压缩包里有一个二维码图片,扫描得panama
在这里插入图片描述
故该题flag为{bilibili_silisili_panama}

二十一、猫片(安恒)

根据题目提示,这样应该是LBS隐写
在这里插入图片描述
1、下载附件修改后缀名为png

2、使用stegsolve打开,使用其DATA extract功能进行分析,根据提示为LSB,BGR隐写,经过下图操作,保存为png文件。
在这里插入图片描述
3、发现图片打不开,使用winhex打开查看,进行下图操作,然后保存,发现是半张二维码
在这里插入图片描述

4、进行图片高度的修改,可以得到一张完整的二维码,扫描下载flag.rar压缩包
在这里插入图片描述
打开文件,有上面的错误,flag文件里的内容,有点气,费尽脑子,发现无可奈何,于是开始查各种资料。
在这里插入图片描述
发现是ntfs文件数据流隐写,就说题目的提示为什么ntfs没用到。
使用ntfsstreamsEditor工具查找数据流,然后导出(注意这边一个坑:flag.rar这个压缩文件一定要用winrar来解压才能找得到数据流)

在这里插入图片描述
发现导出的数据流文件是python反编译文件。直接扔到在线我就进行python反编译 ,https://tool.lu/pyc/
得到以下结果

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']

进行解密脚本的编写

def decode():
    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']
    ciphertext.reverse()             # 加密中使用ciphertext[::-1]进行取反,故使用reverse取反,
    flag = ''
    for i in range(len(ciphertext)):     # 加密中使用的是flag的长度,而ciphertext与flag长度一样
        if i % 2 == 0:
            s = int(ciphertext[i]) - 10    # 加密中s的值其实就是int(ciphertext[i])
        else:
            s = int(ciphertext[i]) + 10
        s = chr(i ^ s)                    # 加密中为i和flag异或,那么i与s异或即可的到flag
        flag += s
    return flag

if __name__ == '__main__':
    flag = decode()
    print(flag)

二十二、多彩

下载图片,放到Stegsolve里面跑下。
发现了
在这里插入图片描述
图片的名称又是lipstick.png (lipstick是口红意思),这边又有YSL,所以怀疑与YSL口红有关(圣罗兰口红).使用data extract分析下,发现PK开头,直接save bin 存为zip格式
![在这里插入图片描述]bugku-16-26-writeup-misc\18.png)
发现文件打不开,于是使用winhex打开,进行图中操作,成功打开文件,发现flag.txt文件加密

在这里插入图片描述
然后解压文件会产生错误,这里有个小坑注意,不能使用winrar解压,要使用360压缩等解压。
在这里插入图片描述
未完待续,卡住了这题

二十三、旋转跳跃

一看题目,提示我们密码,还是音频文件,目测是音频隐写。
上工具MP3Stego。可以参考我的这篇博客
在这里插入图片描述
可以得到一个txt文件,,得到flag
在这里插入图片描述

二十四、普通的二维码

扫描会得到一句话:我不会告诉你flag就在这里。使用winhex打开发现最后一段数字,应该是8进制数。
在这里插入图片描述
编写python脚本转ASCII码,即可得到flag

a = '146154141147173110141166145137171060125137120171137163143162151160164137117164143137124157137124145156137101163143151151041175'
flag = ''
for i in range(len(a) // 3):
    flag += chr(int(a[i * 3:i * 3 + 3], 8))     # 八进制3为一个ASCII码
print(flag)

二十五、乌云邀请码

经过一些尝试,原理是LSB隐写,使用Stegsolve工具的Data Extract功能即可得到flag
在这里插入图片描述

二十六、神秘文件

下载附件,发现里面有一张图片,和一个压缩包,且压缩包里也有一个一模一样不过是加密的图片。
1、于是我们想到明文攻击。使用ARCHPR工具进行攻击。

2、注意把logo压缩成压缩包,并且把flag.zip的压缩包里的doc文件删除。

3、这边有一个坑,我们的压缩算法要与flag.zip的压缩算法一样才可以。我卡了好久在这。

4、可以复制flag.zip然后存入logo.png文件,然后修改名字为logo.zip。

5、可以得到口令,输入口令我们发现是一个笑脸
在这里插入图片描述
进行binwalk文件分离
在这里插入图片描述
然后在docProps文件下有个flag.txt,进行base64解码即可得flag。
破解zip加密的常见的几种方法,可以参考这个大佬的博客

二十八、图穷比见

下载附件
,使用winhex打开,在文件最后面发现一大堆16进制,然后复制到notepad里使用插件里的converter进行转化为ascii码。发现是一对坐标,然后把左右括号去掉,把逗号换成空格
在这里插入图片描述
然后使用gnuplot工具画图
使用命令 plot "E:\\gnuplot\\2.txt"
在这里插入图片描述
在这里插入图片描述
扫描得flag

二十九、convert

一、打开文件发现一堆二进制,保存为2.txt文件,那肯定得转化为16进制,这边我尝试直接利用脚本转化为10进制然后转化为ASCII,发现是个rar文件,却因为有些字体识别不了乱码,打不开文件。

with open('2.txt', 'w',encoding='utf-8') as f1:
    with open('1.txt',encoding='utf-8') as f2:
        while True:
            temp = f2.read(4)
            if temp:
                temp = int(temp, 2)   # 二进制转10进制
                temp = hex(temp)      # 10进制转16进制
                f1.write(temp[2:])    # 去掉0x
            else:
                break

二、利用Notepad++自带的十六进制转ascii,发现rar文件头,将文件另存为一个rar文件。
打开文件发现里面有一个图片,我们先看下属性,发现有一串base64码。
然后在线解密,发现flag.

三十、听首音乐

听了一会后,没听出啥,使用audacity进行分析,发现有点像摩斯密码
在这里插入图片描述
然后放大,摩斯密码有两种“符号”用来表示字符:点(.)和划(-),或叫“滴”(Dit)和“答”(Dah)。(滴,1t;嗒,3t),
分析,写出摩斯密码为(每一组后面加上空格

..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -.. ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.

在线解密http://www.zhongguosou.com/zonghe/moErSiCodeConverter.aspx
在这里插入图片描述

三十一、好多数值

打开题目发现一堆数值,有点像rgb的值,255,255,255就是白色。
那么题目的思路就是一个根据这堆值生成图片

把行61366因式分解分解成两个数相乘(503*122)

from PIL import Image
x = 503  # x坐标  通过对txt里的行数进行整数分解
y = 122  # y坐标  x*y = 行数

im = Image.new("RGB", (x, y))  # 创建图片
with open('1.txt') as file:  # 打开rbg值文件
    # 通过一个个rgb点生成图片
    for i in range(0,x):
        for j in range(0,y):
            line = file.readline()  # 获取一行的rgb值
            rgb = line.split(",")  # 分离rgb
            im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))  # rgb转化为像素
    im.show()

在这里插入图片描述

0%