Wargame
-
[Webhacking.kr] 29번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 02:49
파일을 업로드 할 수 있다. c29_tb 테이블에서 password를 알아내는 문제이다.str_replace 함수로 파일 이름의 .을 공백으로 치환하며, 문제의 소스 코드는 없다. 우선 파일 ghghgh를 업로드하여 어떻게 구성되어 있는지 알아보았다. 파일을 업로드하니 time, ip, file의 테이블 형식으로 페이지에 출력된다.insert 구문을 사용하여 time, ip, file을 DB에 저장하고 불러오는 것 같다. insert into c29_tb values('\$time', '\$ip', '\$file'); 추측대로 위와 같은 insert 구문을 사용하는지 다중 데이터를 삽입해 보았다. insert into c29_tb values('\$time', '\$ip', 'zz'),(1, 2, 3)-..
-
[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..