반응형
풀이
1단계
문제 페이지를 열면 링크가 하나 주어진다.
해당 페이지를 열면 소스코드가 주어지는데, 여기서 조건을 맞추면 다음 링크가 주어진다.
import requests
URL = 'https://webhacking.kr/challenge/bonus-6/'
# # 33-1
url_1 = URL + '?get=hehe'
res = requests.get(url_1)
print(res.text)
2단계
주어진 링크를 받아서 들어오면 또 다른 문제가 주어진다.
# 33-2
url_2 = URL + 'lv2.php'
datas = {
'post': 'hehe',
'post2': 'hehe2'
}
res = requests.post(url_2, data=datas)
print(res.text)
3단계
# 33-3
url_3 = URL + '33.php?myip=your ip'
res = requests.get(url_3)
print(res.text)
4단계
# 33-4
time_data = str(int(time.time()) - 5).encode('utf-8')
print(time_data)
url_4 = URL + 'l4.php?password=' + hashlib.md5(time_data).hexdigest()
res = requests.get(url_4)
print(res.text)
이 부분은 네트워크 통신때문에 실제 서버에서 실행될 때 측정한 시간과 로컬 컴퓨터에서 측정한 시간은 조금 차이가 있다. 이를 맞춰서 하면 답을 구할 수 있다.
5단계
# 33-5
url_5 = URL + 'md555.php?imget=1'
cookie = {'imcookie': '1'}
res = requests.post(url_5, cookies=cookie, data={'impost': 1})
print(res.text)
6단계
# 33-6
url_6 = URL + 'gpcc.php'
cookie = {'test': hashlib.md5(b'121.129.94.190').hexdigest()}
header = {'User-Agent': '1'}
data = {'kk': hashlib.md5(b'1').hexdigest()}
res = requests.post(url_6, headers=header, data=data, cookies=cookie)
print(res.text)
7단계
# 33-7
url_7 = URL + 'wtff.php?your ip=your ip'
res = requests.get(url_7)
print(res.text)
위에 코드를 보면, ip주소에 있는 . 이 빈칸으로 변경되므로 ip에서 점을 뺀 값을 넣어 보내면된다.
8단계
# 33-8
url_8 = URL + 'ipt.php?addr=127.0.0.1'
res = requests.get(url_8)
print(res.text)
9단계
# 33-9
ans = ''
for i in range(97, 122, 2):
ans += chr(i)
url_9 = URL + 'nextt.php?ans=' + ans
res = requests.get(url_9)
print(res.text)
10단계
# 33-9
ans = ''
for i in range(97, 122, 2):
ans += chr(i)
url_9 = URL + 'nextt.php?ans=' + ans
res = requests.get(url_9)
print(res.text)
33-10
url_10 = URL + 'forfor.php'
ip = '121.129.94.190'
ip_len = len(ip)
i = 0
while i <= ip_len:
if i > 9:
j = i // 10
else:
j = i
ip = ip.replace(str(i), str(ord(str(j))))
ip_len = len(ip)
i += 1
ip = ip.replace('.', '')
ip = ip[0:10]
print(ip)
ip = int(ip)
answer = ip * 2
answer = int(ip / 2 * 10)
print(answer)
마지막 php 코드는 파이썬으로 변경할 때 조금 생각하면서 작성해야한다.
php는 형변환이 자유로워서 가능하지만 파이썬은 그렇지 않기때문이다.
아니면 편하게 php 코드로 돌려 답을 구하는 것도 좋다. 가장 편하다.
반응형