ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • |webhacking.kr| #2
    Wargame Site/Webhacking.kr 2019. 7. 2. 07:48

     

     

    처음 이 문제를 만났을 때 '어쩌라는거지?' 라는 느낌 뿐이었다.

     

     

    메인 화면에서부터 뭔가 Hacker 가 만든 Smell 이 난다.

    소스를 분석해보니 Map Tag 가 눈에 띄었다.

    이를 통해서 다양한 Path 로 접근할 수 있는 것을 알 수 있었다.

    그 중 제일 눈에 갔던 건 단연 admin 이었다. 

    위치를 분석해보니 우측의 용머리를 누르면 이동하는 것이었다.

     

     

     

     

     

    오호라 뭔가 중요한 페이지임이 틀림없다. 조금의 망설임없이 SQL injection 을 다양하게 시도해봤다.

    하지만, 끄떡없었다.

     

     

    admin Page 를 잠시 뒤로 하고, 게시판을 둘러보던 중 특이한 글을 발견했다.

    설마 이건 Brute Force ??.....  아니겠지 ㅋㅋ

    하지만, 패스워드를 알아내야하는 것은 맞는 듯 하다.

     

     

     

     


     

      문제해결단서  



    문제를 풀 수 있는 단서를 전혀 찾을 수 없어 약간의 구글링을 통해 '쿠키값을 통한 Injextion'을 수행해야되는 문제인 것을 알았다.

     

     

     

     

    1 > PHPSESSID


    이것은 사용자의 정보가 들어가 있기 때문에 문제 자체와 관련이 적을 것이라고 생각했다.

    (건들면 로그인 폭풍 연습을 하게될 것이다 ㅎㅎ)

     

     

     

    2 > Time


    요녀석을 넣은 이유가 뭘까하는 생각이 든다. 사이트를 직접 구축해봤기 때문에 세션, 쿠키를 넣는데 그 용도가 분명할거라 생각한다.

    또한, time 이라는 쿠키 아이디에도 무언가 의미를 부여했을 것이다.

     

     

     

     

    주석처리가 되어있다는 점 그리고 시간(time)과 관련된 것 같은 느낌이 든다.

    SQL injection 문제를 낼 때 주석에 처리를 한 적이 있는데 그와 관련된 것 같다.

     

     

     

     


     

     

      Blind SQL injection 의 근거를 찾아라  

     

     

     

    다음과 같이 두 개의 값을 통해 반응을 살펴보았다.

     

    1. Where False 일 때

     

     

    2. Where True 일 때

     

    Blind Injection 의 출발은 입력값에 따라 변화되는 정보를 찾는 것이다.

    정보를 찾았다 ! 그럼 그 다음으로 해야할 것은 admin 의 패스워드를 찾아내는 것이다.

     

     

     

     

     

     


     

      자, 이제 적용을 해볼까? 어디다하지...  

     

     

    Blind SQL 을 사용할 수 있다는 것까지는 알았냈지만 그 다음 방법을 몰랐다.

    결국 구글링을 한 번더 하게 되었고, Guessing 이 필요한 문제라는 것을 알았다.

    게시글 Table 의 정보 (게시글의 패스워드) 를 알아내기 위해서 'FreeB0aRd' 라는 Table 을 통해 탐색해야한다는 것이다.

     

     

    글이 한개 이므로 단순한 select 문을 사용해 찾으면 된다.

     

     

    위의 입력 결과는 True 이다. 정확히는 걸러지는 칼럼이 있다는 뜻이다.

     

    따라서, los 의 풀이와 같은 방식(request Library) 으로 코딩을 통해 해결해보았다.

     

     

    Board 게시글에 있는 Password 를 알아냈다.

     

     

    들어가보니 다음과 같은 창이 떴고, 어떤 파일 하나가 있었다.

     

     

    아무래도 이 암호를 알아내야할 것 같다.

    하지만, 단서가 부족했다.

    그래서 googling 을 했고, 'admin' 이라는 테이블을 탐색하면 나온다는 사실을 알았다.

     

     

     

     

    위 코드에서 일부분만 수정해주면 완성된다.

     

     

     

     

    로그인을 하고 들어가보니 다음과 같은 공지가 떠있었고, 메뉴얼 패스워드가 나와있었다.

     

     

     

     

     

    manual.html 클릭!

     

     

    Flag 가 나왔다 ㅎㅎ ~

     

     

     

    Clear ~~ !! 

    'Wargame Site > Webhacking.kr' 카테고리의 다른 글

    |webhacking.kr| #5  (0) 2019.07.02
    |webhacking.kr| #4  (0) 2019.07.02
    |webhacking.kr| #3  (0) 2019.07.02
    |webhacking.kr | #1  (0) 2019.06.30
    |webhacking.kr| 회원가입하기  (4) 2019.06.30

    댓글

Designed by Tistory.