Python Challenge:第八关

来源:互联网 发布:极品五笔6.9优化版 编辑:程序博客网 时间:2024/04/29 10:00

这一关是有点坑爹啊

点一下图片上的蜜蜂,弹出一个登陆框,然后提示信息说“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要好记多了。


知道何时停止,也是一种智慧!





0 0
原创粉丝点击