[webhacking.kr]old-33 write up

zzsla·2023년 6월 3일
0

문제정보

없다

문제

문제에 들어가면 challenge33-1이라고 적혀 있고 소스코드보는 링크만 나온다. 아래는 Wrong이라고 나온다.

분석

Challenge 33-1

코드를 보게 되면 get으로 get이란 이름에 hehe라는 값을 받으면 다음으로 넘어갈 수 있기 때문에 주소 뒤에 ?get=hehe라고 적어주고 enter한다.

그럼 다음으로 넘어갈 수 있다.

Challenge 33-2

다음은 post로 post,post2라는 이름에 각각 hehe,hehe2라는 값을 보내야 한다. 그래서 따로 코드를 작성해서 실행한다.

import requests

data = {'post' : 'hehe', 'post2' : 'hehe2'}

url = 'https://webhacking.kr/challenge/bonus-6/lv2.php'

response = requests.post(url,data)

print(response.text)

Challenge 33-3

다음은 get으로 myip라는 이름에 자신 ip 값을 받아야 한다. 자신의 ip주소를 찾은 뒤에, 주소 뒤에 ?myip=(자신 ip)를 적어주고 enter한다.

Challenge 33-4

다음은 get으로 password라는 이름에 md5암호화 해시된 time의 값이 들어가야 한다. time은 일반적인 시간이 아닌 1970년 1월 1일 0시 0분 부터 지금까지 지나온 초를 정수를 나타낸 수이다.
hint로 시간이 값이 나오는데 계속 값이 바뀌므로 그것보다 좀 더 높은 숫자를 사용한다. md5 암호화 해시는 burp suite의 decoder 기능을 사용했다.
그래서 주소 뒤에 ?password=(md5로 암호화된 time 값)을 넣고 enter를 계속하면 시간 값이 일치하는 순간에 다음으로 넘어갈 수 있다.

Challenge 33-5

다음은 get으로 imget이라는 이름을 받아야 하고, post로 impost라는 이름을 보내야 하고, 쿠키 중에 imcookie라는 이름이 있어야 한다. 그래서 이것을 종합해서 코드를 작성해 실행한다.

import requests

data = {'impost': '1'}
cookie = {'imcookie' : '1'}
url = 'https://webhacking.kr/challenge/bonus-6/md555.php?imget=1'

response = requests.post(url, cookies=cookie, data=data)

print(response.text)

Challenge 33-6

다음은 쿠키 중에 test라는 이름에 md5암호화 해시된 자신의 ip주소가 있어야 하고, post로 kk라는 이름에 md암호화 해시된 http_user_agent를 보내야 한다. 이것을 종합해서 코드를 작성해 실행한다.

import requests
import hashlib

address = '(자신의 ip)'
user_agent = 'python-requests/2.28.1'
crypto_addr = hashlib.md5(address.encode()).hexdigest()
crypto_us_ag = hashlib.md5(user_agent.encode()).hexdigest()

url = "https://webhacking.kr/challenge/bonus-6/gpcc.php"
cookie = { 'test' : crypto_addr }
data = { 'kk' : crypto_us_ag }

response = requests.post(url, cookies=cookie, data=data)

print(response.text)

Challenge 33-7

다음은 get으로 자신 ip 이름으로 자신 ip 값을 받아야 하는데 ip 주소에 .을 공백으로 바꿔기 때문에 .을 지운 상태로 받아야 한다. ?(자신 ip주소)=(자신 ip주소)를 적고 enter한다.

Challenge 33-8

다음은 get으로 addr라는 이름으로 127.0.0.1이란 값을 받아야 하기 때문에 주소 뒤에 ?addr=127.0.0.1를 적고 enter한다.

Challenge 33-9

다음은 get으로 ans라는 이름에 answer의 값을 받아야 하는데 answers는 97번부터 2씩 122까지 아스키 값으로 값이 들어가 있다.
그래서 이것을 종합하면 주소 뒤에 ?ans=acegikmoqsuwy라고 적어주고 enter한다.

Challenge 33-10

다음은 자신의 ip로 여러 계산을 거쳐서 answerip/answer_ip.php를 찾아 들어가야 하는데 계산은 php를 작동시킬 수 있는 사이트를 이용해서 계산을 해 주고, 주소 bonus-6 뒤에 넣으면 문제가 풀린다.

<?php
$ip = "(자신의 ip)";
for($i=0;$i<=strlen($ip);$i++) $ip=str_replace($i,ord($i),$ip);
$ip=str_replace(".","",$ip);
$ip=substr($ip,0,10);
$answer = $ip*2;
$answer = $ip/2;
$answer = str_replace(".","",$answer);
echo "answerip/{$answer}_{$ip}.php";
profile
[README]newbi security hacker :p

0개의 댓글