본문 바로가기

Hacking/WebHacking.kr38

Webhacking.kr : old-07 (300 pt) 문제에 접속하면 다음과 같은 화면이 나타났습니다. -> val이라는 파라미터가 붙어서 접속됩니다. -> source가 주어집니다. 우선 source부터 확인하였습니다. -> go에 val의 값을 저장합니다. (val의 초기 값이 1이므로 go 값은 1이 되겠습니다.) -> go 값에 다음과 같은 문자열이 필터링됩니다. 2 , - , + , from , _ , = , \s(정규표현식 공백 문자를 의미합니다.) , * , / 값을 필터링합니다. -> go 값을 가지고 쿼리를 실행합니다. 실행 결과가 없으면 query error 문자열이 출력하고 lv값이 2이면 문제를 해결할 수 있습니다. 우선 2가 필터링되어 있고 헥스 값을 사용하려고 했는데 0x32 (헥스 값에도 2가 포함되어 있었습니다.) (, )는 필.. 2021. 2. 11.
Webhacking.kr : old-05 (300 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> login 버튼과 join 버튼이 보입니다. -> Login을 클릭하면 mem/login.php로 이동합니다. ->Join을 클릭하면 Access_Denied 문구가 출력되는 알림 창이 나타나게 됩니다. Login = mem/login.php 이므로 Join = mem/join.php라고 생각하고 join.php로 이동해 보았습니다. -> bye이라는 알림 창이 나타났습니다. 확인 후 F12 Elements 탭에서 코드를 확인하였습니다. -> 변수명을 복잡하게 하여 난독화 되어 있는 코드가 눈에 보입니다. 코드를 정리하면 다음과 같이 간략한 코드가 나타나게 됩니다. oldzombie= 'oldzombie'; cookie = 'document.cooki.. 2021. 2. 10.
Webhacking.kr : old-58 (150 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> F12 Elements 탭에서 코드를 확인 하였습니다. -> socket을 cmd로 guest:입력 값으로 emit하는 것을 확인 할 수 있습니다. 따라서 해당 입력 창이 명령어를 입력하는 화면으로 유추됩니다. -> 여러가지 test를 했을 때 flag를 입력하면 권한 제한으로 admin만 사용할 수 있다고 합니다. function get_flag() { var socket = io(); socket.emit('cmd',"admin:flag"); socket.on('cmd', function(msg){ console.log(msg); }); } get_flag() F12 console 탭에서 코드를 이 처럼 작성하고 실행하면 flag를 획득할 수 있습.. 2021. 2. 9.
Webhacking.kr : old-56 (250 pt) 문제에 접속하면 다음과 같은 화면이 나타납니다. -> hi~ 를 클릭하면 hello~ 이라는 문구가 나옵니다. -> readme를 클릭하면 access denied라는 문구가 나옵니다. -> 검색 창이 나타납니다. 권한을 위회하여 readme 게시글을 읽으면 flag를 획득할 수 있을 거 같습니다. -> F12 elements 탭에서 코드를 확인하였지만 특수한 부분이 없었습니다. 아마 검색 창을 이용하면 문제를 풀 수 있다고 생각하였습니다. 즉, 와일드 카드(%, _)를 사용하여 블라인드로 flag를 추출할 수 있습니다. -> _를 이용하여 flag의 길이를 획득하려고 하였으나 제대로 작동하지 않았습니다. 따라서 서버에서 쿼리가 like '%{search}%' 로 생각됩니다. import requests.. 2021. 2. 9.