전체보기 333

File Upload(파일 업로드) 취약점

File Upload(파일 업로드) 취약점이란? 웹 서버가 제공하는 파일 업로드 기능을 이용하여 악성 스크립트를 업로드하는 공격 악성 스크립트가 업로드 된 후, 서버상에서 스크립트를 실행하여 쉘을 획득하는 등의 행위로 서버를 장악할 수 있음 적절한 검증 없이 파일 업로드 기능을 제공할 때 발생 언어 파일 확장자 PHP php, php3, php4, php5, phtml, inc JSP jsp, jsf ASP Asp, asa, cds, cer 등 ASP.NET aspx, asax, ascx, ashx, asmx, axd, config, cs, csproj, licx, rem, resources, resx, soap, vb, vbproj, vsdisco, webinfo 등 보안 - 대소문자를 구분하지 않고 ..

Study/Web 2021.06.14

[DVWA] CSP Bypass

CSP Bypass Low view source) script-src: 스크립트 관련 권한 집합을 제어 -> self 혹은 다른 몇몇 사이트들을 허용하고 있음 Step 1) js 파일 작성 Step 2) js 파일 위치를 입력 Step 3) 해당 js 파일이 실행됨 Medium view source) unsafe-inline: inline javascript 사용 금지 nonce-(암호화된 문자): 암호화된 문자로된 inline 값은 허용 *인라인 방식은 이벤트를 이벤트 대상의 태그 속성으로 지정하는 것 X-XSS-Protection: XSS 공격을 감지할 때 페이지 로드를 중지(0: 비활성화, 1: 활성화) Step 1) 스크립트 구문 삽입 High view source) 코드 하단에 high.js를 ..

Study/Web 2021.06.14

CSP(Content Security Policy)

CSP(Content Security Policy)란? 신뢰된 웹 페이지 콘텍스트에서 악의적인 콘텐츠를 실행하세 하는 XSS, 클릭재킹, 그리고 기타 코드 인젝션 공격을 예방하기 위해 도입된 컴퓨터 보안 표준 주로 헤더에 내용이 삽입되며 특정 리소스가 어디서 왔는지 검사하고 허용된 범위에 포함되었는지 검토함 인라인 스크립트를 금지하는 것을 요구 CSP 지시문 default-src 디폴트 설정 connect-src 연결할 수 있는 URL을 제한 script-src 스크립트 관련 권한 집합을 제어 child-src iframe 태그에서 사용 style-src 스타일시트 관련 권한 집합을 제어 font-src 웹 글꼴을 제공할 수 있는 출처를 지정 img-src 이미지 관련 권한 집합을 제어 report-ur..

Study/Web 2021.06.14

[DVWA] CSRF

CSRF Low Step 1) 패스워드 '1234'로 변경 Step 2) response를 통해 password 값의 폼 데이터 확인 Step 3) html 작성 Step 4) 해당 html 접속 Test Credentials에서 확인해보면 변경된 것을 확인할 수 있음 Medium view source) referer 확인 -> 같은 서버에서 요청이 올 경우 referer이 같음 Step 1) 정상 변경 시 referer 확인 Step 2) csrf_low.html 접속 referer 값이 일부 생략됨 Step 3) html 작성 브라우저 정책으로 인해 url path, query string에 포함된 개인정보가 유출되는 것을 방지 -> referer에서 origin이 동일하지 않다면 수집 불가능 ref..

Study/Web 2021.06.13

[WebGoat] CSRF

WebGoat(CSRF) CSRF -> 3 Step 1) 제출버튼을 클릭 request를 확인 Step 2) html 작성 request 값을 보고 html 작성 Step 3) 로그인한 상태에서 해당 html 접근 CSRF -> 4 Step 1) request 확인 Step 2) html 작성 Step 3) 로그인한 상태에서 해당 html 접근 CSRF -> 7 Step 1) 정상 실행 Step 2) json 형식으로 보내기 위한 html 작성 그냥 보내면 값이 url 인코딩되어 서베 에러 발생 -> enctype 속성 사용하여 데이터를 인코딩하지 않고 request *enctype: 폼 데이터가 서버로 제출될 때 해당 데이터가 인코딩되는 방법을 명시 =이 붙으면서 또 에러 발생 -> value로 잘라주..

Study/Web 2021.06.13

CSRF(Cross Site Request Forgery)

CSRF란? 사이트간 요청 위조 웹 애플리케이션 취약점 중 하나 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격방법 패스워드 변경, 게시글 작성, 삭제 등의 작업을 할 수 있음 공격자는 게시판에 CSRF 스크립트가 포함된 게시글을 등록 관리자나 사용자가 해당 게시글을 열람 관리자나 사용자의 권한으로 CSRF 스크립트 요청이 발생하며 공격을 당함 메일 전송으로도 가능 사용자가 웹 사이트에 로그인한 상태에서 CSRF가 삽입된 페이지를 열면, 웹 사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출 XSS와 CSRF 비슷한 점: 클라이언트, 스크립트 언어를 이용함 차이점 ..

Study/Web 2021.06.13

[DVWA] DOM Based XSS

DOM based XSS Low view source) Step 1) 아무 값이나 입력 url의 내용을 추출한 뒤 decode하여 html에 write Step 2) url에 스크립트 구문 삽입 Step 3) 스크립트 구문으로 인식된 것을 확인 Medium view source) stripos()를 통해 필터링 *stripos(): 대상 문자열을 앞에서부터 검색하여 찾고자 하는 문자열이 몇 번째 위치에 있는지를 리턴하는 함수 Step 1) 이미지 태그를 사용 Step 2) 스크립트 구문으로 인식된 것을 확인 를 꼭 해줘야 함 -> 코드를 보면 앞에 가 열려있다. 안에 이미지 태그가 들어갈 수 없기에 닫아준 다음에 삽입 High view source) switch문을 통해 case에 있는 값만 받아주는 방..

Study/Web 2021.06.13

[DVWA] Stored XSS

Stored XSS Low view source) *stripslashes(): 백슬래시를 제거 *mysqli_real_escape_string(): 특수문자 이스케이프 XSS를 막기 위한 코드는 보이지 않음 Step 1-1)Name에 스크립트 구문 삽입 Step 1-2) 스크립트 구문으로 인식된 것을 확인 Step 2-1) Message에 스크립트 구문 삽입 Step 2-2) 스크립트 구문으로 인식된 것을 확인 Medium view source) message에서 strip_tags()와 htmlspecialchars()를 통해 태그를 필터링 name에서는 str_replace()를 통해 ''를 공백으로 필터링 Step 1) 스크립트 태그안에 태그를 넣어 필터링을 우회 Step 2) 스크립트 구문으로 ..

Study/Web 2021.06.13

[DVWA] Reflected XSS

Reflected XSS Low Step 1) 입력 폼에 스크립트 구문 삽입 Step 2) 스크립트 구문으로 인식된 것을 확인 view source) Get방식으로 name의 값을 받아 그대로 전달 Medium view source) str_replace 함수를 통해 ''를 공백처리 Step 1) 대소문자를 섞어 필터링을 우회 Step 2) 스크립트 구문으로 인식된 것을 확인 High view source) preg_replace 함수를 통해 필터링 (*str_replcae와 preg_replace의 다른 점은? preg_replace는 정규표현식을 사용!) i옵션 -> 대소문자를 구별하지 않음 . -> 줄바꿈 문자 외에 모든 문자와 매치됨 * -> 반복

Study/Web 2021.06.13

XSS(Cross Site Scripting)

XSS란? cross site scripting의 약자 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법 클라이언트를 대상으로 한 공격 사용자의 정보(쿠키, 세션, 토큰 등) 탈취 크게 세가지로 분류: reflected xss, stored xss, dom based xss Reflected XSS 반사형 크로스 사이트 스크립팅 사용자에게 입력 받은 값을 서버에서 되돌려 주는 곳에서 발생 공격자가 악의적인 스크립트를 삽입한 URL 생성 사용자에게 해당 URL을 누르도록 유도 URL을 누른 사용자는 악의적인 스크립트의 실행으로 공격을 당함 Stored XSS 웹 서버에 저장되었다가 실행이 되는 스크립트 공격 공격자가 웹 애플리케이션에서 xss 취약점이 있는 곳을 파악 악성스크립트 삽입 -> DB에..

Study/Web 2021.06.13