본문 바로가기

WARGAME/webhacking.kr [web]

(9)
webhacking.kr / Old-1. php [write-up] 오랜만에 웹 워게임을 풀어보는 것 같다. 그럼 시작 ㅎㅎ 소스보기를 눌러보자. 디폴트 user_lv 쿠키 값은 1로 설정해둔 것으로 보인다. 아래 부분 php 를 보면 user_lv 쿠키가 6이상이면 다시 1로 설정, 5 초과면 solve 인 것도 볼 수 있다. 5 초과 6 미만인 수를 쿠키의 user_lv 값으로 설정하면 풀릴 것 같다. 쿠키 값을 변경하기 위해서 editcookie 를 사용한다. 1로 설정되어 있던 값을 5.5로 변경해주었다. 새로고침하면, 엄청 간단하게 해결!
webhacking.kr / Old-25. php [write-up] 개발자 도구로 열어봐도 별거 없어보이고 해서 url 에 file = flag 를 입력해봤다. flag 가 코드안에 있다고 한다. 아무리 살펴봐도 모르겠어서 구글링을 해보았다. php wrapper 라는 것을 이용해 filter 기능을 사용하면 된다고 하는데.. 잘 모르겠어서 형태를 먼저 살펴보았다. php://filter/convert.base64-encode/resource= 이런 식으로 사용하고, 알고 싶은 php 파일의 이름을 맨 끝에 적어서 url 에 전송하면 되는 것 같다. 우리는 flag.php 를 봐야하니까 php://filter/convert.base64-encode/resource=flag 를 입력하면, flag 가 base64로 인코딩된 값이 필드에 출력되게 된다. 이렇게! 이제 여기 ..
webhacking.kr / Old-58. javascript [write-up] 우선 맨 밑에 send 가 궁금하니까 a를 입력해본다. command not found ! 콘솔창인가보다. ls 를 쳐보자. js 파일과 html 파일이 보인다. 이 둘은 역시 먹히지 않는다. cat flag 도 먹히지 않고, flag 를 입력하니 권한이 없다고 나온다. 이럴땐.. 개발자 도구!!!! 음 username 이 현재 guest 인데 한번 admin 으로 바꿔보자. 이렇게 오른쪽에서 admin 으로 변환해주고 flag 를 입력해도 아무런 변화가 없었다. 그래서 구글링을 해보니 소켓을 콘솔에서 전송해보면 되는 것 같다. 문법을 자세히 모르는채로 마구잡이로 입력하다보니 계속 실패.. 계속 도전하다가 성공!! auth 에 제출하면 58번 해결.
webhacking.kr / Old-34. javascript [write-up] 확인 버튼을 누르면 그냥 검정색 화면이 뜬다. 개발자 도구로 확인해보자. 아찔2.... 구글링 해보니 이 엄청난 문자열을 보기 편하게 바꿔주는 javascript beautifier 를 사용해서 보기 편하게 변경할 수 있을 것 같다. 예쁘게 변환된 코드로 다시 보자. 예쁘게 정리되어도 뭐 꽤나 길게 변환된 이 소스에서 alert 를 먼저 찾아보자. if 문에 적힌 조건대로 입력했을 때와, else 에 적힌 조건대로 입력했을 때의 차이를 보면, 먼저 콘솔 창에 alert(b('0x1e', '14cN')); 를 입력했을 때에는 그냥 처음에 문제 페이지에 들어올 때의 alert 가 나오는 걸 볼 수 있다. 그래서 if 문의 alert(b('0x1b', 'RLUb')); 를 입력해보았다. password 라는 ..
webhacking.kr / Old-23. xss [write-up] 저 스크립트를 인젝션 시키면 된다고 한다. 아마도 필드에 필터링이 걸려있겠지? 먼저 그냥 를 입력해보니 no hack 이 뜨면서 url 에 내가 입력한 값이 나왔다. ( ) ; / 이 4문자가 url 인코딩되어 적용된 것을 볼 수 있고, 아마 script 라는 문자가 필터링 되었을 것 같다. url 에서 직접 수정해서 입력해봐도 no hack. Script, sCript 등으로 입력해봐도 역시 no hack 이 떴다. 사이사이 공백을 넣어서 입력해보자. 하나씩 추가하면서 확인해보았다. 왜 안돼 내가 입력으로 준 값 사이사이마다 %00을 넣고 제출하니 성공했다. 왜 사이사이마다 %00을 꼭 다 입력해야만 우회가 가능했던 것인지, 무슨 우회 방법인지 궁금해서 구글링을 해보니 * NULL byte inject..
webhacking.kr / Old-17. javascript [write-up] 그냥 a 입력해서 check 눌러봤다. 한번 개발자 도구로 확인해보자. 저 연산을 한 후 필드에 입력하면 되는 문제 같다. 콘솔에서 간단하게 연산 후 나온 값을 입력했다. 엄청 간단하게 완료!
webhacking.kr / Old-16. javascript [write-up] 별..... 이쁘다 아니 개발자 도구를 열자. 근데.. random 함수가 있다. 새로고침을 한번 해봤다. !!!!!!! 맨 끝에 별 색깔이 계속 바뀐다. 소스를 제대로 확인해보자. 일단 * onkeypress (=onkeydown) : 키가 눌렸을 때 이벤트 발생 * event.keyCode : Javascript 로 사용자의 키입력을 감지하여 함수를 처리 : ASCII 코드에 기반 * onmouseover : 마우스 커서가 해당 요소 위에 위치할 때 이벤트 발생 키보드로 입력한 값이 mv 함수로 넘어가고, 그 입력 값이 100, 97, 119, 115, 124 일 때 각각 다른 일을 수행하는 것 같다. 아스키 코드로 100은 d , 97는 a, 119는 w, 115는 s, 124는 | 이다. d를 눌..
webhacking.kr / Old-15. javascript [write-up] 문제 페이지에 들어가면, 접근 권한이 없다는 alert 창이 나오고 확인 버튼을 누르면 바로 웹해킹.kr 시작 페이지로 돌아가버린다. 후움.. 개발자 도구를 보려해도 아무것도 뜨지 않고, 확인 버튼을 누르면 시작 페이지로 가도록 소스를 짜둔 것 같으니 버프수트를 이용해서 request 를 훔쳐봐야겠다. 프록시 설정을 해두고 15번 문제에 접속한 후 버프수트에서 Forward 를 누르면서 확인한다. location.href='/'; 이부분이 루트로 가라는 뜻 같다. 지워봤다. Get Flag 등장 성공! 구글링해보니 크롬 고급 설정에서 자바스크립트 활성화 탭으로 가서 15 번 문제의 url 을 입력해주어 한번 걸러지도록 하는 방법도 있다. 나는 버프수트로 해결!