-
[Webhacking.kr] 27번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 01:39
SQL Injection 문제이다.소스를 보자. 주석처리되어 있는 index.phps로 접근하였다. 소스를 보니 eregi 함수로 #, union, from, challenge, select, (, tab, /, limit, =, 0x가 필터링되어 있으며,18번 문제와 마찬가지로 no에 입력값이 바로 삽입되어 취약점이 발생한다.쿼리문의 결과로 나온 id 값이 admin이면 문제가 풀린다. 우선, guest의 no를 찾아보았다. guest의 no의 값은 1이다. 쿼리문을 참으로 만들어 admin으로 만들 수 있는 경우는 18번과 마찬가지로 2가지로 생각해보았다. 1. ?no=0 or id='admin'2. ?no=0 or no='admin의 no 값' ?no=0 or id like 'admin'을 입력해보..
-
[Webhacking.kr] 26번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 01:08
index.phps로 접근하면 php 소스코드를 볼 수 있다. eregi("정규 표현식", "대상 문자열") //대소문자 구분 xereg("정규 표현식", "대상 문자열") //대소문자 구분 o대상 문자열이 정규 표현식과 일치하면 true, 그렇지 않으면 false 반환하는 함수 소스 코드를 해석해보면,get 방식으로 id 값을 전달하고, 전달한 id 값이 urldecode 함수에 의해 복호화 된다.복호화된 값이 admin일 경우에 문제가 풀린다.단, admin이라는 문자열은 필터링되어 있다. urlencode(\$str)문자열 url encode하는 함수- _ .을 제외한 모든 영, 숫자가 아닌 문자를 퍼센트(%) 사인에 이어지는 두 16진수로 교체하고,공백은 플러스(+) 사인으로 교체한 문자열 반환 ..
-
[Webhacking.kr] 25번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 00:47
LFI(Local File Inclusion) 취약점 (파일 업로드 취약점)웹 브라우저를 통해 서버에 파일을 포함시키는 과정에서include 할 페이지 경로를 적절히 필터링하지 않고, 디렉토리 변경 명령어들의 삽입을 허용할 때 발생보통 URL을 통해 이루어지며 ../../etc/passwd 와 같은 형식으로 접근하여 서버 내부의 중요한 디렉토리에접근할 수 있는 취약점 문제를 보면 file=hello를 통해 hello라는 파일로 접근한다.이를 통해 index.php 또는 password.php에 접근할 수 있는지 확인해보았다. 아무런 반응이 없다..;;hello.txt가 아닌 hello라고 입력한 이유가 있을까 싶어 index, password로도 접근해보았다. 그러나,, 아무런 반응이 없었다. 여기서!!..
-
[Webhacking.kr] 24번 풀이Wargame/webhacking.kr (old) 2019. 5. 6. 17:19
ip가 잘못되었다고 한다..? 소스를 보니 ip가 127.0.0.1 이어야 한다. extract()배열 속의 키 값을 변수화 시켜주는 함수ex) \$a[x] = 11; \$a[y] = 22;extract(a) => x=11, y=22 \$REMOTE_ADDRphp의 환경변수 \$_SERVER의 값 중 하나로, 사이트에 접속한 클라이언트의 IP주소를 나타낸다. \$HTTP_USER_AGENTphp의 환경변수 \$_SERVER의 값 중 하나로, 클라이언트의 브라우저 정보를 나타낸다. 소스를 해석해보면,\$_SERVER의 키 값과 \$_COOKIE의 키 값을 변수화 시킨다.\$REMOTE_ADDR 변수에 값이 없으면, \$_SERVER[REMOTE_ADDR]의 값을 넣어준다.이때, \$_SERVER[REMOT..
-
[Webhacking.kr] 23번 풀이Wargame/webhacking.kr (old) 2019. 5. 6. 17:02
를 삽입하는 xss 문제이다. XSS(Cross Site Scripting)란?게시판이나 웹 메일 등에 악의적인 스크립트 코드를 삽입해 개발자가 고려하지 않은 기능을 작동하게 하는 공격클라이언트 대상 입력 form에 를 삽입해보았다. get 방식으로 입력한 값이 전송되고, 사이트에 연결할 수 없다는 페이지가 출력된다. 안되는 문제인줄 알았으나, 1을 입력해보니 페이지에 출력되었다.그냥 스크립트 문을 필터링해놓은 것 같다. 에서 어느 부분이 필터링되어 있는지 알아보기 위해하나씩 입력해보기로하고 우선, 부터 입력해보았다. 잘된다. 필터링되어 있지 않다.script를 입력해보았다. no hack이 출력된다.엥?!필터링되어 있는 문자를 넣어도 사이트 연결안되는게 아닌가보다...? 아무튼 script가 필터링된 ..