bugku--杂项WP

目录

2.这是一张单纯的图片

 3.隐写

4.telnet

5.眼见非实(ISCCCTF)

6.啊哒

7.又一张图片,还单纯吗

8.猜

 9.宽带信息泄露

 10.隐写2

13.come_game

14.linux

15.隐写3

16. 做个游戏(08067CTF)

17.想蹭网先解开密码

 18.Linux2

19.账号被盗了

21.爆照(08067CTF)

22.猫片(安恒)

23.多彩

24.旋转跳跃

25.普通的二维码

26.乌云邀请码

27. 神秘的文件

28.图穷匕现

29.convert

白哥的鸽子

论剑


1.签到题

 

微信扫码即可

2.这是一张单纯的图片

 用winhex打开,发现一串Unicode

转ascii

 

 3.隐写

下载下来之后是这样一张图


 bugku...是不是感觉隐藏的东西了,改一下高度,查案像素值

用程序员计算器算一下 16进制

这里我把高度改成了和宽度一样,保存,再次打开

4.telnet

 telnet远程控制,一个流量包

 

看见telnet,查看一下tcp流,emmm

算了,说一下,我会的吧,contains 查找字符串,导出文件等等。。

5.眼见非实(ISCCCTF)

下载下来之后是个不带后缀的zip包

改为zip,解压后得到一个docx和一个txt文件

打开txt

d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e

看到一堆二进制,八进制,十进制,十六进制,转一下字符串

#!/usr/bin/python
# -*- coding:utf8 -
import binascii

text = "d87 x65 x6c x63 o157 d109 o145 b100000 d116 b1101111 o40 x6b b1100101 b1101100 o141 d105 x62 d101 b1101001 d46 o40 d71 x69 d118 x65 x20 b1111001 o157 b1110101 d32 o141 d32 d102 o154 x61 x67 b100000 o141 d115 b100000 b1100001 d32 x67 o151 x66 d116 b101110 b100000 d32 d102 d108 d97 o147 d123 x31 b1100101 b110100 d98 d102 b111000 d49 b1100001 d54 b110011 x39 o64 o144 o145 d53 x61 b1100010 b1100011 o60 d48 o65 b1100001 x63 b110110 d101 o63 b111001 d97 d51 o70 d55 b1100010 d125 x20 b101110 x20 b1001000 d97 d118 o145 x20 d97 o40 d103 d111 d111 x64 d32 o164 b1101001 x6d o145 x7e"
solution = ''

text2 = text.split(' ')
for x in text2:
    print(x)
    if x[0] == 'b': #binary
        solution += chr(int(x[1:],2))
    elif x[0] == 'x': # hexadecimal
        solution += chr(int(x[1:],16))  #python3中没有decode方法
    # elif x[0] == 'x':  
    #     solution += x[1:].decode("hex")
    elif x[0] == 'd':
        solution += chr(int(x[1:]))
    elif x[0] == 'o': 
        solution += chr(int(x[1:],8))
print(solution)

捕捉到一个flag

6.啊哒

一张图片,看属性

十六进制转换

p = "73646E6973635F32303138"
s = []
for i in range(0, len(p), 2):
  b = p[i:i+2]
  s +=chr(int(b, 16))
print(''.join(s))

应该是密码什么的

binwalk一下果然发现其他东西

foremost分离出一个压缩包

输入sdnisc_2018解压

得到 flag

7.又一张图片,还单纯吗

 另存为,查看属性,啥都没有,binwalk发现东西,foremost分离一下

发现flag

8.猜

这个还用猜,刘亦菲

百度了一下别人的,百度识图

 9.宽带信息泄露

 打开之后是乱码,被加密了,到网上寻找该配置程序的解密工具,找到一款名为RouterPassView的工具,使用该工具打开.bin文件,如下所示:

xml文件,题目说的是用户名,搜一下username

 10.隐写2

右键另存为,binwalk,foremost, 发现压缩包,有提示

爆破白

解压

右键 notepad++打开

得到 f1@g{eTB1IEFyZSBhIGhAY2tlciE=} ,base64解码,@变为a

13.come_game

 

靠玩,能得到flag的请私聊我一下,泪

发现有存档,

发现一个2,修改为3,

发现新关卡,依次修改为4,5 ,得到flag

14.linux

解压得到flag

strings flag

15.隐写3

 感觉没显示完整,查看一下属性

计算一下16进制

将01修改为02

得到flag

16. 做个游戏(08067CTF)

使用java反编译工具反编译一下

 找到flag,base64解码一下

17.想蹭网先解开密码

cap流量包,用aircrack-ng爆破一下

需要生成一个手机号的密码集合

#!/usr/bin/python
# -*- coding:utf8 -

s = '1391040'
s1 = ''
dic = open("pass.txt","a")
for a in range(9999):
    s1 = s+str(a).zfill(4)+'\n'
    dic.write(s1)

命令

aricrack -a 2-w pass.txt wifi.cap

 18.Linux2

解压得到brave

binwalk,foremost

what???,为啥咋交都不对

然后,这到底啥意思

19.账号被盗了

bp 抓包改包,false改成true

 发现一个网址

http://120.24.86.145:9001/123.exe

下载下来后,发现

 填好账号,密码

wireshark抓下包

发现两个base64

解码发现是163邮箱账号和密码

bkctftest@163.com

a123456

登录即可

20.细心的大象

解压 ,查看属性

base64解码 MSDS456ASD123zz

binwalk foremost

出现了压缩包,输入密码

眼熟。。改高度

flag都没改,就是那张图

21.爆照(08067CTF)

一张图片

foremost 分离出8个文件和一个gif

用TXT打开,发现是jpg文件

第二张图发现二维码,第三张图备注发现base64,第四张图发现隐藏文件,根据题目提示,得出flag

真的难。。。

22.猫片(安恒)

一波操作,没用,属性,binwalk,steghide,。。。都没用

上网搜了一波,发现是StegSolve解决的

发现有东西,进入Extract Preview

发现是png格式的,保存为二进制。

png 图片开头是89 50 4E 47,删除多余的东西,保存

半张 二维码,改高度,老操作

扫描 二维码,得到

 下载下来是个压缩包

解压

ntfs隐写,前几天刚看这个操作,然而怎么都不好使,看别人题解得知必须薇能让人解码才可以读出字节流,

果然好使

.pyc python逆向

uncompyle2 反编译一下

# 2018.11.19 20:12:05 CST
#Embedded file name: flag.py
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']
+++ okay decompyling /root/Desktop/C!_Users_ppp_Desktop_鏉傞」_flag_flag.txt!flag.pyc 
# decompiled 1 files: 1 okay, 0 failed, 0 verify failed
# 2018.11.19 20:12:05 CST

 

 写脚本解密


import base64

def decode():
    flag = ''
    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']
    a = []
    a = ciphertext
    a.reverse()    #数组逆序
    len1 = len(a)
    for i in range(len1):
        if i % 2 == 0:
            s = int(a[i]) - 10
        else:
            s = int(a[i]) + 10
        s=chr(i^s)
        flag += s

    return flag
if __name__ == '__main__':
    flag = decode()
    print flag[::-1]   #字符串逆序
    print flag

23.多彩

 

24.旋转跳跃

25.普通的二维码

打开一张二维码

 

binwalk啥也没发现,strings发现一串字符, 感觉像是8进制,因为最大是7,八进制转十进制,

12 49 44 12 9 39 15 25 8 12 9 54 12 41 31 15 8 48 10 41 31 10 1 57 11 57 51 12 25 50 13 9 48 14 33 31 9 57 52 12 25 31 10 33 47 11 57 20 12 41 46 11 57 1 14 25 35 13 9 41 4 9 61

emmm,不可能出来字母,试一下3位转一个

102 108 97 103 123 72 97 118 101 95 121 48 85 95 80 121 95 115 99 114 105 112 116 95 79 116 99 95 84 111 95 84 101 110 95 65 115 99 105 105 33 125

有希望,转字母

f l a g { H a v e _ y 0 U _ P y _ s c r i p t _ O t c _ T o _ T e n _ A s c i i ! }

附上脚本

#!/usr/bin/python
# -*- coding:utf8 -
f = open("1.txt",'r')
s =''
a = f.readline()
len1 = len(a)
for i in range(0,len1,3): #步长为3
        s = int(a[i:i+3],8) #切片长度为3
        print(chr(s)),
#!/usr/bin/python
# -*- coding:utf8 -
f = open("1.txt",'r')
s =''
# a = f.read()  #read()只能读一次,在read就读不出了
# len1 = len(a)
# for i in range(0,len1,3): 
#         s = int(a[i:i+3],8)  #使用切片,3位8进制转十进制
#         print(chr(s)),
len2 = 126//3
for i in range(len2):
        ss = eval('0'+f.read(3))   #3位八进制转十进制
        s +=chr(int(ss))
print s

26.乌云邀请码

属性 binwalk strings毫无发现,最后在stegSlove发现东西,flag,

27. 神秘的文件

将题目解压出来,题目压缩包里有个logo.png和一个加密压缩包,很明显的明文破解,使用题目压缩包作为key和writeup压缩包进行明文破解(或者使用2345好压的标准压缩算法压缩logo.png),得到密码:q1w2e3r4

解压后得到doc文件,当成压缩包解密,能找到flag.txt中有一串base64编码的字符串,解码即可。

官方的,反正我是没爆破出来,谁做出来了,告诉我声。

28.图穷匕现

 binwalk 发现有其他东西

foremost 分离出来一张图片,和原图一样,但是只有21.2k,原图好几百k,emm,知道了吧;jpg文件头,FF D8 文件尾FF D9

用16进制编辑器打开,删除jpg文件部分,后缀名改为txt

16进制,转ascii码,notepad++就可以完成

 

接下来 画图就可以了,参考前面

29.convert

白哥的鸽子

jpg图片,查看图片属性,分一下层,binwalk,啥也没有。

strings一下

栅栏解码

神秘的文件

解压后得到一个flag压缩包和logo图片

压缩包含有密码,并且里面也有一个相同的logo图片

知道了吧,zip明文爆破 (WinRAR加压才可以)

解压,打开文档

改后缀为zip,解压,在docProps里发现flag.txt

发现是base64,解密,我用的是notepad++,可以直接解密(插件里面的MIME Tools)

论剑

不知道这道题到底要干什么,试了好多种方法,不好使。

strings 发现一串二进制,转成ASCII为mynameiskey!!!hhh,没啥用

binwalk,foremost,分离得到两张图片,各种尝试,最后发现修改高度,发现东西

打马赛克了,emmmm ,想到了mynameiskey!!!hhh,md5加密

不是,看来这个有可能是密码之类的东西了,可是也没有压缩包啊,继续分析原图片

发现很诡异 ,百度了一波,发现7z文件头:37 7A BC AF 27 1C,修改一下,然后改后缀为7z,改高度

解压的时候发现密码

尝试用 mynameiskey!!!hhh,成功了

对比一下

得到flag  666C61677B6D795F6E616D655F482121487D

最后base16解密

好多数值

大数因数分解网站推荐:http://factordb.com/index.php 

#!/usr/bin/python
# -*- coding:utf8 -
from PIL import Image
x = 503    #x坐标  通过对txt里的行数进行整数分解
y = 122  #y坐标  x*y=行数

im = Image.new("RGB", (x, y))
file = open('1.txt')

for i in range(0, x):
    for j in range(0, y):
        line = file.readline().replace('(','').replace(')','')  #获取一行rgb值,并且把()都替换为空
        rgb = line.split(",") #逗号分割
        im.putpixel((i, j), (int(rgb[0]), int(rgb[1]), int(rgb[2]))) #(i,j)为坐标,后面的是像素点

im.save("f.png")

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值