SQL INJECTION 문제id와 pw를 입력하는 걸로 봐서는 인증 우회 문제로 보인다. 기본적으로 적혀져 있는대로 로그인을 해보면 아래와 같이 hi guest가 출력 된다. 소스를 보면 index.phps 파일이 주어져 있다는 것을 알 수 있다. index.phps 파일을 보면 id 부분은 admin, from ,union 등이 필터링되어 있고 pw 부분은 md5로 변환되서 비교를 한다는 것을 알 수 있다.그리고 Query 위쪽에 보면 mb_convert_encoding($_GET[id],'utf-8','euc-kr'); 이 있는데 이를 이용해서 magic_quote_gpc, addslashes, real_escape_string 을 우회할 수 있다. (single quote, double quote..
name을 입력할 수 있는 공간과 Make 버튼이 있다. 숫자를 입력해보면 아래와 같이 다섯칸으로 되어있다. Make 버튼을 누르면 index/go.html 페이지로 이동되고 페이지 내용에 hello 12345 가 출력되어 있는 것을 볼 수 있다.즉, 첫 페이지에서 입력한 내용 중 5글자만 index/go.html 페이지에 출력이 된다는 것을 알 수 있다. Code Injection 취약점을 이용한 문제로 추측을 하고 문제의 구조를 파악해보면 다음과 같다. 1. name 으로 입력한 값이 $_POST['name']으로 전달2. $name = substr($_POST['name'],0,5); 5글자만 전달3. system("echo 'hello $name' > index/go.html"); system()..
파일을 업로드할 수가 있고 웹쉘을 올리면 문제를 해결할 수 있다. 힌트로는 파일 타입이 나와있다. 먼저, 문제에서 지시한대로 간단하게 test.php 를 올려보면 아래와 같이 access denied 가 발생하는 것을 볼 수 있다. 우회하기 위해서 test.jpg 로 업로드를 해보면 아래와 같이 정상적으로 파일이 업로드가 되는 것을 볼 수 있다. 힌트에서 파일 타입이라고 알려줬기 때문에 Content-type 값을 image/jpeg 로 변경해서 test.php를 업로드해보면 문제를 풀 수 있다.