这一关是有点坑爹啊
点一下图片上的蜜蜂,弹出一个登陆框,然后提示信息说“inflate”,打开源码,有个<map name="notinsect"></map>,notinsect:不是昆虫,整个蜜蜂是由多个点连起来的区域,然后最后有用户名和密码的提示。
<!--
un: 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
pw: 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08'
-->
然后图片下方有行字:Where is the missing link? 整个html页面的title是working hard?
OK,分析一下。提示上有个单词:inflate,那意思应该是把下面的un和pw解压。
网上一搜,果然有个zlib。先试一下。
>>> s="hello world"
>>> zlib.compress(s)
'x\x9c\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x1a\x0b\x04]'
>>> import sys
>>> sys.getsizeof(s)
48
>>> sys.getsizeof(zlib.compress(s))
56
压缩的结果长得是有点像。但压缩的效果真是有点扯淡啊。再试一下。
>>> s="galkgh354134343433algalfgafgalfalfafa54646544444486321366546864313246546454353"
>>> cd=zlib.compress(s)
>>> sys.getsizeof(s)
115
>>> sys.getsizeof(cd)
99
总算有点效果。
那么试一下un和pw:
>>> un='BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
>>> zlib.decompress(un)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
zlib.error: Error -3 while decompressing data: incorrect header check
我去,居然不对。头部错误,难道这不是一个字符串的压缩数据???
还有其他信息没有用上,图片还有个数字圈成的区域,就是那个蜜蜂的形状。而un和pw貌似也可以转成数字。那么转成数字再试一下。
>>> [ord(x) for x in un]
[66, 90, 104, 57, 49, 65, 89, 38, 83, 89, 65, 175, 130, 13, 0, 0, 1, 1, 128, 2, 192, 2, 0, 32, 0, 33, 154, 104, 51, 77, 7, 60, 93, 201, 20, 225, 66, 65, 6, 190, 8, 52]
把html中的点全部替换成上面的点,结果页面上出现了极不规则的图案,pw也是这样,这俩放到一块也是一样,排了序之后照样没什么有价值的信息。
看来这个方法也不对,还有什么提示信息没用上吗?就剩:where is the missing link?和working hard?了,看不出有什么价值的东西,把bee放到url里,说“and she is BUSY.”,BUSY用这么大写强调,难道有什么重要的信息吗?还是没看出来。
重复错误方法加胡思乱想,还是没找到什么东西?搜搜答案吧。
答案是用bz2来解压。
真是崩溃。
接下来看看bz2和zlib有什么区别。
>>> s="hello world"
>>> zlib.compress(s)
'x\x9c\xcbH\xcd\xc9\xc9W(\xcf/\xcaI\x01\x00\x1a\x0b\x04]'
>>> bz2.compress(s)
'BZh91AY&SYD\xf7\x13x\x00\x00\x01\x91\x80@\x00\x06D\x90\x80 \x00"\x034\x840!\xb6\x81T\'\x8b\xb9"\x9c(H"{\x89\xbc\x00'
网上搜一下,zlib是以x\x9c开头的,就是上文提到的header,bz2的开头是
BZh91AY&SY。
想想python challenge还是挺用心的,毕竟BZh91AY&SY比x\x9c要好记多了。
知道何时停止,也是一种智慧!