목록분류 전체보기 (103)
White Security
wargame.kr 사이트의 일곱번째 문제입니다. php의 md5 해싱함수 사용예시를 보여주고 있는데뒷쪽의 true 인자가 이번 문제의 요점입니다. 링크에 접속하면 한개의 입력 폼이 보입니다. 소스를 확인하면 md5_password 데이터베이스의admin_password 테이블에서 password가 md5 해싱된 전달값과 동일한 요소를 질의하고만약 존재한다면 Key가 출력하도록 되어있습니다. 앞서 소개했던 php의 md5 함수 두번째 인자는 해싱 결과가 바이너리 형식 문자열로 출력되도록 하는데요. 예시로단어 [ apple ] 를 해싱하면 raw_output apple false 1f3870be274f6c49b3e31a0c6728957f true 8p�'OlI�� g(� 만약 해싱한 결과에 sql inje..
wargame.kr 사이트의 여섯번째 문제입니다. 자바스크립트 게임입니다. 부정 프로그램 방어를 우회하여 클리어 할 수 있나요? 게임에서 사망시 31337 포인트를 모아야 한다는 안내가 보입니다. 페이지 소스를 살펴보면packer 를 통해 난독화된 자바스크립트 소스를 볼 수 있습니다. xssor.io의 unpacker을 통해변환시키고 해석해보니 위의 _0x8618x6 라는 이름이 변수가 점수를 의미하는 것 같네요. burp proxy를 통해 응답 페이지를 변조하여초기 점수값을 99999로 바꾸었습니다. 99999 점수로 시작했고 사망시에 Key를 획득할 수 있었습니다.
wargame.kr 사이트의 다섯번째 문제입니다. 이건 프로그래밍 언어예요. 이 소스코드를 읽을 수 있나요? 링크에 접속하면 ws확장자명의 파일 링크를 확인할 수 있습니다. 파일을 다운받아 내용을 확인해 보니빈화면만 수십 줄 보이네요. 파일 내용을 16진수로 변환하면 확인해 보면[ 0x09, 0x0a, 0x20 ] 만으로 구성되었다는걸 확인할 수 있는데( ASCII코드를 기준으로 하여 순서대로 [ 수평 탭, 개행 문자, 공백 ] ) 처음 봤을때 혹시 삼진수로 변환하여 해석하는 것이 아닐까킹리적 갓심을 발휘해 보았지만 당연히 아니었다. ^^;; whitespace 라는 마이너한 프로그래밍 언어 소스 코드였고온라인 컴파일러에 넣어보니 Key를 얻어낼 수 있었습니다.
wargame.kr 사이트의 네번째 문제입니다. 계정을 정지당했어요. 우회해서 도와주실 수 있나요? 정지당한 계정정보를 이용해 로그인을 하는것이 문제의 목표입니다. 링크에 접속하면 위와 같은 로그인 화면을 확인할 수 있고아래에는 페이지 소스를 확인하는 링크가 존재합니다. login_filtering 데이터베이스의 user 테이블의 정보를 이용해우리가 입력한 아이디/비밀번호 정보와 일치되는 정보가 있으면 인증이 성공하며 맨 하단에 주석으로 정지된 계정 두개가 보입니다. 제공된 정지아이디로 로그인을 시도하면에러메시지를 볼 수 있습니다. Mysql은 where절에서 대소문자를 구분하지 않는데요. 따라서 [ guest/guest ] 계정을[ Guest/guest ] 와 같이대소문자를 바꿔 로그인을 시도하면 로그..
wargame.kr 사이트의 세번째 문제입니다. 자바스크립트 퍼즐 문제입니다. 재미있게 하세요자바스크립트 문제라는 것을 알 수 있네요. 링크에 접속하면 위와 같은 고전 게임이 등장합니다. 소스를 확인해보면 jquery 구문으로$('#join_img').attr('src',unescape('.%2f%69%6d%67%2f%71%72%2e%70%6e%67'));이미지의 src속성 지정하고 있네요. 아해 내용들은 해당 이미지를 가지고서 게임을 구성하는 내용으로 보입니다. 해당 주소를 URI 디코딩 해 보면./img/qr.png 가 이미지의 주소라는 것을 알 수 있습니다. 해당 이미지 주소로 들어가보면위와 같은 QR코드를 확인할 수 있네요. QR코드를 해석하니 주소 GET! 들어가면 플래그를 확인할 수 있습니다.
wargame.kr 사이트의 두번째 문제입니다. 버튼을 클릭해보세요!도저히 잡을 수가 없네요! 사이트에 접속하면 위처럼버튼이 하나 보이고마우스 주위를 빙글빙글 돌아다닙니다.. 소스를 확인해보면 URI 인코딩이 적용된 문자들이사용자 함수 unescape_blue14라는 함수를 통해 변환되고eval 함수로 실행되네요. 내부 내용을 디코딩 해 보았지만도통 모르겠습니다. 실행 결과물을 확인해 보니onclick 이벤트 발생시에?key=7ac6 인자가 추가하도록 되었군요. 주소에 ?key=7ac6를 추가하니플래그를 획득할 수 있었습니다.