SQL Injection(GET/Select)

반응형

SQL Injection에 대한 설명은 앞선 페이지에서 했기 때문에 생략하기로 하고 바로 실습으로 넘어가도록 하겠다.

 

실습하기

bWAPP에서 SQL Injection(GET/Select) 버튼을 누른다. 그러면 

다음과 같은 화면이 나온다.

이 페이지는 GET 메소드를 사용하기 때문에 URL 상에 변수가 보이는 화면이다.

이제 URL에서 movie 부분을 이용하여 SQL Injection을 시행하면 된다.

SQL Injection에 대한 자세한 방식은 https://tkdrms568.tistory.com/138

 

[bee-box]SQL Injection(Get/Search)

SQL Injection 코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터 베이스를 공겨할 수 있는 공격방식 주로 사용자가 입력한 데이터를 제대로 필터링 하지 않았을 경우 발생한다 공격은 쉬..

tkdrms568.tistory.com

을 보면 된다.

먼저 MYSQL 버전등 기본정보부터 알아보자 movie= 뒤에 다음과 같이 입력하면 된다.

-> 0 UNION SELECT ALL null,database,@@version,@@datadir,null,null,null

입력하면 다음과 같이 출력된다.

database명과 version, mysql 디렉터리 위치까지 알 수가 있다.

이제 테이블 명을 알아보자

다음과 같이 입력하면 된다.

-> 0 UNION SELECT null, table_name, null, null,null,null,null from information_schema.tables

다음과 같이 입력하면

다음과 같이 테이블명이 나오는데 테이블명이 하나밖에 나오지 않는다. 이유는 이 페이지의 출력 값이 한줄만 나오는 페이지라서 데이터 베이스의 첫번째 테이블만 출력하기 때문이다.

이제 MYSQL DB의 기본테이블인 'MYSQL'과 'information_schema'에 포함되지 않는 테이블 스키마, 테이블명, 컬럼명을 알아보자

검색창에 다음과 같이 입력하자

0 UNION SELECT null,table_schema, table_name,column_name,null,null,null from information_schema.columns where table_shcema!= 'mysql' and table_schema!= 'information_schema'

입력하면

table name = blog, column name = id 인것을 알 수 있다.

 

난이도 - (medium, high)

medium, high 단계는 먼저 이 페이지가 어떻게 짜여졌는지부터 확인하면 된다.

var/www/bWAPP에 가서 sqli_2.php 파일을 확인해보면

다음과 같이 나오는데 난이도 (중)인 case "1" 경우 sqli_check_2 함수가 적용되어 있고

난이도 (상)의 경우 sqli_2-ps.php에 힌트가 있는 것 같다.

먼저 난이도 (중)은 functions_external.php에서 무슨 함수가 적용되어 있는지 확인이 가능한데 들어가서 확인해보면

mysql_real_escape_string 함수가 적용되어 있다. 이 함수는 SQL 명령문에서  사용되는 문자열에서 특수문자를 회피하는 함수이다. 쉽게 말해 특수문자 안먹히는 함수이다.

다음으로 (상)이 적용되어 있는 sqli_2-ps.php 함수에 들어가보면

다음과 같이 입력되어 있는데 특별한 우회 함수를 사용하지 않고 SQL 쿼리문을 호출하는 것이다.

sql_2-ps.php 페이지는 DB서 컬럼을 개별로 호출하고 연결하는 방식을 사용하여 SQL Injection을 대응한다.

솔직히 PHP를 공부해보지 않아서 코드가 잘 이해가 가지 않는다.

어쨌든 그렇기에 (중), (상) 단계에서는 SQL Injection 공격이 수행되지 않는다.

반응형

'웹해킹 > bee-box' 카테고리의 다른 글

SQL Injection(AJAX/JSON/JQuery)  (0) 2019.08.03
SQL-Injection(POST/Select)  (0) 2019.08.02
SSI Injection  (2) 2019.08.01
OS Command Injection  (0) 2019.07.31
SQL Injection(Post/Search)  (0) 2019.07.30