이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A4 - Insecure DOR (Change Secret)
난이도 하
insecure_direct_object_ref_1.php 페이지는 접속한 사용자의 비밀번호 힌트를 변경할 수 있는 페이지입니다. 현재 bee 계정으로 로그인되어 있으며, bee 계정의 비밀번호 힌트가 어떻게 적용되어 있는지 확인을 해보도록 하겠습니다.
SQL Injection (Login Form/User) 페이지에 접속한 후 bee 계정의 로그인 패스워드를 입력하면 현재 적용되어 있는 비밀번호 힌트를 확인할 수 있습니다. 그럼 다시 insecure_direct_object_ref_1.php 페이지로 이동후 bee 계정의 비밀번호 힌트를 바꾸어 보도록 하겠습니다.
bee 계정의 insecure_direct_object_ref_1.php 페이지에서 비밀번호 힌트를 Change Secret로 변경을 하였습니다. sqli_16.php 페이지에서 확인해 보도록 하겠습니다.
sqli_16.php 페이지에서 bee 계정으로 로그인을 하면 변경된 비밀번호 힌트를 확인할수 있습니다.
개발자 도구로 페이지의 소스 코드를 확인하면 hidden 타입으로 로그인 계정이 숨김처리 되어 있는 것을 확인할 수 있습니다. 여기서 type="hidden" 부분을 type="text"로 변경을 해보도록 하겠습니다.
개발자도구에서 hidden 타입을 text 타입으로 변경을 하면 현재 로그인한 계정 정보를 확인할 수 있고, 해당 계정은 login변수에 담겨 있는 것을 확인할 수 있습니다. 이제 취약점 테스트를 하기 전에 전에 만들어 두었던 test01 계정의 비밀번호 힌트가 어떻게 적용이 되어 있는지 확인을 먼저 해보도록 하겠습니다.
이전에 테스트 계정을 만들어 두지 않으신 분들은 테스트 계정을 만들거나 앞에 블로그 글들을 참고 하시기 바랍니다.
test01 계정으로 로그인을 하면 비밀번호 힌트는 Test02인 것을 알 수 있습니다. 그럼 다시 개발자 도구로 돌아가 취약점 내용을 확인해 보도록 하겠습니다.
개발자 도구에서 login 변수에 담겨 있던 bee 계정을 test01 계정으로 값을 변경하고 비밀번호 힌트를 바꾸었습니다. 이제 사용자 비밀번호를 출력해주는 sqli_16.php에서 test01 계정의 내용을 확인해 보겠습니다.
sqli_16.php 페이지에서 test01 계정으로 로그인하고 비밀번호 힌트를 확인하면 원래 비밀번호 힌트가 아닌 조금 전에 변경하였던 새 비밀번호 힌트가 출력되는 것을 확인할 수 있습니다.
추가로 확인 및 테스트를 해보시는 분들을 프록시 툴을 이용해서도 확인해보시고 값을 변경하여 내용이 어떻게 변경이 되는지 확인해보시기를 추천드립니다.
난이도 중/상
난이도 중/상에서는 개발자 도구 및 소스코드를 확인 시 로그인 정보가 아닌 랜덤의 토큰 값을 생성하고 체크를 하는 것을 알 수 있습니다.
또한, 비밀번호 힌트를 수정하게 되면 데이터베이스에 해당 내용이 저장되기 때문에 PHP에서 제공하는 mysqli_real_escape_string 함수를 사용하여 NULL, \n, \r, \, ', ", ^Z에 백 슬래시를 붙여 SQL 인젝션 공격을 방어합니다. 그리고 htmlspecialchars 함수로 HTML에 사용되는 기호를 UTF-8로 반환하여 HTML 코드에 사용되는 문자들을 HTML 엔티티 코드로 변환합니다.
함수에 대한 설명
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) A4 Insecure DOR (Order Tickets) (0) | 2022.09.02 |
---|---|
비박스(bWAPP) A4 Insecure DOR (Reset Secret) (0) | 2022.08.30 |
비박스(bWAPP) A3 XSS - Stored (User-Agent) (0) | 2022.08.26 |
비박스(bWAPP) A3 XSS - Stored (Cookies) (0) | 2022.08.23 |
비박스(bWAPP) A3 XSS - Stored (Change Secret) (0) | 2022.08.22 |