크롬에서는 동작하지 않지만 IE에서는 초록색 물컹이가 마우스 포인터를 잡으러 따라온다.rank를 눌러보면 다른 사람의 점수를 볼 수 있다. score 점수가 2147483647int 형(32 비트) 최대값이다. 마지막에 small letter 이라는 표시가 있다.다른 정보를 알아보기 위해서 소스를 보면 hint가 나와있다. 테이블에 대한 정보가 힌트로 나와있다.(ip는 id와 같고, score, password가 있다.) 점수를 클릭해보면 id // score 가 표시가 된다. or 또는 || 를 이용해서 항상 참으로 만들어주면 id에 localhost가 표시된다.조건이 거짓이 될 경우 score에 해당하는 id가 표시된다.즉, 이를 이용해서 SQL Injection을 할 수 있다.하지만, union, ..
페이지에 접근하면 Password is 와 함께 패스워드가 한 글자씩 출력이 된다.따라서 문제를 풀기 위해서 한 글자씩 출력되는 것을 받아적거나 스크립트를 짜서 알아내야 한다. 더 쉬운 방법을 찾아보기 위해서 소스를 보면 출력되는 코드를 볼 수 있다. 33번 라인이 페이지에 출력을 하는 부분이 있는데 여기에 = 대신에 += 을 사용해서 문자가 누적해서 기록되도록 바꾸고 36번 라인은 삭제하였다.그리고 해당 스크립트를 콘솔로 실행을 하면 패스워드가 한꺼번에 보인다. 패스워드를 인증하면 문제를 풀 수 있다.
hello world 소스를 보면 index.phps 파일이 주어져 있다. index.phps 파일을 보면 answer 파라미터로 $hidden_table 을 입력해주면 문제를 풀 수 있다.그리고 val 파라미터를 통해서 입력을 할 수 있지만 필터링이 되어있는 것을 볼 수 있다. select test1 from $hidden_table where test2=$_GET[val]val 이 입력되는 부분을 보면 '(single-quote)가 없는 것을 볼 수 있다.val=1 을 입력하면 testval=2 를 입력하면 guestval=3 을 입력하면 adminval=4 를 입력하면 oldzombie가 출력이 되지만, 테이블 명을 알아낼 수는 없다.테이블 명을 알아내기 위해서는 UNION을 써야하지만 해당 문자도..