Hacking & Security/WebHacking
NoSQL NoSQL 은 비관계형 데이터베이스를 의미한다. RDBMS는 SQL이라는 정해진 문법을 통해 데이터를 저장하기 때문에 한 가지의 언어로 다양한 DBMS를 사용할 수 있다. 하지만, NoSQL 은 다양한 DBMS가 존재하기 때문에 각각의 구조와 사용 문법을 익혀야 한다. 대표적인 NoSQL은 Redis, Dynamo, CouchDB, MongoDB 등이 있다. MongoDB MongoDB는 JSON 형태의 document를 저장한다. $문자를 이용해 연산자를 사용한다는 특징이 있다. Comparison $eq 지정값과 같은 값을 찾는다. $in 배열 안의 값들과 일치하는 값을 찾는다. $ne 지정된 값과 같이 않은 값을 찾는다. $nin 배열 안의 값들과 일치하지 않는 값을 찾는다. Logica..
SQL injection SQL injection은 DBMS에서 사용하는 쿼리를 임의로 조작해 데이터베이스의 정보를 획득하는 기법이다. 간단하면서도 정말 많이 일어나는 기법이다. 다음 자료는 OWASP(The Open Web Application Security Project)에서 발표한 2021년 가장 많이 일어난 웹 취약점이다. Injection이 1위를 차지하고 있다는 것을 알 수 있다. 이 injection 기법 중 가장 흔히 일어나는 것이 sql injection이라고 할 수 있다. Injection flaws, such as SQL, NoSQL, OS, and LDAP injection, occur when untrusted data is sent to an interpreter as part..
CSRF(Cross Site Request Forgery) CSRF(사이트간 요청 위조)는 임의 이용자의 권한으로 임의주소에 HTTP 요청을 보낼 수 있는 취약점이다. 공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있다. 예를 들어, 이용자의 계정으로 임의 금액을 송금해 금전적인 이득을 취할 수도 있고, 비밀번호를 탈취해 금전적인 이득을 취할 수도 있다. CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야한다. 이는 공격자가 이용자에게 메일을 보내거나 글을 작성해 조회하도록 하는 방법이 있으며, HTML 또는 javascript를 통해 작성한다. HTML 태그를 이용한 방법 (위 사이트는 없는 사이트이며 그냥 이해를 돕기 위해 내가 하나 만들었다.)..
XSS(Cross-Site-Scripting) XSS는 클라이언트 사이드 취약점 중 하나이다. 이때, 클라이언트 사이드는 클라이언트-서버 구조에서 클라이언트쪽에서 일어나는 처리를 뜻한다. 즉, XSS는 클라이언트족에서 행할 수 있는 취약점이다. 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있다. 악성스크립트가 적절한 검정 없이 실행되면, 사용자의 세션을 탈취하거나 웹 사이트를 변조하거나 악의적인 사이트로 사용자를 이동시킬 수 있다. 예를 들어 게시글을 작성할 수 있는 사이트가 있다고 하자. 사용자가 게시글에 일반적인 내용을 입력하면 그 내용이 서버로 올라간다. 게시글 안녕하세요 저는 모북입니다. 저는 코딩을 하고 있습니다. 이건 일반적인 게시글입니다. ..