Code::Security/비박스(BWAPP)

비박스(bWAPP) A3 XSS - Reflected (Login Form)

태군 코드 2022. 8. 2. 18:01
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
 

A3 - XSS - Reflected (Login Form)

 

난이도 하

 

xss_login.php

xss_login.php 페이지는 앞에서 다뤘던 SQL Injection Login 페이지와 같은 페이지입니다.

 

SQL Injection (Login Form/Hero)

 

SQL Injection 취약점을 확인하였을 때처럼 '(작은따옴표)를 입력하였더니 SQL 에러가 나는 것을 알 수 있습니다.

 

스크립트 구문 입력

' or <script>alert('xss test')</script>

'; <script>alert('xss test')</script>

 

스크립트 구문을 입력하면 위와 같이 스크립트 문이 실행되는 것을 알 수 있습니다. 스크립트 문은 여러 가지 방법이 있으니 각 방법마다 변형해서 테스트를 해보시기 바랍니다.

 

난이도 중/상

xss_login.php 페이지 소스코드

소스코드를 확인해 보면 난이도 중(sqli_check_1), 난이도 상(sqli_check_2) 함수를 사용하는 것을 알 수 있으며 각 함수는 functions_external.php에 정의되어 있습니다.

 

functions_external.php

난이도 중에서는 addslashes() 함수를 사용하여 우회 하고 있습니다. addslashes() 함수는 데이터베이스 쿼리에서 필드값으로 저장하기 전에 사용되는 함수입니다. 만일 문자열에 작은따옴표('), 큰따옴표("), 백슬래시(\), NULL 문자(%00)가 포함되어 있다면, 이 문자들 앞에 백슬래시(\)를 붙여 특수 문자가 순수한 하나의 문자로 인식되도록 해줍니다.

 

난이도 상에서는 mysql_real_escape_string 함수를 이용하여 사용자 입력 값에 SQL 문법에서 사용하는 특수 문자가 있을 경우 다음의 문자에 백 슬래시를 붙여 SQL 문법으로 인식하지 않게 방어합니다.

우회 문자: \x00, \n, \r, \, ', ", \x1a

반응형