Hacking
-
Clickjacking 사용자가 사이트의 콘텐츠를 클릭할 때 악성 사이트의 콘텐츠를 클릭하게 되는 인터페이스 기반 공격이다. 한 예로 버튼을 클릭하면 돈을 주는 사이트가 있다고 가정해 보자. 사용자는 돈을 받기 위해 버튼을 클릭했는데 자신도 모르는 사이에 다른 계좌가 돈을 받았다. 이렇게 정상적인 사이트인척 속여서 사용자도 모르게 다른 행동을 취하는 공격이 클릭재킹이다. 클릭 재킹은 iframe 내 버튼이나 겨진 링크가 포함된 웹 사이트의 기능에 따라 공격이 달라진다. CSRF와 다른점은 CSRF의 공격 같은 경우는 사용자의 input 없이 전체 요청을 위조하지만 클릭재킹 같은 경우 사용자의 input이 있어야만 공격이 가능하다. Clickjacking은 기본적으로 CSS를 조작하여 레이어를 만든다. 대..
Click jackingClickjacking 사용자가 사이트의 콘텐츠를 클릭할 때 악성 사이트의 콘텐츠를 클릭하게 되는 인터페이스 기반 공격이다. 한 예로 버튼을 클릭하면 돈을 주는 사이트가 있다고 가정해 보자. 사용자는 돈을 받기 위해 버튼을 클릭했는데 자신도 모르는 사이에 다른 계좌가 돈을 받았다. 이렇게 정상적인 사이트인척 속여서 사용자도 모르게 다른 행동을 취하는 공격이 클릭재킹이다. 클릭 재킹은 iframe 내 버튼이나 겨진 링크가 포함된 웹 사이트의 기능에 따라 공격이 달라진다. CSRF와 다른점은 CSRF의 공격 같은 경우는 사용자의 input 없이 전체 요청을 위조하지만 클릭재킹 같은 경우 사용자의 input이 있어야만 공격이 가능하다. Clickjacking은 기본적으로 CSS를 조작하여 레이어를 만든다. 대..
2023.04.25 -
Directory Traversal 공격자가 응용 프로그램을 실행 중인 서버에서 임의의 파일을 읽을 수 있도록 허용하는 웹 보안 취약점이다. directory traversal공격을 통하여 애플리케이션 코드 및 데이터, 백앤드 시스템의 자격 증명 및 중요한 파일을 읽거나 접근할 수 있다. 또한 임의 파일에 쓰면서 데이터를 수정하여 서버를 제어할 수 있다. Background 절대경로: / -> 최상위 디렉터리를 기준으로 찾음 상대경로:./ -> 현재 디렉터리를 기준으로 찾음 상위 경로이동: ../ -> 현재 디렉터리의 상위 디렉터리로 이동 example loadImage url은 filename 매개변수를 사용하여 지정된 파일의 내용을 가져온다. 이미지 파일은 /var/www/images에 저장된다. 이..
Directory TraversalDirectory Traversal 공격자가 응용 프로그램을 실행 중인 서버에서 임의의 파일을 읽을 수 있도록 허용하는 웹 보안 취약점이다. directory traversal공격을 통하여 애플리케이션 코드 및 데이터, 백앤드 시스템의 자격 증명 및 중요한 파일을 읽거나 접근할 수 있다. 또한 임의 파일에 쓰면서 데이터를 수정하여 서버를 제어할 수 있다. Background 절대경로: / -> 최상위 디렉터리를 기준으로 찾음 상대경로:./ -> 현재 디렉터리를 기준으로 찾음 상위 경로이동: ../ -> 현재 디렉터리의 상위 디렉터리로 이동 example loadImage url은 filename 매개변수를 사용하여 지정된 파일의 내용을 가져온다. 이미지 파일은 /var/www/images에 저장된다. 이..
2023.04.22 -
Double Free double free는 같은 chunk를 연속으로 두 번 해제할 때 생기는 버그이다. #include #include #include int main() { char *ptr = malloc(0x20); char *ptr1 = malloc(0x20); free(ptr); free(ptr); return 0; } 동적으로 ptr을 할당하고 연속으로 2번 free 하면 double free bug가 발생한다. double free를 체크하는 함수는 위 사진과 같다. 이전에 해제한 pointer와 현재 해제하려는 pointer가 같으면 double free를 발생시킨다. 이 부분을 우회할 수 있는데 old ptr와 p ptr을 다르게 만들면 된다. 어떤 식으로 가능할까?? 방법은 간단하다..
Double FreeDouble Free double free는 같은 chunk를 연속으로 두 번 해제할 때 생기는 버그이다. #include #include #include int main() { char *ptr = malloc(0x20); char *ptr1 = malloc(0x20); free(ptr); free(ptr); return 0; } 동적으로 ptr을 할당하고 연속으로 2번 free 하면 double free bug가 발생한다. double free를 체크하는 함수는 위 사진과 같다. 이전에 해제한 pointer와 현재 해제하려는 pointer가 같으면 double free를 발생시킨다. 이 부분을 우회할 수 있는데 old ptr와 p ptr을 다르게 만들면 된다. 어떤 식으로 가능할까?? 방법은 간단하다..
2023.04.18 -
안뇽 안뇽~~ 이번에 문제를 풀면서 새로 알게 된 공격 기법이 있어서 정리할 겸 가져와봤어 DNS Rebinding Attack 이 공격은 도메인 이름의 확인을 조작하는 방법이야. 보통 악의적인 공격을 막기 위해서 도메인의 이름을 확인하고, dns로 해당 도메인의 IP를 확인해 그러고 나서 해당 URL로 접속한단 말이야?? 그런데 도메인의 ip를 확인하는 로직과 URL로 접속하는 로직의 요청 간 차이 때문에 악의적인 공격을 할 수가 있어 글로 하니까 잘 안와닿지?? 내가 로컬에서 환경을 구축해서 보여줄게 여기 해당 공격의 flow야. 간단하게 DNS rebinding Test를 구축해 봤어 // index.js const express = require('express'); const path = req..
DNS Rebinding Attack안뇽 안뇽~~ 이번에 문제를 풀면서 새로 알게 된 공격 기법이 있어서 정리할 겸 가져와봤어 DNS Rebinding Attack 이 공격은 도메인 이름의 확인을 조작하는 방법이야. 보통 악의적인 공격을 막기 위해서 도메인의 이름을 확인하고, dns로 해당 도메인의 IP를 확인해 그러고 나서 해당 URL로 접속한단 말이야?? 그런데 도메인의 ip를 확인하는 로직과 URL로 접속하는 로직의 요청 간 차이 때문에 악의적인 공격을 할 수가 있어 글로 하니까 잘 안와닿지?? 내가 로컬에서 환경을 구축해서 보여줄게 여기 해당 공격의 flow야. 간단하게 DNS rebinding Test를 구축해 봤어 // index.js const express = require('express'); const path = req..
2023.04.16 -
저번에 So easy easy~~~ 하게 Web 기본 지식에 대해 배웠징?? 이번에는 우리 같이 보안정책을 보고 갈까?? 첫 번째!! 하기전에.... Cookie는 browser에서 보관하지?? 그리고 Client가 Web 서비스에 접속할 때, browser는 해당 Web 서비스에서 사용하는 인증 정보를 HTTP에 포함시켜 전달해 그래서 이러한 Web의 특징 때문에 악의적인 페이지가 공격 페이지의 HTTP 요청을 보내고 응답 정보를 획득할 수 있는 취약점이 생겨 SOP(Same Origin Policy) 동일 출처 정책이라고 불리는 SOP를 사용하여 웹의 취약점을 막을 수 있는데 일단 SOP는 브라우저 보안 메커니즘이야 그래서 Origin이 뭔데?? https://www.example.com:43561 ..
SOP와 CSP저번에 So easy easy~~~ 하게 Web 기본 지식에 대해 배웠징?? 이번에는 우리 같이 보안정책을 보고 갈까?? 첫 번째!! 하기전에.... Cookie는 browser에서 보관하지?? 그리고 Client가 Web 서비스에 접속할 때, browser는 해당 Web 서비스에서 사용하는 인증 정보를 HTTP에 포함시켜 전달해 그래서 이러한 Web의 특징 때문에 악의적인 페이지가 공격 페이지의 HTTP 요청을 보내고 응답 정보를 획득할 수 있는 취약점이 생겨 SOP(Same Origin Policy) 동일 출처 정책이라고 불리는 SOP를 사용하여 웹의 취약점을 막을 수 있는데 일단 SOP는 브라우저 보안 메커니즘이야 그래서 Origin이 뭔데?? https://www.example.com:43561 ..
2022.05.20 -
Web Hacking에 앞서 먼저 Web이 무엇인지 알고 가보자!! Web! World Wide Web은 넓은 공간이다. 어떤 공간이냐!!! 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간이다. 그 말은 Web은 User들 간의 Data를 주고받는다는 것을 말한다. 그럼 눈치가 100단인 분들은 바로 이해했겠죠?? Web Hacking은 바로 이 Data를 탈취하고, 변경하고, 조작하는 것을 말해 (^0^) 그러면 이 Data를 어떻게 공유하는지 볼까요? Web은 HTTP라는 Protocol을 이용하여 Data를 공유 해용 위에 자료가 Web이 기본적으로 통신하는 방법이다. Web은 Client와 Server가 서로 통신을 한다. Client: 정보를 받는 이용자 Server: 정보를 제공..
Web의 기초지식Web Hacking에 앞서 먼저 Web이 무엇인지 알고 가보자!! Web! World Wide Web은 넓은 공간이다. 어떤 공간이냐!!! 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간이다. 그 말은 Web은 User들 간의 Data를 주고받는다는 것을 말한다. 그럼 눈치가 100단인 분들은 바로 이해했겠죠?? Web Hacking은 바로 이 Data를 탈취하고, 변경하고, 조작하는 것을 말해 (^0^) 그러면 이 Data를 어떻게 공유하는지 볼까요? Web은 HTTP라는 Protocol을 이용하여 Data를 공유 해용 위에 자료가 Web이 기본적으로 통신하는 방법이다. Web은 Client와 Server가 서로 통신을 한다. Client: 정보를 받는 이용자 Server: 정보를 제공..
2022.03.25