安询2019[部分crypto+misc]

前言

在安询杯中解出的几道题,这里记录一下

然后给自己开一个坑:

(1) thinkphp6 反序列化要学

(2) RSA 还有AES 也要学

1.MISC

1.1 吹着贝斯扫二维码

解压后,是一堆二维码的图片

拼图……手动拼图……

然后扫描二维码:

1
BASE Family Bucket ??? 85->64->85->13->16->32

在flag.zip的文件中

1575119721297

猜测这是密文.然后上面那个base全家桶是一个加密的过程,这个是密文,顺序倒过来解密

1575120123832

其中13指的是rot13,用脚本解码,脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#coding:utf-8

import string

def decoder(crypt_str,shift):
crypt_list = list(crypt_str)
plain_str = ""
num = int(shift)
for ch in crypt_list:
ch = ord(ch)
if ord('a') <= ch and ch <= ord('z'):
ch = ch + num
if ch > ord('z'):
ch -= 26
if ord('A') <= ch and ch <= ord('Z'):
ch = ch +num
if ch > ord('Z'):
ch -= 26
a=chr(ch)
plain_str += a

print(plain_str)

crypt_str = raw_input("Crypto_text:")
print "!------decode------!"
shift=13
decoder(crypt_str,shift)
1
:d]>JA62bf<^o]!;,or.=a;i@9/17'@8oNU

base85解密,不过要用a模式,

1575120566058

ThisIsSecret!233 压缩包密码

1575120628566

1.2 music

MP3stego这个工具

1
Decode.exe -X -P 123456 3.mp3

然后得到一个txt文件.里面有wav压缩包的解压密码

然后使用silenteye解码即可,这个也是在百度的时候发现的,下载地址:https://silenteye.v1kings.io/

要下载最新版,旧版的无法解密wav文件,参考:几道音频misc

1.3 attack

流量分析题

分析流量包可以发现这个流量差不多就是去获取那个加密的zip包,把他的数据保存成zip文件,

会是一个加了密的zip包,里面就有flag.txt

然后导出这个lsass.dmp

1575121255302

使用工具mimikatz获取administrator的密码,

1575126740818

W3lc0meToD0g3 是压缩包的密码,打开flag.txt

在最底下有flag

参考:https://www.secpulse.com/archives/2926.html

2.CRYPTO

2.1 funny-php

1575122137284

我直接贴exp了,这里有个很好玩的地方就是在加密算法中有这么一段代码

1
2
if($__%100==0)
$__=base64_encode($__);

这个自己领悟吧…..exp如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
$afterbase64="11444=?>99=<>@??AJIDEJGIIROLLNOPPZ[TUVWWXZZ\]_c";
function decode($str){
$_1=0;
while(strlen($str)!=0){
//print($str);
$base64_decode=base64_decode($str);
//print(strlen($base64_decode));
if(($base64_decode%100==0)&&(strlen($base64_decode)!=0)){
print("cookie------------");
print($str);
print($_1);
$str=$base64_decode;
}
$last=substr($str,-1);
$ord_last=ord($last)-(46-$_1);
print(chr($ord_last));
print("\n");
$str=substr($str,0,-1);
$_1++;
}
print("cococococo-------------");
print($_1);
}
decode($afterbase64);
print("\n");
print("dddddd---------------");
?>

然后这个的解码结果如下:

1575124600991

然后逆序的看

1
123,101,97,115,121,95,101,110,99,111,100,101,125

再chr()转字符,得:flag{easy_encode}

2.2 standard_AES256

sbox,key和cipher 为已知量

思路:做Sbox的逆S(n-1)映射,走一下exp得flag

1
2
3
4
5
6
7
8
9
10
11
12
13
Sbox = ['********']
ni_Sbox= ['*********']

for x in range(16):
for y in range(16):
t=Sbox[x][y]
n = t%16
m = t//16
ni_Sbox[m][n]=x*16+y

for x in range(16):
for y in range(16):
print(ni_Sbox[x][y],k=",")

解出来的ni_Sbox作为aes256的__InvSbox的table再走一遍,得到flag,脚本网上找….

flag{sbox_to_invsbox}

Author: 我是小吴啦
Link: http://yoursite.com/2019/12/03/%E5%AE%89%E8%AF%A22019-%E9%83%A8%E5%88%86crypto-misc/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.