Login 버튼을 누르면 로그인 폼이 나오게 됩니다.

a/a라는 값을 넣었을 때 id가 admin이여야 한다는 메시지가 나오게 됩니다.




그래서 Join버튼으로 가입을 해보고자 눌러보면 Access_Denied라는 alert창이 나오게 됩니다.



소스를 보시면 버튼을 누르면 alert 메시지를 띄우는 script가 작성되어 있었습니다.

Login 버튼을 누를 때는 mem/login.php 로 이동하는 것을 보고 URL에 mem을 추가해봤습니다.



URL에 mem을 추가해서 이동해보니 join.php와 login.php가 있었고 join.php로 이동해봅니다.



join.php로 이동하면 빈 화면이 반겨주게 되는데 소스를 확인해보면 script로 아래와 같은 문자열이 적혀있었습니다.


복잡해 보이지만 해석해보면

① document.cookie의 oldzombie 라는 값이 있는가?

② document.URL의 mode=1 이 있는가?

입니다.



cookie값에 oldzombie를 추가하고, URL의 ?mode=1를 추가해주면 join 폼이 나오게 됩니다.



admin으로 가입을 시도해보면 해당 계정은 이미 존재한다고 나옵니다.



소스를 확인해보면 id의 길이가 5로 제한되어 있는 것으로 보아 DB에 저장되는 값은 5글자로 제한되어 있다고 짐작할 수 있습니다.

해당 글자 수를 6으로 늘리고 id에 admin과 공백을 넣어주고 가입을 시도하면 DB에 저장될 때 앞 5자리만 저장하고 뒤에 값들은 버리게 됩니다.




'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 11  (0) 2018.12.04
[webhacking.kr] prob 10  (0) 2018.12.04
[webhacking.kr] prob 6  (0) 2018.12.04
[webhacking.kr] prob 4  (0) 2018.12.04
[webhacking.kr] prob 1  (0) 2018.12.04

+ Recent posts