목록INTERLUDE (111)
Information Security

셀레늄 (Selenium) : 웹 애플리케이션 테스팅에 사용되는 파이썬 모듈 API를 통해 웹 드라이버 (크롬, 사파리 등)를 사용 가능 응답에 포함된 Javascript, CSS와 같은 웹 리소스를 웹 드라이버를 통해 해석하고 실행하기 때문에 웹 브라우저를 통해 페이지를 방문하는 것과 같은 역할 취약점 분석 vuln과 memo 엔드포인트는 이용자의 입력값을 페이지에 출력 memo는 render_template 함수를 사용해 memo.html을 출력 -> render_template 함수는 전달된 템플릿 변수를 기록할 때 HTML 엔티티코드로 변환해 저장하기 때문에 XSS가 발생하지 않음 But, vuln은 이용자가 입력한 값을 페이지에 그대로 출력하기 때문에 XSS가 발생 익스플로잇 문제를 해결하기 위..

Cross Site Scripting(XSS) : 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행 가능 -> 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행 가능 XSS 공격은 이용자가 삽입한 내용을 출력하는 기능에서 발생! 자바스크립트는 다양한 동작을 정의할 수 있기 때문에 XSS 공격에 주로 사용! Stored XSS 서버의 데이터베이스 또는 파일 등의 형태로 저장된 악성 스크립트를 조회할 때 발생하는 XSS ex) 게시물과 댓글에 악성 스크립트를 포함해 업로드하는 방식 -> 게시물은 불특정 다수에게 보여지기 때문에 해당 기능에서 XSS 취약점이 존재할 경우 높은 파급력을 가짐 Reflected XSS..

Same Origin Policy (SOP) 이용자가 웹 서비스에 접속할 때, 브라우저는 해당 웹 서비스에서 사용하는 인증 정보인 쿠키를 HTTP 요청에 포함시켜 전달함,브라우저는 웹 리소스를 통해 간접적으로 타 사이트에 접근할 때도 인증 정보인 쿠키를 함께 전송하는 특징을 가지고 있음 ->악의적인 페이지가 클라이언트의 권한을 이용해 대상 사이트에 HTTP 요청을 보내고, HTTP 응답 정보를 획득 하는 코드를 실행할 수 있음 클라이언트 입장에서는 가져온 데이터를 악의적인 페이지에서 읽을 수 없도록 해야 함 ->브라우저의 보안 메커니즘인 동일 출처 정책 (Same Origin Policy, SOP) Same Origin Policy (SOP): 동일 출처 정책, 현재 페이지의 출처가 아닌 다른 출처로부터..

https://dreamhack.io/wargame/challenges/409/ session-basic Description 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. Reference Background: Cookie & Session dreamhack.io 접속 정보 사이트로 들어가보자 문제 파일의 코드를 확인해보자 코드 확인 결과 guest와 user, admin으로 접속 가능함을 알 수 있고 admin으로 flag를 얻을 수 있음을 알 수 있다 sessionid는 random으로 32byte가 hex로 표시됨을 알 수 있다 먼저, guest로 로그인해보자 admin이 아니라는 문구가 뜬다 지금 웹사이트 주..

접속 정보 보기를 눌러 사이트를 받자 사이트에 들어가보자 로그인 창이 떴고, 아직 우리는 id와 password를 모르기 때문에 로그인이 불가능하다 문제 파일을 다운로드하여 코드를 확인해보자 코드 확인 결과 우리는 users가 guest와 admin이 존재한다는 것을 알 수 있고 password는 users[username]으로 user와 같은 것을 씀을 알 수 있다 admin으로 로그인해야 flag를 얻을 수 있을 것이다 먼저 geust로 로그인해보자 admin이 아니라는 문구가 뜬다 Application에 들어가 cookies를 클릭하면 cookie를 확인해보자 guest라는 Value값을 갖고 있는 cookie를 확인할 수 있다 이 guest를 admin으로 바꾸어보자 guest목록을 오른쪽 마우스..

쿠키 클라이언트의 IP 주소와 User-Agent는 매번 변경될 수 있는 고유하지 않은 정보 Connectionless, Stateless 특성을 갖는 HTTP에서 상태를 유지하기 위해 만들어짐 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용 Key와 Value로 이뤄진 일종의 단위 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송한다 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있다 쿠키 변조 쿠키는 클라이언트의 브라우저에 저장되고 요청에 포함되는 정보이다 따라서, 악의적인 클라이언트는 쿠키 정보를 변조해 서버에 요청을 보낼 수 있다 만약 서버가 별다른 검증 없이 쿠키를 통해 이용자의 인증 정보를 식별한다면 공격자가 타..

https://dreamhack.io/wargame/challenges/267/ devtools-sources 개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. Reference Tools: Browser DevTools dreamhack.io Soures 탭 기능을 활용해 flag를 찾아야 하는 문제다 문제 파일 다운로드 파일 구성은 아래와 같다 html 중 about.html에 들어가 보자 이러한 창이 뜬다 F12를 눌러 개발자 도구에 들어가보자 flag는 DH{~} 형태로 존재한다 Search 기능을 사용하여 flag를 찾아보자 Search 기능은 개발자 도구의 아래창에서 검색 기능을 찾아 추가할 수 있고, Ctrl+Shift+F 로 검색할 수 있다 DH{ 로 검색해보자 flag ..

개발자 도구 브라우저를 열고 F12 Figure1에서 개발자 도구의 간단한 레이아웃 정보를 확인할 수 있음 요소 검사 특정 요소의 개괄적인 정보를 파악하고, 이와 관련된 코드를 쉽게 찾을 수 있음 요소 검사 버튼을 누르고 웹 페이지의 원하는 요소에 마우스를 올리면, 대상의 정보가 출력됨 디바이스 툴바 현재 브라우저의 화면 비율 및 User-Agent를 원하는 값으로 변경할 수 있음 자신이 개발한 웹 서비스가 다른 장치에서도 잘 작동하는지 점검을 쉽게 진행할 수 있음 HTML 수정 코드를 선택한 상태로 단축키 F2를 누르거나 더블 클릭하면, 이를 수정할 수 있음 (요소 검사 기능을 같이 활용하면 수정할 코드를 빠르게 선택할 수 있어 편리함) Console 프론트엔드의 자바스크립트 코드에서 발생한 각종 메세..