WarGame/Webhacking.kr

old-33

cyanhe_wh 2020. 12. 24. 17:05
반응형

풀이

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 코드로 돌려 답을 구하는 것도 좋다. 가장 편하다.

 

반응형

'WarGame > Webhacking.kr' 카테고리의 다른 글

old-54  (0) 2020.12.26
old-47  (0) 2020.12.26
old-6  (0) 2020.02.20
old-5  (0) 2020.02.20
old-26  (0) 2020.02.17