XSS(크로스사이트스크립팅) 기본 우회 방법 및 스킬업 XSS(크로스 사이트 스크립팅, Cross-Site Scripting)은 웹 어플리케이션의 보안 취약점 중 하나로, 공격자가 웹 사이트에 악성 스크립트를 주입하여 사용자의 브라우저에서 실행되게 만드는 공격 기법이다. 이를 통해 공격자는 사용자의 세션 쿠키, 토큰 등을 탈취하거나, 사용자를 대신하여 의도하지 않은 행동을 실행시킬 수 있다. XSS 공격의 원리 XSS 공격의 기본 원리는 사용자로부터 입력 받은 데이터를 적절히 검증하거나 이스케이프 처리하지 않고 웹 페이지에 그대로 반영할 때 발생한다. 공격자는 이러한 취약점을 이용해 스크립트 코드를 웹 어플리케이션에 주입하고, 이 코드가 다른 사용자의 브라우저에서 실행되도록 한다. 실행된 스크립트는 공격..
다크 웹 탐험기: 안전 가이드 및 탐색 팁 인터넷이라고 하면 대부분의 사람들은 구글이나 네이버와 같은 검색 엔진을 통해 쉽게 접근할 수 있는 웹사이트들을 떠올린다. 하지만 이러한 서피스 웹은 인터넷 세계의 극히 일부에 불과하다. 인터넷의 숨겨진 구석, 바로 '다크 웹'에 대해 들어본 적 있는가? 다크 웹은 특별한 도구를 사용해야만 접근할 수 있는 숨겨진 영역으로, 인터넷의 뒷골목과도 같은 곳이다. 오늘은 다크 웹의 신비로운 세계를 탐험해보고, 그곳을 안전하게 탐색하기 위한 주의 사항과 팁을 공유하려 한다. 다크 웹의 정체 인터넷의 아이스버그 이론을 생각해보자. 우리가 평소에 접하는 웹사이트들은 빙산의 일각에 지나지 않는다. 실제로는 검색 엔진으로는 찾을 수 없는 광대한 세계가 수면 아래 숨어 있다. 다크..
CSP 는 Content Security Policy의 약자로, 웹 페이지에서 허용되는 리소스의 종류와 출처를 지정하는 정책이며 CSP를 사용하면 웹 페이지에서 악성 리소스의 실행을 차단하여 보안을 강화할 수 있다. CSP는 웹 브라우저에서 구현된다. 웹 브라우저는 웹 페이지의 CSP 정책을 확인하고, 해당 정책에 위배되는 리소스를 차단한다. CSP는 다음과 같은 방법으로 보안을 강화한다. 자바스크립트 공격 차단 자바스크립트는 웹 페이지의 기능을 확장하는 데 사용되는 강력한 도구이지만, 악용될 경우 사용자의 정보를 훔치거나 시스템을 손상시킬 수 있다. CSP를 사용하면 특정 도메인에서만 자바스크립트를 실행하도록 허용하여 자바스크립트 공격을 차단할 수 있다. 스타일 시트 공격 차단 스타일 시트는 웹 페이지..
HTTP temp 메소드❓ Google Cloud Storage에서 temp 메소드는 객체에 대한 임시 URL을 생성하는 데 사용되는 HTTP 메소드이다. 임시 URL은 지정된 만료 시간까지 유효하므로, 객체에 대한 액세스 권한을 제한하는 데 사용할 수 있다. temp 메소드의 요청 URL은 다음과 같다. https://storage.googleapis.com/v1//?temp_url_expires= 여기서: 은 객체가 포함된 버킷 이름이다. 은 객체 이름이다. 은 임시 URL의 만료 시간(밀리초)이다. temp 메소드의 응답은 다음과 같다. HTTP/1.1 200 OK Content-Type: application/json { "expiration": , "signedUrl": } 여기서: 은 임시 U..
쉘❓ "쉘(Shell)"은 컴퓨터 운영 체제에서 사용자와 운영 체제 커널 또는 하드웨어 간의 인터페이스 역할을 하는 프로그램 또는 환경을 가리키며 쉘은 사용자가 운영 체제 기능을 조작하고 명령을 실행하며 파일 및 프로세스 관리와 같은 작업을 수행할 수 있도록 하는 명령 줄 인터페이스 또는 그래픽 사용자 인터페이스를 제공한다. 웹 쉘❓ 웹 쉘이란 웹 서버에 원격으로 액세스하여 명령을 실행하고 시스템에 대한 제어를 획득할 수 있는 웹 기반 쉘이다. 웹 쉘을 사용하는 공격자는 웹 서버에 액세스 권한이 있는 경우 해당 서버에서 다양한 명령을 실행하고 시스템을 조작할 수 있다. 웹을 통해 시스템 명령어를 실행하기에 서버사이드 스크립트 언어와 함께 작성된다. 예시 코드 이 코드 예제는 PHP로 작성된 웹 쉘의 간단..
URL❓ URL은 "Uniform Resource Locator"의 약어로, 인터넷에서 자원의 위치를 나타내는 주소이며 웹 브라우저를 통해 웹 페이지, 이미지, 동영상, 문서 등 다양한 리소스에 접근하는 데 사용된다. URL 구성 프로토콜 : // 호스트명 [ : 포트 ] /[ 경로 ] / [ ? 쿼리 문자열 ] URL은 프로토콜, 호스트명, 포트 ,경로, 쿼리 문자열로 나뉜다. 프로토콜 웹 페이지에 접근하기 위해 사용되는 통신 프로토콜을 나타내고 예를 들어, "http://" 또는 "https://", FTP 등 수많은 프로토콜이 있다. 호스트 해당 리소스가 호스팅되어 있는 서버의 도메인 이름 또는 IP 주소를 나타내고 예를 들어, "www.example.com"이나 "192.168.0.1"과 같은 형..
Node.js ❓ Node.js는 JavaScript 런타임 환경(Runtime Environment)으로서, 서버 측 애플리케이션 개발을 위해 설계된 오픈 소스 플랫폼이다. Node.js는 Google Chrome의 JavaScript 엔진인 V8 엔진을 기반으로 구축되었으며, 비동기식 이벤트 주도 프로그래밍(Asynchronous Event-Driven Programming)을 지원하여 빠른 네트워크 애플리케이션 개발을 가능하게 한다. 비동기식 프로그래밍: Node.js는 비동기식 I/O 작업을 처리하기 위해 설계되었다. 이것은 여러 작업을 동시에 처리하고 응답 시간을 최적화하는 데 도움이 된다. Callbacks, Promises, Async/Await 등을 사용하여 비동기 코드를 작성할 수 있다...
바인딩❓ SQL 쿼리나 프로그래밍 언어와 데이터베이스 사이의 상호작용에서 사용되는 개념이다. 데이터베이스 바인딩은 쿼리나 명령어에 데이터 값을 동적으로 제공하기 위한 메커니즘을 가리킨다. 바인딩을 사용하면 보안성을 높일 수 있고 SQL 인젝션 공격과 같은 보안 문제를 방지할 수 있다. 매개 변수 바인딩 (Parameter Binding): 이것은 주로 SQL 쿼리에 사용된다. 매개 변수 바인딩은 SQL 쿼리에서 사용되는 변수를 외부에서 제공된 값으로 채우는 프로세스를 나타낸다. 이렇게 하면 SQL 쿼리가 사용자나 외부 입력으로부터 값에 노출되는 것을 방지할 수 있으며, SQL 인젝션 공격을 막을 수 있다. 대부분의 데이터베이스 시스템은 매개 변수 바인딩을 지원하며, 이를 통해 쿼리 실행 시 데이터 값을 ..
npm ❓ npm은 Node Package Manager의 약자로, JavaScript 프로그래밍 언어를 위한 패키지 관리자이다. npm은 JavaScript 개발자가 다른 개발자가 작성한 코드, 라이브러리, 프레임워크 및 도구를 쉽게 다운로드하고 프로젝트에 추가하는 데 사용된다. 이를 통해 개발자는 자신의 프로젝트에서 다른 개발자가 개발한 코드를 재사용할 수 있으며, 코드를 더 빠르고 효율적으로 작성할 수 있다. npm은 주로 Node.js 환경에서 사용되며, Node.js는 JavaScript를 서버 측에서 실행하기 위한 런타임 환경이다. 따라서 JavaScript를 사용하여 서버 측 애플리케이션을 개발하는 경우 npm은 필수 도구 중 하나이다. 패키지 설치: npm을 사용하여 다른 개발자가 작성한 ..
jquery❓ jQuery는 자바스크립트 프로그래밍 언어를 기반으로 하는 라이브러리 중 하나로, 웹 개발에서 자주 사용되는 클라이언트 측 스크립트 라이브러리이다. jQuery는 웹 페이지 상의 HTML 문서를 조작하고 상호작용을 향상시키기 위한 간편한 방법을 제공하며 AJAX를 사용하여 비동기적으로 서버와 통신할 수 있게 해준다. jQuery의 핵심 원리는 선택자를 사용하여 HTML 요소를 찾고, 이벤트 처리기를 등록하여 해당 요소에 대한 상호작용을 정의하는 것이다. jQuery는 브라우저의 DOM(Document Object Model)을 효과적으로 조작하고, CSS 스타일을 변경하며, AJAX를 사용하여 비동기적으로 서버와 통신할 수 있게 해준다. jquery 종류 jQuery UI (User Int..