본문 바로가기

Write Up/DVWA

(7)
Installing DVWA in Windows with XAMPP (윈도우 환경에서 DVWA) XAMPP 설치XAMPP 다운로드https://www.apachefriends.org/ XAMPP Installers and Downloads for Apache FriendsWhat is XAMPP? XAMPP is the most popular PHP development environment XAMPP is a completely free, easy to install Apache distribution containing MariaDB, PHP, and Perl. The XAMPP open source package has been set up to be incredibly easy to install and to uswww.apachefriends.org해당 링크 사이트로 들어가 windows ..
DVWA - Command Injection Command Injection은 해커가 웹 애플리케이션에 악성 코드를 삽입하여 해당 시스템에서 실행되는 명령어를 조작하는 공격 기법 LOW IP를 입력받아 해당 IP로 Ping명령어를 수행하는 간단한 웹 애플리케이션이다. 시나리오적인 부분으로 생각하면 IP 주소를 입력하면 해당 IP 주소의 시스템이 활성화되어 있는지 알려주는 웹 서비스라고 생각했다. ping은 ICMP 프로토콜을 이용하여 목적지 시스템의 활성화 유무를 확인하기 위해 사용된다. 127.0.0.1을 입력 해봤다. 127.0.0.1은 루프백(loopback) IP 주소로, 컴퓨터 자신을 가리키는 가상의 IP 주소다. 이 주소는 로컬 네트워크 환경에서 컴퓨터 자신에게 요청을 보내거나 자신의 서비스를 실행하기 위해 사용된다. 즉, 로컬호스트(l..
DVWA - CSP 악의적인 스크립트의 실행을 제한하여 XSS (Cross-Site Scripting) 공격을 방지하는 기술이다. 그러나 잘못된 구성이나 약점이 존재할 경우 CSP를 우회할 수 있는 공격 기법들이 존재할 수 있다. LOW 허용되는 웹페이지 한정으로 include해주는 것 같다. View Source) $headerCSP는 Content-Security-PolicyHTTP 헤더를 설정하기 위한 문자열이다. 이 문자열은 script-src지시자를 포함하며, self(현재 페이지의 출처), https://pastebin.com, hastebin.com, www.toptal.com, example.com, code.jquery.com, https://ssl.google-analytics.com 출처에서 JavaSc..
DVWA - CSRF 인증된 사용자의 권한을 이용하여 악의적인 요청을 실행하는 공격 Password 변경 창이 존재한다. Password 변경 과정을 Burp suite를 통해 확인해봤다. Password 변경 request 확인 Password 변경 response View Source) isset 함수를 이용하여 변수가 존재한다면 아래 코드들을 수행한다. 버프 스위트와 소스코드에서 확인할 수 있듯이 패스워드 변경 값을 GET방식을 받는 것을 확인할 수 있다. 이는 url 값만으로도 공격을 할 수 있다는 의미로 해석했다. $_GET['password_conf']로부터 값을 가져와 $pass_conf 변수에 할당한다. $pass_new와 $pass_conf변수의 값이 같다면 아래 코드들을 수행한다. 만약 그렇지 않다면 Pas..
DVWA - XSS(Stored) Stored XSS 공격은 주로 사용자 입력을 받아 데이터베이스에 저장하는 웹 애플리케이션에서 발생한다. Name에 글자 수가 10글자로 제한이 걸려있었고, 100글자로 늘려주었다. 방명록을 남기고 출력되는 기능이다. View Source) 소스코드를 보면 post 변수에 btnSign 키 값이 존재할 경우 message 변수에는 mtxMessage값을 name변수에는 txtName값을 입력 받는다. 그리고 message와 name 변수는 trim함수를 통해 앞 뒤에 띄어쓰기를 해도 그 여백을 제거한다. isset() → 변수가 설정되었는지 확인해주는 함수 trim() → 문자열 의 맨 앞과, 맨 뒤의 여백을 제거하는 함수 stripslashes() → (addslashes()함수에 의해 추가 된) 백슬..
DVWA - XSS(DOM) XSS(DOM) - DOM 기반 XSS 공격 DOM(Document Object Model)은 HTML 및 XML 문서에 접근하는 방법을 표준으로 정의하는 문서 객체 모델이다. DOM 환경에서 악성 URL을 통해 사용자의 브라우저를 공격하는 방식 DOM 기반 XSS 공격은 보안에 취약한 JavaScript 코드로 DOM 객체를 제어하는 과정에서 발생한다. LOW 언어 선택 후 SELECT 버튼을 누르면 default=언어가 나오는 것을 볼 수 있다. 소스 코드에는 No protections, anything goes라는 문장만 적혀있다. 해석하면 보호 장치가 없으면 모든 것이 사라집니다. DOM요소를 통하여 접근을 하고 있는 것을 확인 할 수 있다. default 값에 스크립트 구문을 삽입해봤다. Med..
DVWA - XSS (Reflected) XSS (Reflected) - 악성 스크립트가 URL에 삽입 되고 서버의 응답에 담겨오는 XSS LOW PHP 소스코드 array_key_exists → 배열 내에 키(또는 인덱스)가 있는지 확인하는 PHP 함수 소스 코드에는 name의 값을 GET방식으로 그대로 전달하기 때문에 텍스트를 입력하면 Hello 텍스트와 함께 url도 반응한다. 쿠키 값을 탈취할 수 있는 스크립트 구문()을 삽입하게 되면 위와 같이 경고창이 뜬다. Medium View Source) 소스코드를 보면 str_replace는 문자를 치환하는 함수로 str_replace( 1번째 인수 : 변경대상 문자 2번째 인수 : 변경하려는 문자 3번째 인수 : 변수, replace가 바꾸고자 하는 문자열(변수 수) ) 즉, 구문을 삽입하면..