题目地址

http://www.pythonchallenge.com/

0x0 0.html

pow(2, 38)

0x1 map.html

coding:utf-8

'''
f = lambda x: chr((ord(x) - 0x61 + 2) % 26 + 0x61)

src = 'g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.'
des = ''

for i in src:
if i >= 'a' and i <= 'z':
des += map(f, i)[0]
else:
des += i
print des
'''

'''

another method: use string.maketrans()

import string
table = string.maketrans(string.ascii_lowercase, string.ascii_lowercase[2:] + string.ascii_lowercase[:2])
src = 'g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.'
url = 'map'
print src.translate(table)
print url.translate(table)
#'''

0x2 ocr.html

coding:utf-8

l = {}
src = open('ocr.dat', 'rb').read()

for i in src:
if i in l:
l[i] += 1
else:
l[i] = 1
s = ''
for (i, k) in l.items():
if k == 1:
s += i
out = ''
for i in src:
if i in s:
out += i

print out

0x3 equality.html

coding:utf-8

import re

src = open('equality.dat', 'rb').read()
p = re.compile('[A-Z][A-Z]{3}([a-z])[A-Z]{3}[A-Z]')

l = p.findall(src)

print ''.join(l)

0x4 linkedlist.php

coding:utf-8

import urllib

s_id = '12345'

s_id = '8022'

url = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
for i in range(410):
f = urllib.urlopen(url + s_id)
line = f.read()
if line.find('and the next nothing is ') != -1:
s_id = line[line.index('and the next nothing is ')+24:].strip()
print s_id
else:
print line
break

0x5 peak.html

coding:utf-8

import pickle

data = pickle.loads(open('banner.p', 'rb').read())

print '\n'.join([''.join([p[0] * p[1] for p in row]) for row in data])

0x6 channel.html

coding:utf-8

import zipfile

z = zipfile.ZipFile('channel.zip')
name = '90052.txt'
c = []
while(1):
r = z.read(name)
info = z.getinfo(name)
c.append(info.comment)
if 'Next nothing is ' in r:
name = r[16:31] + '.txt'
else:
break
print ''.join(c)

0x7 oxygen.html

coding:utf-8

from PIL import Image

im = Image.open('oxygen.png')

o1 = ''.join([chr(im.getpixel((i, 43))[0]) for i in xrange(0, 609, 7)])

print o1

smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]

k = [105, 110, 116, 101, 103, 114, 105, 116, 121]

print ''.join([chr(i) for i in k])

0x8 integrity.html

在网页源文件中有链接:../return/good.html

用户名和密码如下:


保存为文件,使用bunzip2解压,得到用户名和密码,登录即可。