Wargame
-
[Webhacking.kr] 46번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 18:47
SQL Injection 문제이다.제출버튼을 누르면 get 방식으로 lv 값이 전송되고 zzibong information이 출력된다. lv에 다른 숫자를 넣어서 전송해보니 아무런 정보가 출력되지 않았다. 소스 코드를 보자. 시간이 1256900400보다 작으면 exit이 실행된다.1256900400 == 2009-10-30 11:00:002009년 전으로 돌아갈 수 없기때문에 무시해도 되는 if문이다. 타임스탬프(timestamp)란?1970년 1월 1일을 기준으로 경과된 시간을 초단위로 표시한 시간 time 함수현재 시각을 timestamp 형식으로 나타내주는 함수 계속해서 소스를 해석해보면,lv값에서 공백 / * %를 ""로 치환하고, 몇몇 문자열을 필터링하고있다.lv 값을 이용하여 쿼리문을 검색하..
-
[Webhacking.kr] 45번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 16:57
SQL Injection 문제이다.id와 pw가 guest로 초기화되어 있고, 그대로 제출하면 get방식으로 값이 전송되고,hi guest가 페이지에 출력된다. index.phps를 보자. id값이 mb_convert_encoding 함수에 의해 연산된 후 쿼리문에 적용된다.id와 pw의 값에는 admin, pw 등등의 문자열이 필터링되고, id가 admin이면 문제가 풀린다. 그러나, 쿼리문에서 pw는 md5 함수로 해시화하기 때문에 직접 admin의 pw 값을 알아내는 것은 어렵다.id 값을 이용하여 SQL Injection을 수행해야 한다. mb_convert_encoding (string \$str, string \$to_encoding [, mixed \$from_encoding=mb_inter..
-
[Webhacking.kr] 44번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 16:12
name에 test를 입력하여 Make 버튼을 클릭해보았다. go.html로 넘어가고 hello test가 출력된다.admin으로 만들어보니 hello admin이 출력된다. admin으로 접근하는것은 아닌것 같다. 이것저것해보니 name의 길이는 5글자로 제한되어 있다.도저히 어떤 문제인지 알 수 없어 찾아보니 Command Injection 문제였다. name의 값을 다른 것을 넣어줄 때마다 값이 바뀌는 것을 보니"echo 'hello $name'" > index/go.html 의 명령어가 실행되는 것으로 추측하였다. ;ls go.html 페이지에 아무 값도 출력되지 않았다.. 필터링되어 있는 것 같다.어떤 문자가 필터링되어 있는지 알아보기 위해 ;를 입력해보았다. hello만 출력되었다. 공백문자로..
-
[Webhacking.kr] 43번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 20:00
파일 업로드 취약점 문제로 웹 쉘(Web Shell)을 업로드 하는 문제이다. 파일 업로드 취약점업로드 할 수 있는 게시판 등을 이용하여 악성 서버 스크립트(웹 쉘)를 해당 페이지에 심어악성코드가 실행되도록 하는 취약점 웹 쉘(Web Shell)이란?원격에서 웹 서버에 명령을 수행할 수 있도록 작성한 웹 스크립트의 형태를 가지는 파일(php, asp, jsp, cgi...) 보통 파일 업로드 기능에는 텍스트 파일이나 이미지 파일만 업로드 가능하게 설정한다. [ 업로드 파일 제한 우회 방법 ]1. 프록시 툴을 이용한 Content-Type 검사 우회2. .htaccess 파일을 이용한 확장자 우회3. unix의 경우 파일명에 %00 %zz ; 를 포함시켜 확장자 검사 우회4. 프록시 툴을 이용한 Clien..
-
[Webhacking.kr] 42번 풀이Wargame/webhacking.kr (old) 2019. 5. 7. 19:42
read me가 있다. download를 클릭해보았다. Access Denied..test의 download를 클릭해보니 test~~~가 출력되는 페이지로 접근하였다. 다시 원래 페이지로 돌아가 소스 코드를 보았다. test.txt의 download를 클릭하면 특정 페이지로의 이동이 이루어진다.dGVzdC50eHQ= 를 알아내고 그에 맞게 test.zip으로 접근하면 될 것 같다. dGVzdC50eHQ= 는 =로 끝난다. =는 보통 Base64로 암호화된 경우이다. 복호화 해보자. 해당 문자는 test.txt를 Base64로 암호화한 것이었다.test.zip도 똑같이 Base64로 암호화한 곳으로 접근하면 접근가능할 것 같다. test.zip : dGVzdC56aXA= 개발자 도구를 사용하여 소스 코드를..