Wargame/webhacking.kr2018. 3. 6. 16:34



뜬금없이 아이디와 패스워드가 나온다.


소스를 보여주니 한 번 보자.




쿠키에 있는 user와 password 항목이 base64로 20번 디코드했을 때 둘 다 admin이면 클리어인 것 같다.


손으로 인코딩하기 힘드니 간단하게 파이썬 스크립트를 짜봤다.



실행시키면 다음과 같다.



이렇게 얻은 문자열로 쿠키를 수정해준다.



새로고침 해주었더니 클리어 되었다.



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

webhacking.kr 4번  (0) 2018.03.01
webhacking.kr 3번  (0) 2018.03.01
webhacking.kr 51번  (1) 2018.02.28
webhacking.kr 1번  (0) 2018.02.27
Posted by BinZIP
Wargame/webhacking.kr2018. 3. 1. 05:04


끝자리가 =으로 끝나는걸로 봐서는 base64 인코딩이다. 디코딩해주자.



이게 flag인가 싶어서 넣어봤는데 아니라고 한다.


문자열 길이를 열심히 세어보니 40자리...라고 해서 찾아보니 sha1 해시인것 같다.


그래서 복호화 사이트를 찾아서 넣어줬다.



한 번 더 sha1 hash가 나온 것 같은 느낌이다. 한 번 더 돌린다.



넣어주니 클리어되었다.

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

webhacking.kr 6번  (0) 2018.03.06
webhacking.kr 3번  (0) 2018.03.01
webhacking.kr 51번  (1) 2018.02.28
webhacking.kr 1번  (0) 2018.02.27
Posted by BinZIP
Wargame/webhacking.kr2018. 3. 1. 04:50

들어가면 뜬금없이 위와 같은 표가 뜬다.


처음에 뭔지 가만히 생각해보면서 소스와 페이지를 쭉 보다가 퍼즐이라는걸 알게 되었다.


위와 같이 정답을 맞추고 gogo 버튼을 클릭하면 다음과 같이 랭킹 등록 페이지 비스무리한게 나온다.



일단 이름을 써보고, 여기에 SQL Injection을 하는 것인가 싶어서 일단 Single quote를 넣어봤다.



그냥 넘어가서 그대로 등록되는 것을 보아하니 저기에 Injection 하는건 아닌 것 같다.


그럼 도대체 무엇일까... 생각해보다가 일단 어떤식으로 쿼리가 짜여 있는지 확인하기 위해 post 메소드를 get으로 바꾸어 어떤 인자가 전달되고 있는지 확인해봤다.



위와 같이 post를 get으로 수정하고 다시 write 버튼을 클릭해봤다.



answer 항목과 id 항목이 넘어가고 있었다.


일단 id로 injection 하는건 아니라는것을 확인했으니, 저 answer을 손봐줘야 할 것 같다.




answer 항목에다 single quote를 넣어 write 해보았다.


no hack이라고 나오는걸 보니 이 친구를 손봐야 하는 게 맞다.


여러가지를 시도해본 결과 single quote를 비롯한 and, or, 세미콜론, 주석처리 등등이 필터링되고 있었다.




필터링 안되는 것을 찾다가, 연산자는 필터링 되지 않는다는 것을 확인해서 or에 해당하는 '||'을 넣어서 전송해보았다.




flag가 정상적으로 출력되었다.

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

webhacking.kr 6번  (0) 2018.03.06
webhacking.kr 4번  (0) 2018.03.01
webhacking.kr 51번  (1) 2018.02.28
webhacking.kr 1번  (0) 2018.02.27
Posted by BinZIP