728x90
728x90
728x90
 

itsecgames.com

 

www.itsecgames.com

 

[사진 1]

패스워드를 추측하여 로그인하는 웹페이지이다. bee/bug 계정을 사용해보자.

 

low

[사진 2]

로그인에 성공하면 "Successful login!" 문자열이 출력된다. 이전 문제들과 마찬가지로 무작위 대입 공격을 하려면 python이나 burp 도구를 활용할 수 있다. 이 문제에서는 burp 도구에서 제공하는 brute force 기능으로 공격을 해보자.

 

[사진 3]

프록시를 설정하고 로그인을 시도한 후, 위와 같이 Action 버튼을 클릭하여 "Send to Intruder" 기능을 선택한다.

 

[사진 4]

CAPTCHA 문제에서 보았던 Intruder 기능을 확인할 수 있다.

 

[사진 5]

이번 문제에서는 Attack type으로 Sniper를 설정하고 위와 같이 password 파라미터만 변수로 설정해주면 된다.

 

[사진 6]

그리고 위와 같이 페이로드 타입은 Brute forcer로 선택하고 문자열셋은 "abcdug"만 설정하였다(시간을 줄이기 위해). 그리고 최소 길이와 최대 길이도 3으로 설정하였다.

 

[사진 7]

그리고 로그인에 성공했을 때 문자열을 grep 하기 위해 위와 같이 Options 메뉴에서 Grep -Match 기능에 "Successful login!" 문자열을 추가해준다.

 

[사진 8]

공격을 시작하면 위와 같이 짧은 시간 내에 "bug"라는 문자열을 전달했을 때 로그인 성공 시 출력되었던 문자열이 grep 되는 것을 확인할 수 있다.

 

medium

[사진 9]

medium 레벨이다. medium 레벨에서는 파라미터가 1개 늘었는데, salt가 그것이다. salt는 인증에 사용되는 특정한 값인데, 패스워드 등과 조합되어 brute force 공격을 어렵게하기 위해 사용된다.

 

로그인을 시도하면 서버에서 salt 값을 새롭게 생성하기 때문에 low 레벨에서 진행했던 brute force로는 공격이 굉장히 오래 걸릴 것이다. 같은 패스워드를 입력해도 로그인할 때마다 새로운 salt가 생성되어 경우의 수가 훨씬 많아지기 때문이다.

 

[사진 10]
[사진 11]

서버 코드를 보면 위와 같이 random_string() 함수로 임의의 문자열을 생성하고 세션의 salt 값에 부여한다. 따라서, brute force 공격이 어렵겠다.

 

high

[사진 12]

high 레벨의 경우 캡챠가 추가되었는데, 이전 문제와 동일하게 공격하면 된다.

 

* bWAPP A2 Broken Authentication - CAPTCHA Bypassing

 

bWAPP A2 Broken Authentication - CAPTCHA Bypassing

itsecgames.com www.itsecgames.com 캡챠를 이용하여 로그인을 하는 웹페이지이다. 캡챠는 로그인 주체가 사람인지, 컴퓨터(자동화 도구 등)인지 검사하기 위한 기능이다. 알아보기 힘든 문구를 입력해야

0xe82de.com

 

[사진 13]

캡챠는 고정하고 password 파라미터만 변수로 설정하여 brute force 공격을 수행하면 password를 찾을 수 있다. 캡챠가 고정되었는데, brute force 공격이 통하는 이유는 salt와 다르게 강제로 캡챠 값을 적용시키지 않기 때문이다. 다만, [사진 12]의 Reload 버튼을 클릭하면 캡챠 값이 초기화된다. 패스워드 추측 공격을 방어하려면 salt 값을 추가하여 방어하면 되겠다.

728x90
728x90

+ Recent posts