전체 글 19

[Dreamhack] ServerSide: SQL Injection

SQL Injection을 알아보기 전에 먼저 기본적으로 Injection 공격을 알아보겠습니다 Injection 주입이라는 의미를 가진 영단어로 이용자의 입력값이 어플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점을 의미합니다 SQL Injection의 예를 들면 로그인창에 정상적인 아이디와 비밀번호를 입력하지 않고 비밀번호는 모르지만 아이디만 아는 계정이 있다고 하면 'a' 라는 아이디 계정으로 로그인 하겠습니다 라는 요청을 로그인창을 통해 보내게 되면 DBMS는 비밀번호 일치 여부를 검사하지 않고 아이디가 'a'인 계정에 로그인 시켜주게 되는 것 입니다 위와 같이 DBMS에서 사용하는 질의 구문인 SQL을 삽입하는 공격을 SQL Injection 이라고 합니다 SQL In..

Web Hacking 2023.04.06

[Dreamhack] Background : Relational DBMS

RDBMS 데이터베이스를 관리하는 시스템, 애플리케이션을 DBMS (DataBase Management System) 라고 부릅니다 데이터베이스는 대표적으로 관계형과 비관계형이 존재하는데 오늘 볼 내용은 RDBMS 관계형 데이터베이스를 볼겁니다 RDBMS의 종류는 대표적으로 MySQL, MariaDB, PostgreSQL, SQLite가 있습니다 RDBMS는 Codds가 12가지 규칙을 정의하여 생성한 데이터베이스 모델입니다 행과 열의 집합으로 구성된 테이블의 묶음 형식으로 데이터를 관리하고, 테이블 형식의 데이터를 조작할 수 있는 관계 연산자를 제공합니다. 실제론 12가지 규칙 모두 따르진 않고 최소한의 조건으로 앞의 두 조건을 만족하는 DBMS를 RDBMS라고 부르게 되었습니다 RDBMS에서 관계 연..

Web Hacking 2023.04.04

[Dreamhack] ClientSide : CSRF

Cross Site Request Forgery (CSRF) CSRF는 교차 사이트 요청 위조로 간단하게 예시를 들면 싸인만 되어있고 내용은 적혀있지 않은 계약서를 빼앗아 공격자 마음대로 계약서 내용을 적는것 이라고 보시면 됩니다 그렇다면 이미 계약서엔 싸인이 되어있기 때문에 그 계약서는 효력을 발휘할 수 있습니다 이런식으로 CSRF는 클라이언트를 속여서 의도치 않는 요청에 동의하는 공격을 말합니다 CSRF 공격에 성공하기 위해선 공격자가 작성한 악성 스크립트를 이용자가 실행해야 합니다 이런 공격 방식에는 메일을 보내거나 게시판의 글을 이용자가 조회하도록 유도하는 등의 방법이 있습니다 CSRF 공격 스크립트는 HTML 혹은 JS를 통해 작성할 수 있습니다 위 사진은 HTML로 작성한 스크립트입니다 img..

Web Hacking 2023.03.30

[Dreamhack] xss-2

dreamhack xss-2 문제다 이번 문제는 저번문제랑 거의 똑같습니다 그런데 이번엔 vuln 페이지에 들어가도 가 반응하지 않습니다 DevTools(F12)를 통해 소스를 확인해 보겠습니다 확인해보니 파라미터가 innerHTML로 들어갑니다 현재 HTML5 부터는 innerHTML로 들어간 script태그는 실행되지 않는다 그럼 이제 다른방법을 찾아야하는데 XSS Cheat Sheet 에 있는 다양한 태그를 통한 XSS 방법이 있으니 여길 참조하여 다양한 태그를 활용해 문제를 푸실 수 있고 저는 img 태그를 활용해 를 통해 풀었습니다

WAR GAME 2023.03.30

[Dreamhack] xss-1

바로 문제 페이지 부터 보겠습니다 3개의 링크가 있습니다 하나씩 확인해보겠습니다 vuln(xss)page를 누르면 script가 실행됩니다 이 페이지를 통해 xss script를 넣을 수 있을거 같습니다 memo를 클릭하면 hello가 출력되는걸 볼 수 있습니다 아마 이 페이지를 통해 플래그 값을 얻어오는것 같습니다 마지막으로 flag를 눌러보면 굉장히 친절하게 xss할 수 있도록 vuln페이지로 script를 바로 입력할 수 있게 해둔 모습입니다 이제 익스플로잇 코드를 짜야하는 소스코드를 보지않고 flag페이지만 보더라도 vuln페이지의 파라미터로 script를 넣어줘서 vuln페이지에서 script를 실행해 memo에 플래그 값을 띄워야한다는 시나리오가 생각이 듭니다 하지만 어떤 script를 넣어줘..

WAR GAME 2023.03.30

[Dreamhack] ClientSide : XSS

Cross Site Scripting(XSS) XSS는 공격자가 웹 리소스에 악성 스크립트를 삽입해 클라이언트의 웹 브라우저에서 해당 스크립트를 실행합니다 공격자는 해당 취약점을 통해 특정 계정의 세션이나 쿠키를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있습니다 해당 취약점은 SOP 보안 정책이 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 이전에 비해 힘들어졌습니다 하지만 이를 우회하는 다양한 기술들이 소개되면서 XSS 공격은 지속되고 있습니다 XSS 발생 예시 Stored XSS : XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS Reflected XSS : XSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS DOM-base..

Web Hacking 2023.03.30

[Dreamhack] Mitigation: Same Origin Policy

Same Origin Policy(SOP) 브라우저는 인증 정보로 사용되는 쿠키를 보관하고, 웹 서비스에 접속할 때 해당 쿠키를 함께 전달합니다 이는 악의적인 페이지가 클라이언트의 권한을 이용해 대상 사이트에 요청을 보내어 정보 유출과 같은 보안 위협이 발생 따라서 브라우저는 동일 출처 정책(Same Origin Policy, SOP)을 사용하여 악의적인 페이지에서 가져온 데이터를 읽을 수 없도록 보호합니다. Orgin (오리진) 구별법 Origin 구성 프로토콜 (Scheme) 포트 호스트 SOP는 Cross Origin이 아닌 Same Origin 에서만 정보를 읽을 수 있도록 해줍니다 JS를 통해서 SOP를 테스트 하는 코드 Same Origin sameNewWindow = window.open('..

Web Hacking 2023.03.30