Hacker101之Encrypted Pastebin题解


打开链接http://35.227.24.107/b3494b3299/

发现是一行字,两个框外加一个按钮。

这里测试输入test/test 通过burp抓包发现,发现存在一个post参数,这里可以测试下(修改下值)

第一个Flag

这里我把post参数的值改成了1,得到第一个flag 0fbf9a7732fdac03005363563db2a3b0a08d0735a61cfc4c9369cc3eab69d27b

第二个Flag

接下来找第二个flag,现在唯一有用的貌似就是那个报错信息了,看这个应该是用了base64之类的,然后题目在最开始提示了AES加密

1
2
3
4
5
6
7
8
9
10
Traceback (most recent call last):
File "./main.py", line 69, in index
post = json.loads(decryptLink(postCt).decode('utf8'))
File "./common.py", line 46, in decryptLink
data = b64d(data)
File "./common.py", line 11, in <lambda>
b64d = lambda x: base64.decodestring(x.replace('~', '=').replace('!', '/').replace('-', '+'))
File "/usr/local/lib/python2.7/base64.py", line 328, in decodestring
return binascii.a2b_base64(s)
Error: Incorrect padding //base64填充错误

首先根据里面的替换规则把base64替换下

1
http://35.227.24.107/7c4322d4f4/?post=UDbJkUKc6eXpmQfzSXPEyDqntXYEW/kR1FQc3qp59PYi7CBgZZHuVw2ITv44vlKS4YZyMtLB5rY+ynJYijjn6WSQ2+OYcXdUa6n6HZoevmcId2dFnuMgd1dOl6tFi6JlYc00KD87wqgvumyMFEhPy4j9LsnHF7Dly7O6fXaZ0WMlFWVM2NZE3koOoCPsz0JoUd5E3Bf9gByJ+bZQgt6oqA==

这里卡住了,懵逼中,在几个小时一直在burp上测试,后来发现把post参数值留空发现了报错信息变了

1
2
3
4
5
6
7
8
9
10
11
12
Traceback (most recent call last):
File "./main.py", line 69, in index
post = json.loads(decryptLink(postCt).decode('utf8'))
File "./common.py", line 48, in decryptLink
cipher = AES.new(staticKey, AES.MODE_CBC, iv)
File "/usr/local/lib/python2.7/site-packages/Crypto/Cipher/AES.py", line 95, in new
return AESCipher(key, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/Crypto/Cipher/AES.py", line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
self._cipher = factory.new(key, *args, **kwargs)
ValueError: IV must be 16 bytes long

这里我搜了下AES.MODE_CBC,结合上面Incorrect padding 去google了一把找到了这个问题The CBC Padding Oracle Problem链接如下 https://eklitzke.org/the-cbc-padding-oracle-problem 因为我没搞过密码学的东西,所以只能去搜下有没有工具一类的,通过Google发现了kali下有一个叫PadBuster的工具。

1
./padBuster.pl "http://35.227.24.107/7c4322d4f4/?post=UDbJkUKc6eXpmQfzSXPEyDqntXYEW/kR1FQc3qp59PYi7CBgZZHuVw2ITv44vlKS4YZyMtLB5rY+ynJYijjn6WSQ2+OYcXdUa6n6HZoevmcId2dFnuMgd1dOl6tFi6JlYc00KD87wqgvumyMFEhPy4j9LsnHF7Dly7O6fXaZ0WMlFWVM2NZE3koOoCPsz0JoUd5E3Bf9gByJ+bZQgt6oqA==" UDbJkUKc6eXpmQfzSXPEyDqntXYEW/kR1FQc3qp59PYi7CBgZZHuVw2ITv44vlKS4YZyMtLB5rY+ynJYijjn6WSQ2+OYcXdUa6n6HZoevmcId2dFnuMgd1dOl6tFi6JlYc00KD87wqgvumyMFEhPy4j9LsnHF7Dly7O6fXaZ0WMlFWVM2NZE3koOoCPsz0JoUd5E3Bf9gByJ+bZQgt6oqA== 16 -encoding 0

这样跑一下就出结果了,因为我网络的原因我跑不出来。跑了一下午也就跑出了这个(我太难了)

这样相当于解决了第二个flag

第三个Flag

先学下AES加密之类的,先溜了。。。。。。。

第四个Flag

文章目录
  1. 1. 第一个Flag
  2. 2. 第二个Flag
  3. 3. 第三个Flag
  4. 4. 第四个Flag
|