본문 바로가기

wargame/webhacking.kr

webhacking.kr 5번 문제



webhacking.kr 5번 문제를 풀어보도록 하겠습니다.



 일단 5번 문제에 들어가게 되면 이렇게 2가지가 나옵니다.

  Login과 Join이 있는데요



join을 누르시면 위와 같이 Access_Denied가 출력 됩니다.


여기서 url을 잘 보시면 mem 이라는 폴더에 join.php가 존재합니다.



저는 웹페이지 폴더만 보면 일단 디렉토리 리스팅을 시도하는 버릇이 있어서 ㅋㅋㅋ hint 페이지에 도달하게 됩니다. (디렉토리 리스팅을 관련한 문제가 좀 신기했어요)

실제 디렉토리 리스팅이 된것은아니고 아마 Errordocument를 설정 혹은 url을 검사해서 이런 페이지로 이동하도록 한건 아닐까 생각해봅니다.


아무튼 여거서 join.php를 누르게 되면 javascript의 영향을 받지 않고 들어올 수 있게 됩니다. 아마 들어가면 아무것도

안보이는 상태일꺼에요 소스보기를 해봅시다. !



잘 보이지 않지만 난독화를 해놨네요 

이걸 하나하나 해석하면 시간이 엄청 걸립니다. 

브라우저마다 console이 있습니다. ctrl+c, v 

를 해서 하나씩 해석 하시면 됩니다.




잘 안보이시면 확대해서 보세요 ㅎㅎ


소스를 해독해보면 url에 mode=1이 있어야 하고, cookie 값에는 oldzombie가 있어야한답니다.


그러면 아래의 페이지를 보여주게 됩니다.



1. mode=1 (URL)


2. oldzombie(cookie)


이렇게 설정? 하고 join 페이지로 들어가게 되면



이렇게 뜹니다.


여기서 좀 많이 햇갈렸는데요


결국 페이로드를 말씀드리면 



admin 이라는 글자는 필터링이 걸립니다.


근데 html 을 수정(글자 수)하고 admin+ (+는 공백입니다.)를 입력하면 회원가입이 되더라구요 



회원가입을 login 페이지로 이동해서 내가 입력했던 admin과 pw를 입력하면 해결하게 되는 문제입니다.






제 생각에는 admin이라는 계정을 db 단에서 검사를 제대로 하지 않은 것 같습니다. 그래서 admin+(공백)으로 우회를 하면 admin 계정이 새로 만들어지는 것 같습니다. 

(업데이트 되는지 아니면 계정이 하나 늘어나는지는 잘 모르겠습니다. 제 생각에는 아마 업데이트는 아닐꺼고 계정이 하나 늘어나는 것 같습니다.)



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

webhacking.kr 10번  (0) 2017.03.01
webhacking.kr 6번 문제  (0) 2017.03.01
webhacking.kr 5번 문제  (0) 2017.03.01
webhacking.kr 26번 문제 풀이  (0) 2016.12.11
web hacking.kr 23번 문제  (0) 2016.12.11
webhacking.kr level4  (1) 2016.08.29