전체 글 172

Exercise 11. CSP Bypass

Content-Security-Policy 브라우저에 XSS와 관련된 공격을 막아주는 헤더이다. 기본적으로 브라우저는 요청하는 모든 코드를 실행하는데 CSP를 설정함으로써 제한적으로 실행시킬수 있다. 다음 4개의 키워드를 선택 적용할 수 있다. 'none' 어떤 것도 허용 X 'self' 현재 출처에서는 허용 O , 하위 도메인에서는 허용 X 'unsafe-inline' 인라인 자바스크립트 , 인라인 스타일 허용 'unsafe-eval' eval과 같은 텍스트 - 자바 스크립트 메커니즘을 허용 장단점이 있다. 보안에 강력하게 대응할 수 있지만 설정을 잘못하면 css, script 가 처리안되어 골치 아파진다..! 모질라 개발자 사이트에 예시를 보면 다음과 같다. Content-Security-Policy..

Network/DVWA 2019.08.09

Exercise 10. XSS

자바스크립트 웹 애플리케이션에서 사용되는 언어 HTML : 텍스트, 이미지 등 정적인 내용을 표시 자바스크립트 : 동적인 기능 구현(예. 마우스를 가져가면 메뉴의 색이 변함) 와 같이 구현 XSS 공격이란? 클라이언트 쪽의 웹브라우저를 공격하는 기법 # 그런다음 URL에 #을 넣어주어 경고 상자를 표시 할 수 있다. # 문자 뒤에 모든 것이 브라우저에서 쿼리의 일부로 처리되지 않고 조각으로 처리되므로 서버에 전송되지 않는다. 성공~ Reflected (Low) 이름을 입력하는 폼이 나온다. 소스코드를 읽어보니 get방식으로 name을 읽어와서 출력해주고 있다. 여기에 어떠한 보호기법도 없기 때문에 간단하게 공격을 해보았다. alert문이 성공적으로 뜨는 것을 확인해 볼 수 있었다. Stored (Low)..

Network/DVWA 2019.08.09

Exercise 9. Weak Session IDs

DVWA 실습 (Low) 'Generate'버튼을 누르게 되면 dvwaSession이라는 쿠키를 생성하게 된다고 한다. 소스코드를 보면 last_session_id 가 존재하지 않으면 0이 되고 아니면 1씩 추가 해준다. 개발자모드 네트워크로 확인해본 결과 dvwaSession이 기존 3에서 요청하게 되면 4로 응답이 오는것을 확인해 볼 수 있었다. (Medium) medium 단계에서의 dvwaSession의 값은 time()이다. ※time() 은 1970년 1월 1일 0시 0분 0초부터 지금까지 지나온 초를 정수형태로 리턴해주는 함수 버튼을 눌렀을때의 시간의 값이 dvwaSession에 저장되는것 같다. 그렇다면 이 값을 날짜로 바꾸어 주는 함수 data()를 이용해 php문을 짠후 실행시켜 보았다..

Network/DVWA 2019.08.09

Exercise 8. SQL Injection (Blind)

블라인드 SQL 인젝션 공격이란? 장님(blind man)이 지팡이를 이용해 집을 찾아갈때 바닥을 두드리며 이곳이 어딘지 이길이 맞는지 1개씩 짚어보는 것과 같이, 조건문 실행 결과에 원하는 값 1글자가 ascii 값으로 50 보다 큰지 100 보다 큰지 비교하여 1글자씩 데이터를 알아내는 공격기법이다. 일반적인 SQL 인젝션 의 경우 조작된 쿼리를 입력 해 한번에 원하는 데이터를 얻을 수 있지만, 블라인드 SQL 인젝션은 쿼리 결과에 따른 서버의 참과 거짓 반응을 통해 공격을 수행한다. 1을 입력했을때 원하는 데이터를 보여주는 것이 아닌 존재한다 즉, 참으로 결과를 보여주는 것을 알 수 있다. 6을 입력했을때는 존재하지 않다고 보여주고 있다. 블라인드 SQL 인젝션을 수행하기 앞서 필요한 기본적인 함수..

Network/DVWA 2019.08.08

Exercise 7. SQL Injection

SQL Injection 공격이란? 데이터베이스에 전송되는 SQL 쿼리문을 조작하여, 데이터를 변조하거나 허가되지 않은 정보에 접근 예전부터 최근까지 꾸준하게 사용 2011년 소니해킹 2015년 뽐뿌 해킹 2015년 어나니머스 WTO 해킹 (출처:인프런/화이트해커가-되기위한-8가지) DVWA 실습 (Low) - 먼저 소스코드를 확인을 해보았다. ID, First name, Surname 으로 출력을 해주게 되어있다. 요런식으로 1~5까지 정보가 나오는 것을 확인해 볼 수 있었다. // Check database $query = "SELECT first_name, last_name FROM users WHERE user_id = '$id';"; 소스코드에서 보면 이런식으로 입력이 들어간 것을 확인해 볼 수..

Network/DVWA 2019.08.08

Exercise 6. Insecure CAPTCHA

CAPTCHA 공격이란? (출처:인프런/화이트해커가-되기위한-8가지) DVWA 실습 (Low) 처음에 그냥 패스워드 변경이 되어 버려서 버프스위트로 확인, 우회를 해보았다. 요청을 2개를 보내는데 step1에는 g-recaptcha-response가 전송이 되는데 이게 인증을 하는 부분이기에 넘겨주고 step2에서는 인증을 하는 부분이 없어서 2에서 패스워드를 우회를 했다. 과연 됬나 확인을 해보았다.

Network/DVWA 2019.08.08

Exercise 5. File Upload

파일 업로드 공격이란? 파일이 업로드 되는 페이지(게시판, SNS등)에 악성 파일(웹셀)을 업로드 (출처:인프런/화이트해커가-되기위한-8가지) DVWA 실습 (Low) 나는 먼저 이런식으로 작성을 해주었다. 파일명은 "1.php" 파일을 업로드 한후 그 업로드 한 파일의 경로에 맞춰 들어가 보았다. phpinfo()나 system() 함수를 이용하여 공격을 시도해 보았다. // 1.php

Network/DVWA 2019.08.08

Exercise 4. File Inclusion

파일 인클루젼 공격이란? 지정한 파일을 PHP include()로 소스코드에 삽입 로컬파일인클루젼(LFI) - 이미 시스템에 존재하는 파일을 인클루드 리모트파일인클루젼(RFI) - 외부에 있는 파일을 원격으로 인클루드 (출처:인프런/화이트해커가-되기위한-8가지) DVWA 실습 (Low) 소스코드는 다음과 같다. 파일업로드 공격 메인은 다음과 같다. 먼저 찾은것은 1,2,3을 지나서 file4.php을 넣었는데 우연찮게 발견했다.. 근데 이게 끝이 아니라는게 느낌이 왔다. 커맨드 인젝션을 이용해 fi 디렉토리를 찾고 어디쯤에 있는지 찾았다. ※패스 트래버설(Path Traversal) 공격 : ../ 를 이용하여 상위디렉토리로 접근하는것 ?page=../../../../../../etc/passwd 을 이..

Network/DVWA 2019.08.08

Exercise 2. Command Injection

커맨드인젝션 공격이란? 웹을 통해 시스템명령어(커맨드)를 실행하는 공격 웹 내부에서 시스템 명령어를 실행하는 경우, 입력값을 제대로 검사하지 않으면, 해커 마음대로 시스템 명령어를 실행! (출처:인프런/화이트해커가-되기위한-8가지) DVWA 실습 (Low) 핑을 보내는 폼이다. 192.168.1.123 으로 먼저 핑을 보내 보았다. 당연히 저런 IP값이 없으니 0 received 이다. 그렇다면 공부한 대로 동시에 여러 명령어를 입력하기 위해선 ; 을 이용해 주어야 한다. 192.168.1.123;cat /etc/passwd 입력! 요렇게 다양하게 공격해볼 수 있었다. (Medium) FTZ를 풀었을때 보면 다양하게 명령어를 동시에 입력을 할수가 있다. (참고 : http://coffeenix.net/d..

Network/DVWA 2019.08.07

Exercise 1. Brute Force

브루트포스 공격이란? 사용자 패스워드를 알아내기 위한 공격 무식하게 패스워드를 계속 대입해보자! 알파벳 순 딕션너리 공격 (출처:인프런/화이트해커가-되기위한-8가지) 브루트포스공격 실습 일일이 문자를 지정해 계속 공격하는 방법과 딕셔너리 공격 방법이 있다. 대응하는 방법 실패했을시 슬립 구문을 통해 지연시키거나, 랜덤함수를 통해 해커가 프로그램을 제작하기 힘들어진다. 또, 로그인 잠김기능을 통해 잘 막을수 있다. (악용할수도있음, 웹사이트를 일정시간동안 접속 못하게함) 잘못된 로그인시도가 계속 발생할때 응답을 느리게 하거나 일정시간동안 락킹을 해 딜레이시켜 방지해야한다. 또는, 캡챠를 이용해 사람이 로그인하는것인지 적용하는것. DVWA 실습 (Low) 처음 접속을 하면 유저네임과 패스워드를 입력하는 폼이..

Network/DVWA 2019.08.07