ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • |Lord of SQL_injection| #11 Golem
    Wargame Site/SQL injection 2019. 2. 11. 17:05






    주말에 다녀온 제주도 '오드레' 카페가 또 가고 싶은 느낌이다. 




    드디어, 세 번째 줄로 들어섰다 !!  


    화이팅합시다아!!







     11단계 문제 golem 이다. 

    or 랑 and, substr, = 를 막고 있는 것, 그리고 admin 의 pw 를 알야내야 하는 것 앞서 풀었던 7단계 문제인 orge 에서 substr 과 등호를 사용하지 못한다는 점만 빼고는 일치하는 Blind Injection 문제이다. 


    등호의 사용이 불가피 할 경우에는 'like' 를 사용하면 된다.


    [ 기준 ] like [ 비교대상 ] 



    like 와 함께 다라오는 개념인 % 와 _ 의 개념을 짚고 넘어가야겠다.

    % 은 0 개 이상의 모든 글자를 대체해준다. 

    _ 은 1 개의 모든 글자를 대체해준다. 



    'admin' like 'a%' > True

    'admin' like 'd%' > False ( d 는 중간에 들어가므로 dmin 까지는 대체가 되지만, 앞의 a는 대체되지않는다. )

    'admin' like '%m%' > True

    'admin' like 'admin%' > True


    'admin' like '_min' > False ( _ 가 한 개이기 때문에 dmin 까지만 대체될 수 있다. )

    'admin' like '_d_in' > True

    'admin' like '_____' > True

    'admin' like 'admin_' > False ( 꼭 1개 이상의 문자를 대체한다. )


    따라서 id = 'admin' 이라는 문구를 id like 'admin' 이라고 수정해주면 해결되는 부분이다.


    또한 3 like 3 처럼 활용할 수 있다.

    물론 3 like '%3' 처럼 활용도 가능하다.






    or 보다 and 의 우선순위가 높다는 것을 감안했을 때, 우리가 필요한 admin 의 값에 대해서만 접근을 해보자


    ?pw='||id like 'admin 을 넘겨주면

    select id from prob_golem where id='guest' and pw='' || id like 'admin' 이 된다.



     id 가 guest 이고 pw 가 '' 인 경우 또는 id 가 admin 인 경우를 얻어오는 select 문이 된다. 

    즉 앞부분의 경우 False 가 되고 or 로 연결되어 있기 때문에 쿼리문은 id like 'admin' 에 집중이 된다.

    admin 계정의 유무를 알 수 있는 코드가 되는 것이다.


    물론 문제에 admin 일 경우를 명시해놓았지만, 확인작업을 하는 것은 중요하다고 생각합니다!!





    id like 'admin' 을 연장하여 조건문 자체를 True, False 로 다룰 수 있는 환경을 만들어주자.






    위의 '1' 자리가 True 라면 다음과 같이 Hello admin 이 출력이 될 것이고, 

    False 라면 아무 문구도 출력되지 않을 것이다.




    7번 문제 orge 의 코드에서 length(pw) = {} 부분을 like 로 수정하였고,


    substr 의 사용이 필터로 인해 불가하기 때문에 mid 라는 함수를 활용해서 동일한 방법으로 해결했다.


    ※ substr 와 mid 의 사용법은 동일하다.











    짜잔!!









    orge 도 클리어!!




    Blind Injection 문제는 뭔가 진짜로 해킹하는 느낌이 들어서 재밌는 것 같다.


    세번째 줄이여서 그런지 난이도가 점점 올라간다.







    화이팅 ~ 열공합시다아 














    댓글

Designed by Tistory.