2022. 7. 31. 21:54ㆍ22-여름방학/웹 해킹(WEB HACKING)&웹 기초
Cross-site scripting – Reflected (GET)
난이도 : low
Quest. xss 취약점이 있는지 알아봅시다. 다음 화면을 띄워보세요.
경고창을 누른 후 화면 (Welcome success 출력)
Hint1. 스크립트 태그 안에 alert함수를 넣어 경고창을 띄울 수 있습니다.
Hint2. First name과 Last name에 각각 공격을 하면 어떤 결과가 나오는지 알아봅시다.
Cross Site Scripting-Reflected(GET)를 클릭한다.그 다음 나오는 화면에서first name에 <script>alert("XSS");</script>을 입력하고 last name에 success를 입력한다.
그러면 위의 사진처럼 새로운 창이 뜨는데 OK 버튼을 누르면 아래와 같이 Welcome success라는 글자가 뜨게 된다.
난이도 : medium
Hint1. xss 공격을 막는 함수가 있는 것 같습니다. 소스코드를 살펴봅시다.
Hint2. xss_check_4가 어떤 함수인지 알아봅시다.
Hint3. 함수 정보는 functions_external에 저장되어 있습니다.
Hint4. addslashes함수가 어떤 문자를 필터링하는지 알아봅시다.
페이지의 소스코드를 확인한다.
/var/www/bWAPP 디렉토리로 이동해서 xss_get.php파일을 연다.
medium 레벨에서 xss_check_4 함수가 작동하는 것을 학인할 수 있다.
터미널에서 functions_external.php파일을 열어본다.
파일을 열어보면 xss_check_4 함수 내용을 확인할 수 있다.
이 함수 안을 보면 addslashes함수를 return값으로 출력하는 것을 확인할 수 있다.
그런데 주석에 적힌 이 함수를 살펴보면 '와 "와 \와 NUL 문자 앞에 \를 붙여서 return값을 출력하는 것을 확인할 수 있다.
그렇기 때문에 코드가 실행이 되지 않았음을 알 수 있다.
난이도 : high
필터링을 우회해서 공격해보세요. 그러나 공격이 통하지 않습니다. 그 이유를 정리해주세요.
Hint1. xss_check_3 함수를 살펴봅시다.
Hint2. htmlspecialchars함수가 원인인 것 같습니다. 어떤 함수인지 알아봅시다.
위에서처럼 페이지 소스 코드를 열어서 확인해보면 xss_check_3 함수가 작동하는 것을 확인할 수 있다.
그래서 터미널에서 functions_external.php파일을 열어본다.
파일을 열어서 xss_check_3을 확인해보면 이 함수는 htmlspecialchars()함수를 return값으로 출력하는 것을 확인할 수 있다.
주석에 적힌 htmlspecialchars()함수를 살펴보면 입력받은 데이터를 htmlspecialchars를 통해 인코딩을 해주는 함수로, 특수문자를 UTF-8로 반환하기 때문에 공격이 통하지 않는다.
Cross-Site scripting – reflected(POST)
Quest. GET방식과 POST방식의 차이에 대해 간단히 정리해봅시다.
Quest. 다음 화면을 띄워보세요.
난이도 : low
경고창을 누른 후 화면 (Welcome success 출력)
Hint1. GET방식에서 썼던 공격을 잘 생각해보세요.
Cross Site Scripting-Reflected(POST)를 클릭한다.
그 다음 나오는 화면에서
first name에 <script>alert("XSS");</script>을 입력하고 last name에 success를 입력한다.
위에서 나오는 창에서 OK를 누르면 위와 같이 Welcome success라는 출력문이 나온다.
난이도 : medium
Quest. 다음과 같이 사용자의 쿠키 값을 경고창에 출력해보세요.
Hint1. 사용자의 쿠키 정보는 document.cookie에 저장되어 있습니다.
Hint2. alert함수에 사용자의 쿠키 정보를 알 수 있는 경로를 넣으면 될 것 같습니다.
first name에 <script>alert(document.cookie)</script>를 입력하고 last name에 success를 입력하면 아래와 같은 화면을 출력할 수 있다.
'22-여름방학 > 웹 해킹(WEB HACKING)&웹 기초' 카테고리의 다른 글
웹해킹_5주차 정리 (0) | 2022.08.07 |
---|---|
웹기초_5주차 정리 (0) | 2022.08.06 |
웹기초_4주차 정리 (0) | 2022.07.28 |
웹해킹_3주차 정리 (0) | 2022.07.24 |
웹기초_3주차 정리 (0) | 2022.07.24 |