이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위 입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A1 - SQL Injection (AJAX/JSON/jQuery)
AJAX - HTML, 자바스크립트, JSON을 혼합하여 사용하는 기술을 말합니다.
JSON - 웹 서버와 데이터를 주고받을 때 데이터를 표현하는 방법을 뜻하며, 자바스크립트 형식으로 객체를 표현 합니다.
jQuery - 자바스크립트 라이브러리 중 하나로, 클라이언트에서 스크립트 언어를 사용할 때 사용 합니다.
해당 취약점 점검의 화면 입니다. 값을 입력하고 URL을 확인해 보신 분들은 GET메소드 방식이므로 URL에 변수가 노출되는 것을 확인할수 있었을 것입니다.
sqli_10-1.php 페이지의 소스코드 에서도 검색에 사용하는 변수는 title이라는 것을 알수 있습니다. 하지만 해당 페이지는 AJAX로 구현한 페이지이기 때문에 URL에 있는 변수에 값을 입력하여도 결과를 출력하지 않는것을 알수 있습니다.
여기서도 앞에 포스팅한 내용과 계속 중복되는 쿼리문과 조건문을 가지고 테스트를 할수 있으므로 따로 포스팅을 하지 않도록 하겠습니다.
앞에 내용을 토대로 연습 한다는 생각으로 한번 취약점을 찾아보시기를 추천드립니다.
그래도 잘 이해가 되지 않으시는 분들은 먼저 주석문을 사용하여 취약점이 있는지 확인을 한후에 컬럼의 수를 조회해 보시기 바랍니다.
예시)
' or 1=1#, ' or 1=1--
' union select null, null, null, null, null, null, null#
'union select null, table_name, null, null, null, null, null from information_schema.tables#
테스트를 해보신 분들은 다시 sqlmap 을 사용하여 추가 테스트를 해보시기를 추천 드립니다.
난이도 상에서는 sqli_check_2 함수로 SQL Injection을 우회하고 있습니다. sqli_check_2 함수는 functions_external.php에 정의 되어 있습니다. PHP 기본 제공 함수인 mysql_real_escape_string 함수를 사용하여 입력한 데이터를 우회 합니다. mysql_real_escape_string 함수는 사용자 입력 값에 SQL 문법에서 사용하는 특수 문자가 있을 경우 다음의 문자에 백슬래시를 붙여 SQL 문법으로 인식하지 않게 방어 합니다. 우회 문자: \x00, \n, \r, \, ', ", \x1a
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) SQL Injection (Login Form/User) (0) | 2019.11.14 |
---|---|
비박스(bWAPP) SQL Injection (Login Form/Hero) (0) | 2019.10.24 |
비박스(bWAPP) SQL Injection (GET/Select, POST/Select) (0) | 2019.07.16 |
비박스(bWAPP) SQL Injection (POST/Search) (0) | 2019.07.10 |
비박스(bWAPP) SQL Injection (GET/Search) (0) | 2019.06.24 |