본문 바로가기
728x90

Web/개념정리14

[개념정리] Mutation XSS https://jh-hack.tistory.com/197 [개념정리] Dompurify이번에 문제를 풀다가 DOMpurify를 우회하는 방법에 대해 알게되었다. DOMpurify란? innerHTML은 문자열이 자동으로 HTML 요소로 인식될 수 있게 기능을 한다.이러한 기능이 있을때 어떤 문제가 있을까?jh-hack.tistory.com 위에 설명한 Dompurify를 Mutation XSS로 인해 우회할 수 있는데 Mutation XSS란?2013년 처음 등장한 취약점으로 Mario Heiderich가 쓴 논문에서 확인할 수 있다.이는 innerHTML 때문에 발생하며 브라우저의 잘못된 해석 방식의 차이로 인해 발생한다. 예를 들어보면  우리는 닫는 태그를 작성하지 않은 채 코드를 작성했지만 브라우저.. 2024. 6. 25.
[개념정리] Dompurify 이번에 문제를 풀다가 DOMpurify를 우회하는 방법에 대해 알게되었다. DOMpurify란? innerHTML은 문자열이 자동으로 HTML 요소로 인식될 수 있게 기능을 한다.이러한 기능이 있을때 어떤 문제가 있을까? innerHTML에 아무런 필터링이 없으면 XSS 공격에 매우 취약하다.이러한 문제점을 제거해주는게 DOMprify이다. DOMPurify는 화이트리스트 접근 방식을 취하는데 특정한 태그와 속성, 프로토콜만 허용한다.// 예시DOMPurify.sanitize(''); // becomes DOMPurify.sanitize(''); // becomes DOMPurify.sanitize('abcdef'); // becomes abcDOMPurify.sanitize(''); // becomes.. 2024. 6. 23.
[개념정리] Prototype Pollution Prototype 이란자바스크립트에서 모든 객체들이 메서드와 속성을 상속받기 위한 객체 객체를 생성할 때 기본적으로 상속되며 여러 메소드를 포함한다. 새로운 인스턴스가 생성될 때, 생성된 인스턴스는상위 객체의 프로토타입을 상속받아 생성되고, 인스턴스의 상위 객체 또한 더 위의 상위 객체로부터 프로토타입객체를 상속받아 생성되는데 이렇게 프로토타입 객체를 상속받고 또 상속받는 것을 '프로토타입 체인'이라고 한다.prototype-pollutions이란North Sec 2018, 보안 연구자 Olivier Arteau의 “Prototype pollution attacks in NodeJS applications“라는 발표를 했다.공격자가 JS언어 고유의 프로토타입 체인 동작 원리를 이용해 웹 서버를 공격하는 .. 2024. 6. 5.
[개념정리] PHP Deserialization 취약점 Stream Wrapper란?PHP에서 파일을 다루는 함수에 대한 인터페이스 역할을 하는 것으로 fopen(), copy(), file_exists() 및 filesize() 등과 같은 파일 시스템 함수와 함께 사용하기 위한 다양한 URL 스타일 프로토콜을 위한 많은 내장 래퍼를 제공하는 것을 말한다. 내장 래퍼를 통해 파일 입출력을 수행할 수 있다.ex) http://, https://, file://, phar:// ....phar란?phar(PHP Archive)는 많은 코드 파일 및 기타 리소스를 단일 아카이브 파일로 사용할 수 있는 패키지 형식이다. phar 파일은 총 4개의 구조로 이루어진다.StubManifestFile contentsSignature (Optional)Stub작은 형태의 코.. 2024. 5. 26.
[개념정리] case mapping collision 워게임을 풀다가 알게 된 취약점에 대해 정리한 내용이다. Unicode 먼저 Unicode란? 유니코드는 플랫폼, 프로그램 또는 언어에 관계없이 전 세계 쓰기 시스템에서 사용되는 모든 문자에 고유한 숫자 값(코드 포인트)을 제공하는 것을 목표로 하는 문자 인코딩 표준이다. 기본적인 ASCII 범위를 벗어나 전 세계 언어를 표현하기 위해 Unicode를 많이 사용한다. 이로 인해 ASCII로 표현이 불가능했던 문자를 unicode로 표현이 가능해졌다. 이로 인해 예상치 못한 취약점이 발생하곤 하는데 이에 대해 설명하고자 한다. case mapping collision 우선 Java, Python, Ruby등의 언어에서 소문자 → 대문자, 대문자 → 소문자로 변경하는 함수들이 있을것이다. (ex. toLow.. 2024. 2. 29.
[개념정리] Click jacking Click jacking 이란? Click jacking은 웹 보안 공격 중 하나로, 공격자가 웹 페이지를 조작하여 사용자가 의도하지 않은 동작을 수행하도록 속이는 공격 형태이다. Click jacking은 웹 애플리케이션의 사용자 인터페이스(UI)를 가려서 숨긴 상태로, 사용자가 보고 있는 것과는 다른 UI 요소나 링크를 클릭하게 유도하는 형태이다. 즉, 눈 속임을 통한 공격방법이라 할 수 있다. 클릭재킹 공격의 주요 특징과 동작 방식은 다음과 같다. UI 가려놓기: 공격자는 투명한 레이어나 숨겨진 프레임(iframe) 등을 사용하여 원래 웹 페이지를 가려놓는다. 유도 및 속임: 사용자는 보이는 부분을 클릭하려고 하지만 실제로는 가려진 페이지의 링크나 버튼을 클릭하게 된다. 사용자는 이를 자각하지 못하.. 2024. 1. 5.
[개념정리] SameSite 쿠키에 별도로 설정을 가하지 않는다면, 크롬을 제외한 브라우저들은 모든 HTTP 요청에 대해서 쿠키를 전송하게 된다. 그 요청에는 HTML 문서 요청, HTML 문서에 포함된 이미지 요청, XHR 혹은 Form을 이용한 HTTP 요청등 모든 요청이 포함된다. CSRF(Cross Site Request Forgery)는 이 문제를 노린 공격이다. 공격대상 사이트는 쿠키로 사용자 인증을 수행함. 피해자는 공격 대상 사이트에 이미 로그인 되어있어서 브라우저에 쿠키가 있는 상태. 공격자는 피해자에게 그럴듯한 사이트 링크를 전송하고 누르게 함. (공격대상 사이트와 다른 도메인) 링크를 누르면 HTML 문서가 열리는데, 이 문서는 공격 대상 사이트에 HTTP 요청을 보냄. 이 요청에는 쿠키가 포함(서드 파티 쿠키).. 2023. 10. 27.
[개념정리] XSS XSS란? SQL injection, XXE, CSRF등 대표적인 웹해킹 기법중 하나로 Cross Site Scripting의 약자로 CSS라는 언어가 먼저 사용되고 있어 XSS라고 지어졌다. XSS는 이름 그대로 다른 웹사이트와 정보를 교환하는 식으로 작동한다. 웹 사이트가 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타나며, 대부분 사용자가 글을 쓰고 읽을 수 있는 게시판에 많이 발생하지만, 사용자의 입력 값을 웹 페이지에 보여주는 곳에서도 발생한다. 공격에 성공하면 사이트에 접속한 사용자는 악성 스크립트를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등 민감한 정보를 탈취한다. 공격 유형 1. Stored XSS (저장 XSS) Stored XSS은 악.. 2023. 8. 23.
[개념정리] XXE 란? 대표적이 웹 해킹 기법이라 하면 SQL injection, XSS, CSRF, XXE 등등이 있다. 이중 XXE는 무엇일까? XXE는 XML External Entity의 약자이다. 먼저 XXE를 알아보기전에 XML이 무엇인지 알아야 한다. XML이란? XML이란 Extensible Markup Language의 약자로 다른 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장되는 다목적 마크업 언어이다. 마크업 언어(Markup Language)는 양식이 있는 문서의 한 종류이며 그 양식을 태그(좌, 우 부등호 처럼 생긴 꺽쇠 로 구분)등으로 구분하여 문서 정보를 정확하게 전달하기 위한 목적으로 만들어진 문서이다. 예를 들어 우리가 흔히 아는 HTML이 있다. 그러나 XML은 HTML처럼 .. 2023. 8. 11.
[개념정리] UNION UNION, UNION ALL이란? UNION은 두 개 이상의 select문을 합칠 때 사용하며 각각의 select문의 컬럼 수와 데이터 타입이 같아야 사용할 수 있다. UNION ALL도 두 SQL 문의 결과를 결합하는데 사용되는 명령이다. UNION ALL가 UNION과 다른 점은 UNION ALL은 데이터 값이 중복되더라도 조건에 일치하는 데이터를 모두 표시한다. UNION, UNION ALL 문법 select [컬럼 1],[컬럼 2] from [테이블 1] UNION select [컬럼 1],[컬럼 2] from [테이블 2] select [컬럼 1],[컬럼 2] from [테이블 1] UNION ALL select [컬럼 1],[컬럼 2] from [테이블 2] (앞 select문의 컬럼 수가 .. 2023. 7. 10.
728x90