blind sql injection

Web Hacking/LOS

Lord of SQL Injection - godzilla

이 친구도 그다지 복잡하지 않은 친구이다. 역슬래시로 id 영역의 싱글쿼터를 벗어나는 방법은 WAF(Web Application Firewall)에 걸리지 않는 것 같다. Blind SQL Injection 형식의 문제이니 pw를 모두 구해야 한다. 우선 길이부터 구하자. id=\&pw= or id="admin" and length(pw)>'0 아주 예쁘게 나온다. 이후에는 pw를 구하는 코드를 짜면 될 것 같다. pw를 구하는 payload 구성 방식에는 다음과 같은 방식들이 있을 것이다. substr 함수를 사용 pw like "X%" - like문과 와일드카드 이용 pw rlike "^X" - 정규표현식과 rlike 이용 bin(ord(substr())) 함수를 이용 - 2진수로 검색 이번에는 그냥..

Web Hacking/LOS

Lord of SQL Injection - frankenstein

Blind & Error-Based SQL Injection 문제인 것 같다. 싱글쿼터는 필터링하지 않아서 문자열 탈출은 수월하게 이루어질 것 같다. 그런데 필터링에 괄호들과 'union' 이 존재한다. 서브쿼리와 함수는 이용하지 못할 것 같다. 코드의 첫 번째 paragraph를 보면 마지막 line에 query에 error가 존재하면 "error"라는 문자열 페이지로 exit 된다. 바로 이것을 이용하면 될 것 같다. 우선 오류를 어떻게 만들어 내야할지 고민해야 한다. union을 사용할 수 없기 때문에 subquery로 하여금 select으로 뽑아낼 2개의 columns 보다 많은 수의 column들을 뽑아 오류를 발생시키는 것은 불가능하다. 이때 정수의 범위를 벗어나게 하여 오류를 발생시킬 수 있..

Web Hacking/LOS

Lord of SQL Injection - red_dragon

박수가 절로 나오는 문제였다. 예전 문제에 admin 이라는 문자열 필터링을 우회하기 위하여 adadminmin 과 같은 방식으로 썼던 것이 기억 나는가? 무언가 유사한 패턴이다. 주석에 대한 특성도 같이 사용된 문제였다. 문제는 admin 계정의 no를 알아내는 것이다. pw를 찾는 것과 유사하다. Blind SQL Injection 문제로 보인다. id는 7글자밖에 사용하지 못한다. no 영역은 숫자가 아니면 1을 반환한다. 따라서 no 에서는 아무런 짓을 할 수가 없다. 처음에는 no영역에 16진수를 넣으면 되지 않을까 했지만 PHP 문법의 is_numeric 함수에서는 16진수와 2진수는 적용되지 않는다고 한다. 우선 id에서 Hello 라는 문자열을 출력시키기 위하여 필요한 최소 글자는 어떻게 ..

Web Hacking/LOS

Lord of SQL Injection - hell_fire

드디어 table이 시각적으로 출력되기 시작하였다. query문도 order by 를 통하여 정렬하는 query문으로 변경되었다. 문자열 필터링에서 sleep, benchmark 가 빠진 것을 보아 time-based sql injection 에 관한 문제인 것 같다. Time-Based SQL Injection 이란, query문에 시간을 delay 시키는 함수, sleep/benchmark 등을 사용하여 요청에 대한 응답시간을 의도적으로 지연시키는 방법이다. 어떻게 사용하는 것인가? 우선 문제에 간단하게 테스트해보자. ?order=1 위와 같이 query 를 전달할 경우, 1번 column, 즉 id column 을 기준으로 table 이 정렬된 것을 볼 수 있다. admin 의 email 주소는 p..

Lucvs
'blind sql injection' 태그의 글 목록 (2 Page)