분류 전체보기
-
-
|webhacking.kr| #13Wargame Site/Webhacking.kr 2019. 7. 6. 07:13
SQL injection 문제이다!! 우선 form 태그를 살펴보자 두 개의 입력란이 각자 다른 곳으로 GET 전송을 하도록 설계되어 있다. 문제를 풀다보니 no 이나 상수가 들어갈 것 같은 곳에 Blind injection 의 구멍을 뚫어놓는 경우가 많은 것 같다. no 은 숫자이니 ' ' 작은따옴표의 사용을 할 수 없도록 만드는데 수월하며, 그렇기 때문에 if 로 시작이 가능하기 때문이다. no = 0 일 때 no = 1 일 때 no > 1 일 때 우선 Blind Injection 을 하기 위한 판단근거를 찾았다. 기존의 방식에서 출력된 결과가 1 인지 0 인지를 기준으로 참 거짓을 분류하면 될 것이다. 우선 간단한 프로그램을 통해 사용가능한 문자열들을 살펴보았다. 우선 괄호가 가능한 것으로 보아 공..
-
|webhacking.kr| #12Wargame Site/Webhacking.kr 2019. 7. 5. 20:17
10 번이 넘어가면서 문제들이 쉬워지는 것 같다. 위 코드를 그대로 console 에 옮기면, 다음과 같은 html 코드가 나온다. if 부분을 맞춰주면 문제가 클리어될 것이다. youaregod~~~~~~! 이 나온다. 이제 ck 가 youaregod~~~~~~! 이면 된다. ck 는 URL 에서 '=' 다음 부분을 가져오는 것이기 때문에, 그냥 URL 에 '=' 를 써주고 뒤에 youaregod~~~~~~! 을 넣어주면 된다. Clear !
-
|webhacking.kr| #10Wargame Site/Webhacking.kr 2019. 7. 5. 10:46
O 에 마우스를 올려놓으면 yOu 로 변화되는 것을 볼 수 있다. 소스 보기를 통해 확인해보자 소스는 다음과 같다. document.querySelector("#hackme") 을 뽑아서 style.posLeft 를 적절히 조절해주면 될 것 같다. posLeft 가 증가한 뒤 800 이면 되기 때문에 799 로 준 뒤 접근하면 될 것 같다. 이제 클릭을 해주면 800 이 되면서 if 구문이 실행될 것이다. 클릭하면 Clear 된다~
-
|webhacking.kr| #9Wargame Site/Webhacking.kr 2019. 7. 5. 09:25
우선, 전체적인 구조를 파악하는 것이 우선이다. no = 1 일 때 no = 2 일 때 no = 3 일 때 여기서 알 수 있는 점은 SQL injection 이 발생할 것 같은 느낌이 든다는 것이다. no > 3 일 때 우선, no 에 걸려있는 filtering 목록을 뽑아내는 것이 우선일 것이다. 아주 간단하게 코드를 구성해보았다. ( + sleep 도 시도해봤습니다. ) 그 결과 다음과 같은 문법이 필터되지 않는 것을 알 수 있었다. if 를 통해서 접근하면 해결될 것 같은 느낌이 든다. 등호의 사용이 불가하기 때문에 like 로 대체해서 사용하면 될 것 같다. no=1 일 때의 id 값이 Apple 인 듯 하다. (만약 궁금하다면 이에 맞는 쿼리를 만들어서 날려보면 알 수 있다.) no 이 3 이었..
-
|webhacking.kr| #8Wargame Site/Webhacking.kr 2019. 7. 3. 19:13
User-Agent 라는 글자 뿐이다. 얼른 소스보기하자 ㅎㅎ index.phps 로 들어간다. User-Agent 를 받아온 뒤 막막 처리하는 것이 보인다. 우선 burp suite 를 켰다. 프록시 툴을 이용해서 User-Agent 를 변경하는 방식으로 진행한다. 다음과 같은 많은 문자들을 필터링하는 것을 볼 수 있다. 어떤 문자를 필터링 하고 있는지 천천히 정리해보도록하자. 코드를 분석해보면 두 개의 query 가 동작한다. Query 1 > select id from lv0 where agent=' ' Query 2 > insert into lv0(agent,ip,id) values('$agent','$ip','guest') 1 번은 lv0 Table 로 부터 특정 agent 의 id 를 가져오는..