ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • |webhacking.kr| #9
    Wargame Site/Webhacking.kr 2019. 7. 5. 09:25

     

     

    우선, 전체적인 구조를 파악하는 것이 우선이다.

     

     

     

    no = 1 일 때

    no = 2 일 때

     

    no = 3 일 때

    여기서 알 수 있는 점은 SQL injection 이 발생할 것 같은 느낌이 든다는 것이다.

     

     

    no > 3 일 때

     

     


     

     

     

     

     

    우선, no 에 걸려있는 filtering 목록을 뽑아내는 것이 우선일 것이다.

    아주 간단하게 코드를 구성해보았다. ( + sleep 도 시도해봤습니다. )

     

     

     

     

    그 결과 다음과 같은 문법이 필터되지 않는 것을 알 수 있었다.

    if 를 통해서 접근하면 해결될 것 같은 느낌이 든다.

     

     

     

     

    등호의 사용이 불가하기 때문에 like 로 대체해서 사용하면 될 것 같다.

     

     

     

     

    no=1 일 때의 id 값이 Apple 인 듯 하다. (만약 궁금하다면 이에 맞는 쿼리를 만들어서 날려보면 알 수 있다.)

    no 이 3 이었을 때의 id 가 패스워드인 듯 하다.

    SQL injection 관련 게시글을 참고하면 쉽게 쿼리를 만들 수 있다.

     

    like 를 사용할 때 주의할 점은 '%',  '_' 이 두 가지 문자의 사용이다. ( 각각 ascii value = 37, 95 )

    like 에서 특별한 역할을 하기 때문에 이 두 문자가 나올경우에는 continue 를 해주는 작업이 필요하다.

    그리고 띄어쓰기 및 띄어쓰기를 대체할 수 있는 표현의 사용이 불가하기 때문에 괄호를 통해서 구분지어주는 기법을 사용하면 된다.

     

     

     

     

    그리하여 no 가 3 일 때의 id 를 구할 수 있다.

     

     

     

     

     

    명심해야할 것은 위의 값이 소문자인지 대문자 값인지 모른다는 것이다.

    앞서 Los 26. Red_Dragon 의 문제 풀이에서 다뤘던 내용이다.

     

     

     

     

    Clear ~

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

    |webhacking.kr| #11  (0) 2019.07.05
    |webhacking.kr| #10  (0) 2019.07.05
    |webhacking.kr| #8  (0) 2019.07.03
    |webhacking.kr| #7  (0) 2019.07.02
    |webhacking.kr| #6  (0) 2019.07.02

    댓글

Designed by Tistory.