bugku CTF杂项wp(2)

十六、想蹭网络先破解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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章