AJAX = Asynchronous JavaScript and XML의 약자로써 HTML, 자바스크립트, JSON을 혼합하여 사용하는 기술
JSON = Javascript Object Notation의 약자로써 서버와 클라이언트가 데이터를 주고받는 표현 방법
JQuery = 자바스크립트 라이버리 중 하나, 클라이언트에서 스크립트 언어를 사용할 때 이를 단순화 하고, AJAX 기능을 제공한다.
실습하기
SQL Injection(AJAX/JSON/JQuery)를 들어가면 다음과 같은 화면이 뜨는데 여기에 아무거나 입력해본다.
특이한 점은 키보드에 입력과 동시에 알맞은 결과를 바로 띄워준다는 것이다.
이제 여기에 SQL Injection 공격을 수행하여 정보를 알아내 보도록 하겠다.
일단 SQL Injection이 먹히는지 알기 위해 가장 기본적으로 모든 영화 정보를 다 띄우기로 했다.
-> ' or 1=1#
먹힌다.
이제 컬럼 개수를 알아내보자
여태까지 컬럼 개수는 7개 였으므로 7개 부터 시작했는데 맞았다.
혹시 모르는 사람은 이전에 여러번 했으니 그것부터 보고 오는 걸 추천한다.
컬럼이 7개 인것도 알았으니 이제 데이터 베이스에 존재하는 모든 테이블 명을 알아내보자
-> 0' UNION SELECT ALL null, table_name,null,null,null,null,null from information_schema.tables#
정말 많다.
SQL Injection(POST/Select 실습에서 bWAPP 데이터 베이스에 중요한 정보가 있다는 것을 알았으니 bWAPP 데이터 베이스 안에서의 테이블명만 출력하기로 했다.
-> 0' UNION SELECT null, table_name,null,null,null,null,null from information_schema.tables where table_schema="bWAPP"#
다음과 같이 5개의 테이블이 나오고 저번 실습에서 확인했듯이 users 테이블에 중요한 정보가 있다는 것을 알고 있으니 users 테이블의 컬럼명을 출력하기로 했다.
-> 0' UNION SELECT ALL null, column_name,null,null,null,null,null from information_schema.columns where table_name="users" and table_schema="bWAPP"#
여기서 이제 우리는 id, login, password와 새로 생긴 admin의 정보를 알아 보도록 하겠다.
-> 0' UNION SELECT ALL null, id, login, password, admin,null,null from users#
나머지 정보는 다 알겠고 admin 컬럼은 관리자 계정의 순서번호를 저장하는 것이다. 그러므로 관리자 계정의 아이디는'A.I.M'이다.
난이도-(중,상)
난이도 중, 상은 코드를 먼저 보자
sqli_10-1.php의 소스코드를 확인해보면
다음과 같이 sqli_10-2.php를 호출을 한다.
sqli_10-1.php에서는 솔직히 공격을 막는 코드가 보이지 않아 지푸라기 잡는 심정으로 sqli_10-2.php로 가보았다.
역시나 10-2.php에 공격 우회코드가 숨어 있었다.
중 단계에서는 sqli_check_1 함수를 상 단계에서는 sqli_check_2 함수를 사용하고 있다.
이 2개의 함수가 무슨 함수를 사용하는지 확인하려면 functions_external.php에 들어가보면 된다.
들어가보면 sqli_check_1은 addslashes 함수 sqli_check_2는 mysql_real_escape_string 함수를 사용하고 있다.
이 2개 함수는 https://tkdrms568.tistory.com/138
끝 부분에 설명을 다 해놓았으니 참조하면 될 것이다.
'웹해킹 > bee-box' 카테고리의 다른 글
SQL-Injection(Blog) (0) | 2019.08.04 |
---|---|
SQL-Injection - Login Form/Hero (0) | 2019.08.04 |
SQL-Injection(POST/Select) (0) | 2019.08.02 |
SQL Injection(GET/Select) (0) | 2019.08.01 |
SSI Injection (2) | 2019.08.01 |