본문 바로가기

Wargame/LOS(Load of SQL Injection) Writeup6

AUTO blind SQL Tools (이진탐색버전) (feat. LOS no.4 orc) 오랜만에 Blind Sql Injection 문제를 풀다가 문득 툴이 만들고 싶어졌다. 만들다 보니 전체탐색이 비효율적으로 보였다. . . . 그리하여 탄생한 BLIND SQL TOOL 이진탐색 Veeeeeersion!!!! 코드주인의 능지 이슈로 인해 코드 수정을 안하면 los 4번문제에서 밖에 돌아가지 않는다. 앞으로 범용성있게 바꿀 예정, (오랜만에 블로깅하나 할려고 억지로 들고왔다는건 안비밀) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 6.. 2022. 2. 17.
LOS(Load of SQL Injection) 6번 문제 풀이 별 다를 거 없는 필터링 문제이다. 'or' 와 'and' 사용을 필터링 하고 있다. 하지만 우리에겐 좋은 대체품이 있다. or = || and = && 원래의 쿼리는 ?pw=' or id='admin' --%20 이지만 or 라는 문자가 막힐게 뻔하니, or 를 대체해서 쿼리를 짜보면 ?pw=' || id='admin' --%20 클리ㅇㅓ~~ 2020. 4. 30.
LOS(Load of SQL Injection) 5번 문제 풀이 3번 문제와 굉장히 유사한 것 같은데, 소스코드에 스페이스(/ /) 가 필터링 되어있다. 이제 우린 스페이스바 와 %20 을 사용하지 못한다. 그렇다고 해서 우회를 할 방법이 없는 것이 아니다. (주석, 괄호 등등) 우회 방법 중 하나인 tab(%09) 를 사용해보자. 쿼리문에서 공백이 들어가야할 부분에 %09만 넣어 주었다. pw=%27%09or%09id%09=%09%27admin%27%09--%09 가볍게 필터링을 우회해주면서 클리ㅇㅓ~~ 2020. 4. 30.
LOS(Load of SQL Injection) 3번 문제 풀이 소스코드를 보면, 몇가지 특수문자들이 필터링 되어있다. 스을쩍 훑어보면 no 파라미터에 1을 주면 guest 가 출력된다. (즉, no=1 은 게스트이다) 그렇다면, no 에 다른 번호를 준 후 or 연산자를 이용해서 id='admin' 을 하고 싶지만 싱글쿼터( ' ) 가 필터링 되어있다. 이걸 우회하는 방법 중 하나가 chr() 함수를 이용하는 것이다. char() 함수는 인자로 어떤 문자의 아스키코드값을 주면 해당 문자를 반환한다. ex) char(97) == 'a' 따라서 char(97,100,109,105,110) = 'admin' 이므로 ?no=2 or id=char(97,100,109,105,110) 을 입력해준다. --> no가 2 거나 id가 admin 인경우 를 뜻한다. id 파라미터에.. 2020. 4. 30.