Wargame/webhacking.kr (old)
-
[Webhacking.kr] 11번 풀이Wargame/webhacking.kr (old) 2019. 4. 16. 02:58
- preg_match("정규표현식", "검사할 문자열")입력받은 문자열이 주어진 정규표현식과 검사하여 일치하면 True 문제를 보면 $pat에 지정된 정규표현식의 값과 val으로 보내준 문자열이 일치하면password를 echo를 통해 알려준다.따라서, $pat에 해당되는 문자열을 먼저 알아내야 한다.우선, 정규 표현식에 대해 알아보자. 정규 표현식(Regular Expression) 이란?특정 규칙을 가진 문자열의 집합을 표현하는 언어로 문자열의 검색과 치환을 위한 용도로 사용[정규 표현식] : http://www.nextree.co.kr/p4327/ 이제 $pat의 정규 표현식을 분석해보자,,!$pat="/[1-3][a-f]{5}_.*내IP주소.*\tp\ta\ts\ts/"// : 정규식에 필요한 경..
-
[Webhacking.kr] 10번 풀이Wargame/webhacking.kr (old) 2019. 3. 3. 00:20
뭘 해야 할지 모르겠어서 마우스로 방황하다가.. 글자위에 마우스를 가져다 놓았다. O부분에 마우스가 올라가면 yOu로 바뀌고 buy lotto 부분은 아무런 변화가 없다.일단 소스 코드를 보았다. onclick마우스 왼쪽 클릭 이벤트 onmouseover마우스가 개체 위로 올라갔을 때 발생하는 이벤트 onmouseout마우스가 개체에서 빠져 나갈 때 발생하는 이벤트 O의 id가 hackme인 것을 보니 이것을 해킹하는 문제이다.한 번 클릭하면 위치가 왼쪽으로 1칸 이동하고, O의 위치가 800이 되면 '현재 URL?go=800'으로 이동한다. 일단 O를 클릭해 왼쪽으로 이동하는지 해보니 아무런 변화가 없다...;;찾아보니 Chrome에서 안된단다....ㅠInternet Explorer를 통해 O를 클릭해..
-
[Webhacking.kr] 9번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 19:35
Password를 알아내는 문제이다. 소스 코드를 볼려고 하였으나 소스코드가 존재하지 않는다...;; 1, 2, 3을 순서대로 눌러보았다. 1을 누르면, get 방식으로 no=1가 전송되고 'Apple'이 페이지에 출력된다. 2를 누르면, 역시 get 방식으로 no=2가 전송되고 'Banana'가 페이지에 출력된다. 3을 누르면, 역시 no=3이 전송되지만 C로 시작하는 단어가 출력되지 않고 Secret이 출력되고, hint, column이 주어진다. column이 id와 no만 있는 것을 보면, Apple과 Banana는 id 값이고 Secret의 id 값을 알아내는 건가?! 일단 숨겨진 아이디가 있을 수도 있으니, no의 값을 1, 2, 3이외의 값으로 넣어보았다. no=0일 때는 첫 페이지가 뜨고,..
-
[Webhacking.kr] 8번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 18:56
index.phps로 접근해 소스 코드를 보았다. getenv()환경 변수의 값을 가져오는 함수 trim()맨 앞과 맨 뒤의 여백 제거 strtolower()문자열 소문자로 변환 소스를 해석해보면, \$agent는 나의 접속 환경 값, \$ip는 나의 IP주소 값으로 초기화한다.str_replace()를 이용하여 .과 /의 값을 _로 대체한 후,union 등의 필터링된 문자열을 포함하는지 검사한다. \$_SERVER[HTTP_USER_AGENT] 값도 str_replace()를 이용하여 '(싱글 쿼터), \" 를 공백으로 대체하고,이 값을 이용하여 쿼리를 검색한다.[$_SERVER 변수 값 정리] https://intro0517.tistory.com/111 쿼리를 검색한 결과 값이 존재하면 'hi \$c..
-
[Webhacking.kr] 6번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 18:18
idex.phps를 클릭하여 소스 코드를 보았다. 소스를 해석해보면,val_id에 guest, 변수 val_pw에 123qwe의 값으로 초기화한 후, 20번의 base64 인코딩을 수행하고str_replace 함수를 이용하여 숫자들을 특수기호로 치환한다.연산이 완료되면 val_id와 val_pw 값으로 user, password의 쿠키를 생성한다. 생성된 user, password 쿠키 값을 변수 decode_id, decode_pw의 값으로 초기화 한 후,위에서 수행한 연산과 반대로 수행한다. 마지막으로 decode_id와 decode_pw의 값이 admin인지 비교 후,admin일 경우 문제가 풀린다. 위에서 수행한 연산과 반대로 수행하기 때문에 str_replace 함수는 무시하면 된다. user,..