Login Form / Hero 페이지(sqli_3.php)에 들어가면 다음과 같이 나온다. 해석하면 '너의 슈퍼히어로를 입력해라' 이런 뜻이다. 처음에 나는 부모님 이름을 적었는데 안되었다. 그래서 슈퍼맨, 배트맨 등 히어로 이름을 다 적었지만 그것도 안되었다. 그래서 고민을 하다가 이 페이지가 SQL Injection 페이지인 만큼 SQL injection 공격을 수행해야 하는 것 같았다. 순서 1. 사용 중인 DB 서버 알아내기 - '(작은 따옴표) '를 입력하니 다음과 같은 에러 메시지가 나왔다. 다음 메시지를 통해 우리는 사용중인 DB가 MYSQL이라는 것을 알아 낼 수 있었다. 2. DB안에 있는 전체 내용 알아내기 - ' or 1=1# 로그인 창에(패스워드 창도 가능)에 ' or 1=1#을 ..
AJAX = Asynchronous JavaScript and XML의 약자로써 HTML, 자바스크립트, JSON을 혼합하여 사용하는 기술 JSON = Javascript Object Notation의 약자로써 서버와 클라이언트가 데이터를 주고받는 표현 방법 JQuery = 자바스크립트 라이버리 중 하나, 클라이언트에서 스크립트 언어를 사용할 때 이를 단순화 하고, AJAX 기능을 제공한다. 실습하기 SQL Injection(AJAX/JSON/JQuery)를 들어가면 다음과 같은 화면이 뜨는데 여기에 아무거나 입력해본다. 특이한 점은 키보드에 입력과 동시에 알맞은 결과를 바로 띄워준다는 것이다. 이제 여기에 SQL Injection 공격을 수행하여 정보를 알아내 보도록 하겠다. 일단 SQL Injecti..
이번에는 GET/SELECT 방식과 똑같지만 Burpsuite를 이용하는 POST 방식을 해보도록 하겠다. SQL Injection(POST/Select)방식을 선택하면 다음과 같은 화면이 나온다. GET 방식과 똑같이 데이터베이스 값을 하나만 출력해준다. Burpsuite를 켜고 Intercept is on인 상태에서 Go 버튼을 누르면 다음과 같이 나오는데 여기서 데이터 베이스의 기본정보를 얻기 위해 movie 변수에 다음과 같은 명령어를 입력하고 Intercept is off로 바꿔준다. -> 0 UNION SELECT null, database(), @@version, @@datadir, null,null,null 여기서 우리는 데이터 베이스의 기본정보를 알 수 있다. 이제 여기서 사용자의 호스트..
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 코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터 베이스를 공겨할 수 있는 공격방식 주로..
SSI이란? HTML 페이지의 전체 코드를 수정하지 않고 공통 모듈 파일로 관리하며 동적인 내용을 추가하기 위해 만들어진 기능으로 주로 방문자 수 세거나 홈페이지 로고 수정 등 간단한 기능 추가할 때 사용한다. 또한 '.shtml' 확장자 파일을 사용한다. 실습하기 bee-box에 들어가서 Server-Side Includes(SSI) Injection 선택 후 hack을 누르면 다음과 같이 나온다. 이제 이 페이지가 어떻게 작동 되는지 알아보기 위해 이름을 입력해 보겠다. 이름을 입력하고 Lookup을 누르면 다음과 같이 이름과 현재 나의 IP주소를 알려준다. 여기서 눈 여겨 봐야할거은 URL이다. URL을 확인해보면 끝에 .shtml로 끝난다. 맞다. 이 페이지는 SSI를 사용하는 페이지이다. 이제 ..
PHP Code Injection이란? 웹 어플리케이션을 통해 PHP 코드를 입력하면, 웹 어플리케이션의 입력을 정상적으로 인식하여 개발자가 의도와는 다르게 내부에 있는 PHP 코드를 실행하는 기법이다. 이제 bWAPP에 들어가보면 다음과 같이 나온다. message 버튼을 누르면 이렇게 나온다. 이 때 중요한 것은 URL이다. URL을 확인하면 message=test라는 것을 확인할 수 있었다. PHP에서 exec() 함수나 eval() 함수를 사용한 경우 세미콜론(;)을 사용하여 다른 함수를 실행할 수 있다는 취약점이 있는데 이 페이지에도 취약점이 있는지 확인하기 위해 ;과 system 함수를 같이 써보았다. 입력 URL = http://192.168.0.15/bWAPP/phpi.php?message..