Web Hacking/LOS

Web Hacking/LOS

Lord of SQL Injection - succubus

preg_match('/prob|_|\.|\(\)/i' 를 통하여 'prob', '_', '()', '.' 를 필터링하고 있다. 또한 아래에서는 싱글쿼터(')를 필터링하고 있다. id 와 pw 의 입력값이 모두 싱글쿼터로 갇혀있기 때문에 어떻게든 탈출시켜야 한다. 이전에는 싱글쿼터를 한 번 더 사용함으로써 기존의 싱글쿼터를 탈출했다. 하지만 지금은 싱글쿼터가 필터링 되어있기 때문에 다른 방법을 찾아야 한다. 우선 더블쿼터를 이용해보려고 했다. 하지만 쿼리문 자체에서 싱글쿼터로 입력값을 감싸기 때문에 소용이 없다. 그 다음으로는 주석을 이용하려고 했다. 하지만 어떻게든 문자열을 탈출하여 'or TRUE' 라는 쿼리문을 만들어야 한다. 문자열 탈출이 답이다. mySQL 에는 '\' 를 이용함으로써 특수문자를..

Web Hacking/LOS

Lord of SQL Injection - assassin

wild card 를 활용하는 문제다. mySQL 에는 '_' 과 '%' 가 있다. mySQL에서는 guest 가 admin 의 계정보다 table 상에서 상단에 위치하여 먼저 검색되는 특징을 가지고 있다. 이를 이용하여 코드를 짜면 다음과 같다. 원래는 where 뒤의 구문만을 참으로만 만들면 되지만, 어렵지 않게 전체 admin 계정의 비밀번호를 파악할 수 있다. 아스키코드 값들을 넣어주는 과정에서 underscore('_')가 비밀번호로 인식되는 현상이 있어 이를 삭제하는 코드도 추가하였다. 1 # For LOS exploitation 2 import requests 3 4 requests.packages.urllib3.disable_warnings() 5 org_url = "https://los...

Web Hacking/LOS

Lord of SQL Injection - giant

공백에 대한 필터링 문제이다. from prob_giant 와 같이 띄어쓰기(공백)이 존재해야 하지만 붙어있는 상태이다. 이 가운데에 shit이라는 값을 GET 방식으로 받아온다. 변수명이 참 마음에 든다. 이전에 공백은 단순하게 %09(TAB) 로 우회하였다. 하지만 필터링에 '\t' 가 존재하기 때문에 이를 사용할 수는 없다. 아스키코드의 제어문자 중에는, 0x0a(Line Feed, \n, 개행) 0x0b(Vertical Tab, \v, 수직 개행(개행 후 TAB)) 0x0c(Form Feed, \f, 새로운 페이지) 0x0d(Carriage Return, \r, 개행) 이 있다. 위에서 필터링 되지 않는 0x0b or 0x0c 를 사용하면 된다.

Web Hacking/LOS

Lord of SQL Injection - bugbear

필터링이 계속 추가된다. 그러나 모든 것에는 방법이 있을 것이다. like 연산자를 사용할 수 없다는 점이 추가되었다. '=' 을 우회하는 것에는 like 연산자와 in 연산자가 있다. in 연산자는, A in ('B') 와 같은 방법으로 사용한다. 필터링하지는 않지만, 괄호도 필터링 해보자. '(' - 0x28 ')' - 0x29 또한 ord() 함수를 사용할 수 없다. or 문자열 필터링에 걸리기 때문에다. 그렇게 때문에 decimal 이 아닌 hexadecimal 로 비교하면 되겠다. 1 # For LOS exploitation 2 import requests 3 4 requests.packages.urllib3.disable_warnings() 5 org_url = "https://los.rubi..

Lucvs
'Web Hacking/LOS' 카테고리의 글 목록 (9 Page)