1

Reflected XSS 학습

Reflected XSS 학습

노아의 블로그

    목차
반응형

저번시간에는 게시글에 악성 스크립트를 삽입하는 XSS공격을 했습니다.

이렇게 게시판이나 다른 데이터베이스에 악성 스크립트를 저장해서 하는 공격을 Stored XSS라고 합니다.

 

Reflected XSS는 이와 달리 저장하지 않고 반사시키는 XSS기법입니다.

 

예를 들어서 어떤 사이트에 안녕을 검색 해 본다고 가정한다면...

안녕을 입력하면 "안녕"의 검색결과는 .....이라고 나옵니다.

만약 안녕의 검색 결과가 없다면, "안녕"의 검색 결과는 없습니다. 이런식으로 나올 것 입니다.

 

네이버 사이트를 예시로 들자면!

또는 아이디 중복검사를 예시로 들 수 있습니다.

id중복 검사를 할 떄 xxx를 입력하면 xxx님의 아이디는 사용 가능? 불가능? 합니다 이런 형태로 사용자가 입력한 값이 출력 되기 때문이죠.

 

그렇습니다. 역시나 해커들은 머리속에 오로지 해킹입니다.

어라? 내가 입력한 값이 그대로 출력된다고???? 

바로 악성코드를 쑤셔넣어야죠!

 

방금 입력한 "안녕" 대신에 <script>alert('hack!!!!');</script>

라고 써버린다면?
XSS취약점이 존재하는곳에는 저 스크립트가 실행됩니다!

 

이제 출력이 되는것을 확인했으니, 저 스크립트 태그 안에 악성 스크립트를 넣으면 됬죠.

 

하지만 여기서 간과한것이 하나 있습니다.

 

javascript는 클라이언트 측 코드로,

검색하면 검색 결과가 나옵니다.

악성코드를 검색하면 악성코드가 실행됩니다.

근데 누가 검색을 하죠? 바로 해커가 검색을 합니다. 

즉 해커가 자신한테 악성스크립트를 실행하는 꼴이죠...

 

해커는 뭔가 아쉽습니다.

아...이 코드를 남의 컴퓨터에서 실행시키려면 어떻게 해야지?

여기서 한 가지 아이디어가 떠올랐죠.

아하! 이 코드를 다른사람이 검색하게 하면 되겠군!

실검 1위에 이 악성코드를 올려야겠다

매크로 돌려야지~~~

는 아니구요.

 

누가봐도 악성 코드가 적나라하게 있습니다.

검색을 할까요? 보통 사람이라면 안 하겠죠..

 

그래서 검색 사이트를 유심히 살펴봤습니다.

테스트로 검색을 해 봅니다.

 

url을 보니 뒤에 자신이 검색한 내용이 들어가있네요!(직접 검색 해 보세요)

url? 링크? 공유?.... 이제 완벽합니다.

검색 파라미터인 query 안에다 악성 스크립트를 삽입하고 그 url을 공유한다면?

 

다른 컴퓨터에서도 실행이 가능합니다. 

 

하지만 여전히 문제는 존재합니다.

 

결국에는 url안에도 <script>alert('hack!!!');</script> 가 존재하니까 쉽게 알아낼수가 있죠.

 

하지만 url 인코딩을 한다면 또 다를까요? 

 

%3cscript%3ealert(%27hack!!!%27)%3b%3c%2fscript%3e

 

인코딩을 하니, 굉장히 길어졌습니다.

단순히 출력 명령어 하나 뿐 인데 많은 공간을 잡아먹죠. 이 방법도 불편합니다.

 

그러면 어떻게 할까요?

저번에 웹 개발을 할 때 리다이렉트를 사용했었죠...

리다이렉트를 사용하는것입니다.

어떻게?

다른 사이트에서 짧은 url을 만들어놓고 그 사이트를 클릭하면 악성 스크립트가 포함된 주소로 리다이렉트 시키면 되는것입니다.

 

예시를 들어보자면! 이렇습니다.

 

naver.com?query=<script>네이버의 쿠키를 탈취하는 코드</script>

이렇게 공격 url을 제작한 후 그냥 공유하지 않고

 

사이트를 한번 더 거칩니다.

 

다른 사이트를 

testhak1234.com 이라고 가정하겠습니다.

정상적인 url이죠!

 

이제 testhac1234.com이라는 사이트에 명령을 내립니다.

이 사이트에 들어오면 아무것도 하지 말고 그냥 단순히 naver.com?query=<script>쿠키를 탈취하는 코드</script> 라는 url로 이동해!(리다이렉트)

 

이렇게 다른 사이트를 한번 거쳐서 가니까 공격 코드와 어느 사이트로 이동하는지 알 수 없습니다..

 

 

 

이런식으로 말이죠.

 

다음시간에는 직접 Reflected XSS를 실습해봅시다.

반응형

'해킹 > XSS' 카테고리의 다른 글

게시판에 Reflected XSS 공격 해보기  (0) 2023.05.15
게시판에서 Stored XSS 공격해보기.  (0) 2023.05.07
XSS 학습  (0) 2023.05.07