분류 전체보기 155

[빡공팟 5기] W5 : DVWA 실습 - JavaScript

[JavaScript 를 이용한 공격] 자바스크립트를 이용한 공격은 XSS, CSRF 등 다양하다. [실습 내용] 스크립트문을 이용하여 "success" 단어 제출을 성공해보자! [초기화면] - success 를 입력해보았더니 Invalid token 이 떴다. -> token 을 함께 보내는 데 그냥 success 를 입력하면 안되는 것 같다. [View Source] - 스크립트 안에 있는 이 함수가 토큰을 생성하는 함수인 것 같다. - var phrase = document.getElementById("phrase").value; -> document.getElementById("phrase").value = "success" 이면 될 것 같다. - document.getElementById("to..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - Content Security Policy (CSP) Bypass

[Content Security Policy(CSP)] 브라우저에서 XSS 로부터 보호하기 위해서 도입되었으며, 실행될 수 있는 콘텐츠를 지정하고 자바 스크립트를 인라인으로 실행하거나 신뢰하고 있는 도메인의 스크립트 파일을 로드할 수 있다. [용어 설명] 1. none : 어떠한 것도 허용하지 않는다. 2. self : 현재 출처에서만 허용한다 -> 하위 도메인을 허용하지 않는다. 3. unsafe-inline nonce 값 : nonce 속성값이 헤더값과 일치하면 스크립트 또는 스타일 태그를 실행한다. 4. unsafe-eval : eval 같은 text-javascript 메커니즘을 허용한다. [실습 내용] CSP 를 우회하여 스크립트문을 실행시켜보자! [초기 화면] - 초기 화면은 위와 같다. - ..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - Stored XSS

[Stored XSS 공격의 발생] 악의적인 스크립트가 삽입된 게시글이 서버의 데이터베이스에 저장되면서, 이용자가 해당 게시글을 눌렀을 때 의도치 않은 행위가 발생하는 게 이런 이유 때문이다. [실습 내용] Stored XSS 에 대해 실습해보자! [초기 화면] - 이름과 내용을 입력하고 등록하는 폼이다. - 한번 직접 작성해보자. - 이런식으로 내용이 그대로 출력된다. - 한번 스크립트를 작성해서 넣어보자! - 스크립트가 그대로 실행되는 걸 볼 수 있다. - 이를 이용하여 전과 마찬가지로 쿠키를 해커의 서버에 보낼 수 있고, 타 사이트로 리다이렉션 시킬 수 있다. - 전에 썼던 공격 구문을 다시 활용하여 게시글을 등록했다. - 글자 수 제한이 있어 HTML 코드를 수정한 후 내용을 입력했다. - 게시 ..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - Reflected XSS

[Reflected XSS 공격의 발생] 사용자의 입력 값을 받고 되돌려 주는 곳에서 발생한다. -> 웹 사이트에서 검색 했을 때 검색 내용을 보여주는 경우가 있다. 해커가 악의적인 스크립트를 포함한 URL 을 작성하고 이용자가 해당 URL 을 눌렀을 때 악의적인 스크립트가 실행되면서 의도치 않은 행위를 수행하게 된다. -> 굳이 서버까지 갈 필요가 없다. [실습 내용] Reflected XSS 를 실습해보자! [초기 화면] - 사용자의 이름을 입력받으면 그대로 출력하는 기능이 존재한다. - 사용자의 입력 값을 받을 때 항상 주의해야 할 점은 사용자 입력값을 전적으로 신뢰한다는 것이다. - 스크립트문을 그대로 입력받으면 그대로 출력하는지 스크립트문을 넣어보았다. - 그대로 스크립트문이 출력되는 것을 볼 ..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - DOM based XSS

[XSS 의 정의] XSS(Cross Site-Scripting) 은 웹 사이트에 악성 스크립트를 주입하는 것이다. 주로, 이용자가 글을 읽거나 쓸 수 있는 게시판에서 자주 발생하지만 입력 값을 웹 페이지에 표시하는 경우에도 발생한다. 이렇게 이용자 브라우저에서 스크립트를 실행하게 된다면 사용자 세션을 가로채는 세션 하이재킹, 웹 사이트 변조, 악의적인 컨텐츠 삽입, 피싱 공격 등을 시도할 수 있다. [XSS 의 종류] 1. reflected XSS - 반사형 XSS 로 1회성 공격이며 이용자에게 입력받은 값을 되돌려 줄 때 발생한다. 보통 GET 방식을 사용하는 URL 파라미터에서 발생하며, 공격자가 악성 스크립트와 함께 누르도록 유도하고 해당 URL 을 누른 이용자는 악성 스크립트가 실행되며 공격을 ..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - Weak Session IDs

[Weak Session IDs 의 정의] 세션 ID 취약점, 세션 ID 는 사용자 인증 정보를 담고 있는 것으로 이를 통해 서버가 유저를 확인하고 인증하는 것이다. 따라서 세션이 재중복 되거나, 세션 타임아웃 등이 존재하지 않으면 사용자 정보를 이용하여 악의적인 행위가 가능하게 되는 것이다. [실습 내용] 세션 ID 취약점에 대해 실습해보자! [초기 화면] - 버튼을 누를 때마다 새로운 쿠키를 불러온다고 한다. - 한번 더 클릭하니 이렇게 나온다. - 다시 한 번 눌러보니 숫자가 계속 1씩 증가한다. [View Source] - 소스코드를 확인해보니 요청 메소드를 POST 형식으로 서버에 전달하는데, 이때 마지막 session_id 가 존재하지 않으면 마지막 세션 아이디를 0 으로 셋팅하고 1씩 증가시..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - SQL Injection(Blind)

[SQL Injection 의 종류] 1. Error based SQL Injection (지난 게시글) : 쿼리와 관련된 ', ; 삽입 시에 SQL 과 관련된 에러를 통해서 데이터베이스의 정보를 예상한다. 2. Union based SQL Injection (지난 게시글) : Union 키워드를 사용하여 select 문을 사용하여 칼럼 수와 같은 정보를 얻어낸다. 3. Blind based SQL Injection (현재 게시글) : 요즘은 에러 메시지를 1번과 같이 출력하지 않기 때문에 에러가 발생되지 않는 사이트에서 SQL 쿼리 삽입 시 정상적으로 페이지가 출력됐냐 안됐냐에 따라 DB 구조를 파악한다. 4. Stored Procedure based SQL Injection 5. Time based ..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - SQL Injection

[SQL Injection 취약점의 정의] 데이터베이스에 접속하고 테이블에 값을 가져오거나 생성할 때 쿼리문을 사용하는데, 이때 사용자의 입력값을 그대로 쿼리문에 사용하는 경우 취약점이 발생한다. [실습 내용] SQL Injection 을 이용하여 사용자 계정 정보를 알아내보자. [SQL Injection 을 보안하는 방법] 사용자의 입력을 그대로 받지 않고 필터링 함수를 이용하여 필터링을 거친다. [초기화면] - 숫자를 입력하면 숫자에 해당하는 계정이 출력된다. - 2번을 입력해보니 또 다른 계정이 나온다. - 이렇게 사용자 계정들을 조회할 수 있는 폼에서 SQL Injection 을 발생시키는 것 같다. - 이제 소스 코드를 살펴보자 [View Source]

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - Insecure CAPTCHA

[실습 내용] CAPTCHA 우회를 해보자! [초기 화면] - 분명 reCAPTCHA 설정을 했는데 빨간색으로 작동이 되지 않았다. - 다시 홈페이지에 가서 확인해보니 이미 키 설정이 되어 있었는데 안된 줄 알고 중복해서 키 발급을 해서 생긴 문제였다. - 다시 정상적으로 돌아왔다. - 패스워드를 변경하는 페이지인데 로봇이 아니라는 체크 박스를 체크해야 비밀번호가 변경이 된다. - 일단 기능을 시험해보자. - 바꾸고 싶은 비밀번호를 입력하고 체크박스까지 체크했다. - 이제 변경 버튼을 누르면 변경이 될 것인데 일을 두번 하기 싫어서 한번 버프 스위트로 잡아보았다. - 제일 눈에 들어온 것은 step=1 이었다. - 이게 체크 박스를 체크하면 1 로 설정되는 것일까? - step 이 아니라 reponse ..

TeamH4C 2022.10.23

[빡공팟 5기] W5 : DVWA 실습 - File Upload

[File Upload 취약점의 정의] 파일 업로드 기능이 있을 때, 사용자의 파일 이름을 필터링 없이 서버에 업로드하거나, 확장자의 필터링 없이 서버에 업로드 할 시에 업로드 파일 이름으로 인해 지정된 디렉토리가 아닌 다른 디렉토리에 파일 업로드가 가능하거나 확장자가 .php, .asp, .jsp 일 경우 시스템 함수를 호출할 수 있어 취약점이 발생한다. [실습 내용] 쉘 파일 업로드를 통한 명령어 사용 및 중요한 파일 읽어들이기 [공격을 보안하는 방법] 사용자가 업로드한 파일 이름을 그대로 사용하지 않고 난수화하거나 확장자 검사를 하거나 -> 확장자 검사를 우회하는 방법도 존재하더라 -> Proxy 를 이용하여 Content-type 속성을 변경하면 된다. 업로드 된 파일에 직접 접근할 수 없게 해야..

TeamH4C 2022.10.23