웹해킹_5주차 정리

2022. 8. 7. 17:1522-여름방학/웹 해킹(WEB HACKING)&웹 기초

XSS – Stored (Blog), XSS – Stored (Change Secret)


Cross-Site Scripting – Stored(Blog)

 

난이도 : low

Quest. 다음 화면과 같이 경고창을 띄워봅시다.

 

Cross-Site Scripting(Blog)를 선택한다.

<script>alert("success");</script> 를 입력하면 경고창을 띄울 수 있다.


Quest. 사용자의 쿠키 값을 경고창에 띄워봅시다.

Hint1. 사용자의 쿠키값은 document.cookie에 저장되어 있습니다.

 

<script>alert(document.cookie)</script> 를 입력하면 사용자의 쿠키 값을 경고창에 띄울 수 있다.


Quest. (게시판에 등록된 내용을 삭제하지 않았다면) XSS 공격을 시도할 때마다 경고창이 여러 개가 뜨는 것을 확인했습니다. 왜 그럴까요? 이유를 작성해주세요.

Hint1. Stored XSS 방식에 대해 잘 생각해봅시다.

Hint2. 소스코드를 확인해봅시다. 테이블에 어떻게 저장되어 있나요?

 

페이지 소스코드를 열어보면 이전에 작성한 <script>태그가 유효한 채로 남아있는 것을 확인할 수 있다.

stored xss는 스크립트가 서버에 저장되어 실행되는 방식이기 때문이다.


난이도 : high

Quest. 공격할 수 없습니다. 이유를 적어주세요.

Hint1. 특수 문자를 막는 함수가 있는 것 같습니다.

Hint2. xss_stored_1.php에서 확인할 수 있습니다.

 

xss_stored_1.php파일을 열어서 확인해본다.
case 2일 때 sqli_check_3 코드가 실행되는 것을 확인할 수 있다.다시 터미널에서Ctrl+c키를 같이 눌러서 kill을 시키고 gedit functions_external.php를 입력해서 functions_external.php 코드를 연다.

xss_check_4코드를 확인해보면 특수 문자가 변환되어 저장해서 자바스크립트 코드가 실행되지 않는 것을 확인할 수 있다.


Cross-Site Scripting – Stored (Change Secret)

난이도 : low

Quest. Change Secret 페이지에서 XSS 공격 후 SQL Injection(Login From/users) 페이지에서 확인할 수 있습니다. 다음 화면을 출력해보세요. (bee/bug)

<script>alert(”success”);</script>를 입력하면 change된다.

sql injection(login form/user)로 hack한다.

bee bug로 로그인하면 경고창이 뜬다.


Quest. secret을 사용자의 쿠키 정보로 바꿔봅시다.

xss-stored(change secret)에서 <script>alert(document.cookie);</script>를 입력하여 change를 한다.

다시 sql injection(login form/user)로 가서 bee bug로 로그인하면 사용자의 쿠키 정보로 바뀌는 것을 확인할 수 있다.


난이도 : high

Quest. 공격할 수 없습니다. Secret은 두 개의 함수를 이용해 방어하고 있습니다. 함수의 이름을 적어주세요.

Hint1. xss_stored_3.php에서 확인할 수 있습니다.

Hint2. DB에 저장되기 전에 변수를 어떻게 처리하는지 살펴보세요.

 

터미널에서 gedit xss_stored_3.php를 입력해서 파일을 열어본다.

코드를 보면 high인 case 2에 xss_check_3을 사용하는 것을 확인할 수 있다.

gedit functions_external.php를 입력해서 파일을 열어본다.

그 중 함수 xss_check_3를 확인해보면 htmlspecialchars함수를 사용하는 것을 확인할 수 있다.

mysqli_real_escape_string함수가 사용되는 것도 확인할 수 있다.

이 함수들은 string을 특수문자를 필터링하는 함수이다.

'22-여름방학 > 웹 해킹(WEB HACKING)&웹 기초' 카테고리의 다른 글

웹해킹_7주차 정리  (0) 2022.08.21
웹해킹_6주차 정리  (0) 2022.08.14
웹기초_5주차 정리  (0) 2022.08.06
웹해킹_4주차 정리  (0) 2022.07.31
웹기초_4주차 정리  (0) 2022.07.28