ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Lord of SQL_injection] #21 iron_golem
    $ 웹 해킹 $/los.rubiya.kr 2019. 4. 6. 01:03

    이번 문제부터는... Hello admin이 출력하지 않습니다.

    출력해주는것은 mysql_error()났을때 나오는 것입니다.

     

    mysql_error()을 일으키는법은 서브쿼리를 이용해서 단일행 서브쿼리, 다중행 서브쿼리, 다중열 서브쿼리 이라는 것이 있는데 다중행 서브쿼리에 단일행 서브쿼리 를 서브쿼리로 넣으면 다르기 때문에 에러가 난다고 합니다.

     

    if문을 이용한 서브쿼리 , case를 이용한 서브쿼리 등을 이용하면 에러를 만들수 있습니다.

     

    ?pw=' or id='admin' and if(length(pw)=길이 값,(select 1 union select 2),1)%23이라고 작성을 하면 됩니다.

     

    여기서 select 1 union select 2는 2개의 필드를 출력하는 것인데 에러에 출력되는 값을 보면

    이렇게 출력을 하게 됩니다. 

     

    이를 이용해서 코드를 작성해 보면 다음과 같습니다.

     

    결과를 보면 pw의 길이는 136이 나옵니다.

     

    아마 136인 이유는 hex로 출력했기 때문에 8글자 * 17 = 136 인것 같습니다. 

     

    출력된 password를 보면 다음과 같습니다.

    8자리씩 끊어 보면 다음과 같습니다.

    0000b8e8       0000be44       0000aebc       0000c57c       00000021     0000be7c      0000c560     0000c560       0000c560        0000c560     0000c560       0000c560      0000c560     0000c561     00000021     00000021      00000021

     

    루비꺼야!빼애애애애애애애액!!!

     

     

    댓글

Designed by Tistory.