1일 1로그 100일 완성 CS - 통신79

SaGo_MunGcci·2022년 7월 24일
0

Computer Science

목록 보기
1/6
post-thumbnail

1. 클라이언트 - 서버 통신

2. 클라이언트 공격

1)XSS(Cross Site Scripting)

  • 공격순서
  1. 게시글을 작성할 때 스크립트 구문을 입력한다.

  2. 피해자(사용자)는 게시판의 글을 보고 내용을 확인하기 위해 클릭한다.

  3. 웹 서버는 사용자가 접근한 XSS 코드가 포함된 게시판의 글을 사용자에게 전달한다.

  4. 사용자 측에서 XSS 코드(ex.alert기능)이 실행된다.

  5. XSS 코드가 실행된 것을 사진을 통해 확인할 수 있다.

  • 구체적인 설명

공격방식은 자바스크립트의 특징을 이용하여 다른 사람의 컴퓨터에서 실행을 시킨다. ex) alert

스크립트가 실행되기만 해도 XSS에 대해 취약하다고 볼 수 있다.

웹 브라우저 내에서 적절한 검증이 없이 실행되는 것이기 때문에 사용자의 세션을 탈취/ 웹사이트를 변조/PC 오작동 등 발생.

공격자가 직접 접속하여 악성코드를 퍼트리는 것이 아니라 HTTP 프로토콜을 사용하는 과정의 취약점을 이용한 것으로

웹 서버로부터 클라이언트에게 전달되는 데이터에 악성스크립트를 삽입하기 때문에

사용자가 접속하게 되면 사용자의 클라이언트에서 실행되어 공격을 당하는 원리이다.

그렇기에 자연스럽게 여러명에게 공격을 가할 수 있는 방법이다.

공격이 단순해보이지만 오히려 특징잡기가 어려워서 막기가 더 힘들다.

예)아래 사진과 같이 게시판 같은 곳에 글을 쓴 후 상대방이 클릭하면 프로그램을 실행시키는 코드를 작성하는것.

이런 방법으로 피해자가 게시판의 글을 보고 접근했을 때 자동으로 alert의 알림 기능을 통해 프로그램을 실행 시켜보았다.

피해자는 alert의 기능이 있는 줄 인지하지 접근하였을 것이다.

즉, alert 가 아니라 악성코드였다면 이미 클릭한 순간 공격자에게 공격을 받은 것이다.

  • 윗 분이 xss를 작성해 놓은 게시판 글을 클릭해서 게시판 글을 검사해보면 아래와 같이 스크립트 태그가 실행될 수 있는 것을 볼 수있다.

3. 서버 공격

1)SQL-Injection
SQL Injection 이란?

SQL injection 은 코드 인젝션의 한 종류로서 클라이언트의 입력값을 조작하여 해당 서버의 데이터베이스를 공격하는 방식을 말한다.

클라이언트 - 서버 구성에서 사용자가 서버에 접속하기 위해 사용하는 프로그램 또는 서비스를 뜻한다.

가장 흔한 웹해킹 방법이며 데이터베이스를 손상시키거나 중요한 정보에 접근하려 쓰인다. 이 기법은 OWASP 에서 수년 동안 보안 위협 1순위로 분류되는 만큼 주의가 필요하다.

SQL in Web Pages

SQL injection은 보통 웹페이지에서 사용자에게 데이터베이스에 접근하는 입력창 (username 같이)에 SQL 코드를 입력하여 admin 이 모르는 사이에 데이터베이스를 실행시킨다.

예를들어 1=1은 항상 true 값이라는것을 활용하여

사용자 아이디 OR 1=1

이런식으로 넣으면 SQL statement 은 SELECT * FROM Users WHERE UserId = 사용자 아이디 OR 1=1;

이런 문장이 된다. 여기서 OR 은 둘 중 하나라도 true 면 true 값이기때문에 UserId = 사용자 아이디 OR 1=1; 의 값은 항상 true 가 된다.

--> 즉 이 쿼리문이 실행되면 해당 아이디값으로 로그인을 해서 기타 범죄행위가 발생할 수 있다....

profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글