bWAPP A4 Insecure DOR (Change Secret)
itsecgames.com
www.itsecgames.com
secret 값을 변경할 수 있는 웹페이지이다. 이전 문제 중 [A3 Cross-Site-Scripting - Stored (Change Secret)] 문제와 비슷하다. 이번 파트에서 추가로 시도할 것은 다른 계정의 secret 값 변조이다.
* bWAPP A3 Cross-Site-Scripting - Stored (Change Secret) Write-up
bWAPP A3 Cross-Site-Scripting - Stored (Change Secret)
itsecgames.com www.itsecgames.com secret 값을 입력하면 변경할 수 있는 페이지이다. secret 값은 bWAPP에서 비밀번호 힌트로 사용된다. 현재 로그인한 계정은 bee이다. low low 레벨이다. 위와 같이 임의의..
0xe82de.com
먼저 테스트 계정인 test를 생성하였고 secret 값으로 "wow"를 설정하였다.
low
low 레벨이다. 현재 로그인한 계정은 bee이다. [사진 3]과 같이 변경할 secret 값으로 "test"를 입력하고 burp로 프록시를 잡아서 login 파라미터의 값을 변조한다(bee > test).
위와 같이 test 계정의 secret 값이 "test"로 변경되었다. 확인은 [A1 SQL Injection (Login Form/User)] 웹페이지에서 할 수 있다. 이 과정을 통해 다른 계정의 secret 값을 변경할 수 있음을 확인하였고, 추가적으로 script 태그가 삽입되는지 알아보자.
[사진 6]과 같이 script 태그를 삽입해도 일반 문자열로 출력되는 것을 확인할 수 있다.
서버 코드를 보면 mysqli_real_escape_string() 함수와 htmlspecialchars() 함수로 SQL Injection, XSS 공격을 방어하는 것을 확인할 수 있다. 따라서 XSS 공격을 위한 script 태그 삽입은 어렵겠다.
* PHP mysqli_real_escape_string() Function
PHP: mysqli::real_escape_string - Manual
To escape for the purposes of having your queries made successfully, and to prevent SQLi (SQL injection)/stored and/or reflected XSS, it's a good idea to go with the basics first, then make sure nothing gets in that can be used for SQLi or stored/reflected
www.php.net
* PHP htmlspecialchars() Function
PHP: htmlspecialchars - Manual
if your goal is just to protect your page from Cross Site Scripting (XSS) attack, or just to show HTML tags on a web page (showing on the page, for example), then using htmlspecialchars() is good enough and better than using htmlentities(). A minor point
www.php.net
medium, high
medium, high 레벨이다. 위와 같이 bee 계정으로 로그인 후, test 계정에 대한 secret 값을 변조하기 위해 burp로 프록시를 잡았다. 하지만, login 파라미터는 없어지고 token 파라미터가 추가되었고, token 파라미터는 계속 변경된다. 아마도 token 파라미터는 현재 로그인한 bee 계정과 연동되어 생성되는 값으로 보인다.
위와 같이 test 계정의 secret 값은 변경되지 않았고, bee 계정의 secret 값이 "test"로 변경되었다.
서버 코드를 보면 세션 상의 token 값과 파라미터로 전달 받은 token 값이 다르면 입력 값을 전달하지 않는다. 다른 계정의 secret 값을 변경하려면 해당 계정의 토큰 값을 알아야 하므로 공격이 매우 어렵겠다.
'Wargame > bWAPP' 카테고리의 다른 글
bWAPP A4 Insecure DOR (Order Tickets) (0) | 2020.11.24 |
---|---|
bWAPP A4 Insecure DOR (Reset Secret) (0) | 2020.11.24 |
bWAPP A3 Cross-Site-Scripting - Stored (User-Agent) (0) | 2020.11.24 |
bWAPP A3 Cross-Site-Scripting - Stored (SQLiteManager) (0) | 2020.11.24 |
bWAPP A3 Cross-Site-Scripting - Stored (Cookies) (0) | 2020.11.24 |