[난이도-low]
Quest. Change Secret 페이지에서 XSS 공격 후 SQL Injection(Login From/users) 페이지에서 확인할 수 있습니다.
다음 화면을 출력해보세요. (bee/bug)
먼저 New secret에 helloworld를 입력해보았다.
그리고 SQL Injection(Login Form/User) 페이지로 들어가주어 로그인을 해보았다.
로그인을 해주었더니 다음과 같은 내용이 출력되었다.
경고창을 띄우기 위하여 Change Secret 부분에 스크립트 태그를 작성하였다.
<입력>
<script>alert("success")</script>
로그인 페이지로 이동하여 로그인을 해주니 아래 사진과 같이 경고창이 떴다.
Quest. secret을 사용자의 쿠키 정보로 바꿔봅시다.
위와 같은 방식으로 New secret 칸에 아래의 코드를 작성해주었다.
<입력>
<script>alert(document.cookie)</script>
그리고 로그인 페이지로 이동하여 로그인을 해주었더니 다음과 같은 결과를 얻었다.
[난이도-high]
Quest. 공격할 수 없습니다. Secret은 두 개의 함수를 이용해 방어하고 있습니다. 함수의 이름을 적어주세요.
Hint1. xss_stored_3.php에서 확인할 수 있습니다.
Hint2. DB에 저장되기 전에 변수를 어떻게 처리하는지 살펴보세요.
코드를 살펴보면 xss_stored_3.php를 사용하고 있다는 점을 알 수 있다. 또한 난이도 high는 security_level이 2라는 점도 알 수 있다.
해당 파일을 살펴본 결과, security_level이 2인 경우, xss_check_3함수를 이용한다는 것을 알 수 있다.
xss_check_3함수에 관해 찾아보니 htmlspecialchars함수를 사용하고 있었다.
또한, mysqli_real_escape_string이라는 함수를 이용해 인자로 들어온 데이터 중 sql injection 공격과 관련된 여러 기호들을 문자로 바꿔누는 것을 확인할 수 있다.
따라서 이 두 함수로 인해 해당 문제를 풀 수 없다.
'Web Hacking > WEB Hacking 기초' 카테고리의 다른 글
[SISS] 웹 프로젝트 9주차 (0) | 2022.02.27 |
---|---|
[SISS] bwAPP 5주차 < Cross-site scripting – Stored (Blog) > (0) | 2022.02.22 |
[SISS] bwAPP 4주차 < Cross-site scripting – Reflected (POST) > (0) | 2022.02.17 |
[SISS] bwAPP 4주차 < Cross-site scripting – Reflected (GET) > (0) | 2022.02.16 |
[SISS] 웹 프로젝트 7주차 (0) | 2022.02.13 |