-
BWAPP 4주차(cross-site scripting get, post)보안/WEB HACKING 2024. 3. 14. 13:53
Cross-site scripting – Reflected (GET)
난이도 : low
Quest. xss 취약점이 있는지 알아봅시다. 다음 화면을 띄워보세요.
경고창을 누른 후 화면 (Welcome success 출력)
Hint1. 스크립트 태그 안에 alert함수를 넣어 경고창을 띄울 수 있습니다.
Hint2. First name과 Last name에 각각 공격을 하면 어떤 결과가 나오는지 알아봅시다.
h1태그를 사용하면 그냥 입력한대로 태그가 나온다. 따라서 hint 1을 이용해 first name 에 alert 를 입력해주자.
<script>alert("XXS")</script>
welcome success 를 출력해야 하므로 last name 에 success를 입력해주자
ok 클릭 시
난이도 : medium
Hint1. xss 공격을 막는 함수가 있는 것 같습니다. 소스코드를 살펴봅시다.
Hint2. xss_check_4가 어떤 함수인지 알아봅시다.
Hint3. 함수 정보는 functions_external에 저장되어 있습니다.
Hint4. addslashes함수가 어떤 문자를 필터링하는지 알아봅시다.
페이지 소스코드를 확인해보자.
그리고 현재 level value 값은 1이다. xss_get.php에 들어가자.
xxs_check_4는 functions.external에 존재한다. hint3를 이용해서 functions.external에 들어가서 어떤 내용인지 확인해보자.
hint 4를 확인자하.addslashes함수는 데이터베이스 쿼리 등에서 따옴표로 묶어야 하는 문자 앞에 백슬래시가 있는 문자열을 반환한다. 검색 결과 백틱이나 / 를 추가해주면 해결할 수 있다고 한다.
따옴표 없는 걸 넣었을 때
난이도 : high
필터링을 우회해서 공격해보세요. 그러나 공격이 통하지 않습니다. 그 이유를 정리해주세요.
Hint1. xss_check_3 함수를 살펴봅시다.
Hint2. htmlspecialchars함수가 원인인 것 같습니다. 어떤 함수인지 알아봅시다.
xxs_check_3 함수를 확인해보자.
htmlspecialchars 함수는 특수문자를 UTF-8로 반환해주는 함수이므로 풀 수 없다.
Cross-Site scripting – reflected(POST)
Quest. GET방식과 POST방식의 차이에 대해 간단히 정리해봅시다.
get 방식은 서버 리소스에서 데이터를 요청할 때 사용되는 반면 post 방식은 서버의 리소스를 새로 생성하거나 업데이트할 때 사용된다.
Quest. 다음 화면을 띄워보세요.
난이도 : low
경고창을 누른 후 화면 (Welcome success 출력)
Hint1. GET방식에서 썼던 공격을 잘 생각해보세요.
<script>alert("XXS")</script>를 사용해서 입력하자.
난이도 : medium
Quest. 다음과 같이 사용자의 쿠키 값을 경고창에 출력해보세요.
Hint1. 사용자의 쿠키 정보는 document.cookie에 저장되어 있습니다.
Hint2. alert함수에 사용자의 쿠키 정보를 알 수 있는 경로를 넣으면 될 것 같습니다.
hint1과 hint2를 이용해서 first name에 <script>alert(document.cookie)</script>를 입력해보자.
level=0
level=1일 때
'보안 > WEB HACKING' 카테고리의 다른 글
XSS game 01, 02 (6주차) (0) 2024.03.14 BWAPP 5주차(cross-site scripting stored) (0) 2024.03.14 BWAPP 3주차(post, search) (0) 2024.03.14 BWAPP 2주차(reflected-post, stored) (0) 2024.03.14 BWAPP 1주차(reflected-get) (0) 2024.03.14