Hacking/Wargame.kr
-
strcmpHacking/Wargame.kr 2018. 3. 11. 22:02
이번문제는 strcmp이다 제목이 제목인 만큼 제목에 취약점이 있다는것이 힌트같았다. 해당 취약점을 검색하기 전에 source를 주어주었다. source를 보니 password와 $password값을 비교해서 0 즉 같으면 flag값을 준다는 것을 알 수 있었다. php5.3버전에서의 strcmp취약점은 비교대상 둘중 하나가 array에 들어가면 내부적으로 충돌이 발생해 null을 리턴하게되는데 이때 null과 0을 비교하면 같다고 본다는 점이 취약점이다. 위의 그림은 ==와 === 비교를 나타낸 표이다. 표시된 부분을 보면 NULL과 0은 TRUE로 반환하는 부분이 보여진다. ===일때는 FALSE이다. (===를 사용하자!) 이를 이용해서 둘중하나를 array로 만들면 된다는걸 알 수 있었다. 버프수..
-
login filteringHacking/Wargame.kr 2018. 3. 11. 21:22
이번문제는 login filtering이다. 해당문제는 source를 주었다. source를 보니 예전에 필요에 의해서 mysql DB관련 코드를 짜본것이 도움이 되었다. mysql DB로 해당 쿼리문을 전송하는 코드가 보였다. id 와 ps 부분에 인자값이 있으면 그값을 lib.php를 함수에 포함 시켰다. 그 뒤 쿼리를 연결했고 POST로 전송한 id와 pas를 $id와 $ps에 넣은 뒤 row에 쿼리문을 실행한 결과값을 넣었다. row의 id에 guest나 blueh4g라는 입력값이 있을 경우 블록되었다는 메세지를 출력했고 그것이 아니라면 $key값을 보여준다 는 source였다. 그리고 맨 밑에 계정 정보가 보였다. 이 두 계정들이 무언가 그냥 준것이 아닌거 같았다. 일단은 안될것을 알면서도 쳐보..
-
md5_compareHacking/Wargame.kr 2018. 3. 11. 21:02
이번문제는 md5_compare 암호에 관심이 조금 생겨서 암호화에 관한 문제인가 했는데 관련은 되있지만 딱히 필요가 없었다. 우선 source가 주어진다. 해당 source에 취약점이 존재할 것이 분명했다. source를 보니 chk가 true로 초기화되어있는데 진행과정에따라서 false가 되었다. md5(v1) != md5($v2) 일 때 false이므로 둘을 같게 표현하면 된다는 것을 알게되었고 ctype_alpha와 is_numberic으로 보아서 md5 v1은 문자로만 md5 v2는 숫자로만 구성되어야 한다는 것을 알게되었고 비교는 둘다 string으로 하고 있었다. 이런 형식의 취약점에 대해서 알고있냐고 물어보는 출제의도라고 생각했다. 구글링을 해보니 php magic hash 취약점이 바로 ..
-
img recoveryHacking/Wargame.kr 2018. 3. 11. 20:39
이번문제는 img recovery 이다. 이 문제는 바로 몇일전에 해킹캠프에서 비슷한문제를 보아서그런지 눈에 딱들어왔다. 우선 관리자모드로 보아하니 QR Code 문제 떄 처럼 img가 또 보였다. 해당 이미지가 보였다. 딱봐도 QR Code스멜이 났다. 그래도 뭔가 부족한 QR Code느낌이였다. 그래서 일단은 캡쳐를 해놓기위해서 이미지를 다른이름으로 저장했다. 근데이게 웬걸? 저장한 이미지와 다른이미지가 저장되었다. 저 이미지파일은 두개의 이미지가 숨어있었던 것이였다. 이렇게 푸는건 아닌거 같은데;; 일단은 진행하였다. 두가지 이미지를 겹쳐보니 QR Code가 ;; QR Code를 찍으면 바로 어떠한 문장이 나온다 그 문장을 find code에 입력하면 flag를 뱉어준다.
-
fly me to the moonHacking/Wargame.kr 2018. 3. 11. 20:31
이번 문제는 마우스로 웹게임을 하는 것인데 비행기를 마우스로 조종하면 자동으로 양쪽의 벽이 랜덤하게 움직이기 시작한다. 그 벽에 닿게되면 바로 게임종료가 되며 flag를 얻어내려면 31377이라는 점수를 얻어야한다. 역시 마우스컨트롤만으로는 어려움이 있다. 이번 문제는 버프 수트를 이용하면 해결할 수 있을꺼같아서 돌려보았더니 벽에 부딪히고나서 Forward해보니 바로 score값이 보였다. 그래서 데이터를 변조해주면 되겠구나~ 해서 score를 우리가 필요로하는 31377로 수정해주었다. 그 다음 Forward 해주니 바로 flag가 튀어나왔다!