Wargame
-
[Webhacking.kr] 52번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 21:58
Header Injection 문제이다.get 방식으로 id='내아이디'의 쿠키를 생성하면 문제가 풀리는 것 같다. Header Injection이란?Header에 개행문자(\r\n)를 이용하여 Header를 추가해 공격하는 기법쿠키를 임의적으로 생성하여 세션을 고정할 수 있고, url을 리다이렉트 시킬 수도 있다. http://test.com/?id=test%0d%0aSet-Cookie:%20SESSIONID=abcde개행문자에의해 아래와 같이 Header가 추가된다. [ Header Injection ] https://www.gracefulsecurity.com/http-header-injection/ 문제에서 헤더 생성을 클릭해보니 get 방식으로 내 id 값을 넘겨준다. url?id=아이디%0d%..
-
[Webhacking.kr] 51번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 21:44
오른쪽 아래에 잘보면 Source가 있다.클릭해서 소스를 보자. id가 admin이면 풀리는 SQL Injection 문제이다.SQL 쿼리문이 and로 되어 있기 때문에 pw부분을 주석 처리해 인증을 우회하기로 하였다. id : admin'-- , pw : 1 Wrong이 뜬다. 이 방법으로는 인증우회가 안된다.admin의 pw를 알아내거나, 다른 방법으로 인증을 우회해야한다.pw가 md5 함수에의해 해시화되고있다. 그런데 의심스럽게 md5의 인자로 true가 전달된다. md5(string \$str [, bool \$raw_output ])RSA Data Security, Inc. MD5 Message-Digest Algorithm을 사용하여 str의 MD5 해시를 계산하여반환하는 함수로 raw_out..
-
[Webhacking.kr] 49번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 21:06
46번 문제처럼 level이 1로 초기화되어 있다.제출해보니 get 방식으로 lv 값이 전송된다. zzibong이 페이지에 출력된다. lv의 값을 변경해보자. 역시나 46번과 마찬가지로 level의 값은 1이외에는 없는것 같다.소스를 보자. lv 값에서 몇몇 문자열을 필터링하고 있으며, id 값이 admin이면 문제가 풀린다.or이 필터링되어 있기때문에 ||가 동작하는지 알아보았다. or 대신 ||를 사용하면 된다.여전히 '는 막혀있기 때문에 2진수, 16진수, char함수를 이용할 수 있다.이 문제는 ,가 필터링되어 있기때문에 2진수, 16진수를 사용해야한다. 1. 2진수 (admin : 0b0110000101100100011011010110100101101110) 2. 16진수 (admin : 0x6..
-
[Webhacking.kr] 48번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 20:58
파일을 업로드 할 수 있고, 아래는 올려진 파일들인 것 같다.파일 업로드 취약점으로 생각하고 문제를 풀어보았다.test.txt 를 업로드하면서 글도 써야하는 것 같아 a를 작성하고 업로드를 시도하였다. 파일명은 3글자를 넘어갈 수 없다고 한다...3글자의 이름을 가진 파일을 만들어 다시 업로드하였다. 올.. 올라갔다. upload file을 눌러보니 /upload/aaa라는 파일에 접근한다. 분명 나는 aaa파일에 웹 쉘을 생각하고 아래와 같이 php 코드를 작성해 두었는데,,내용은 null이다. 흠../upload 디렉터리에 접근해보았더니 접근 권한이 없었다. 다시 돌아가 Delete를 눌러보았다. 파일이 삭제되면서 get 방식으로 mode와 time의 값이 전송되었다.다른 사람의 파일을 삭제할 수 있..
-
[Webhacking.kr] 47번 풀이Wargame/webhacking.kr (old) 2019. 5. 8. 20:33
Mail Header Injection 문제이다. Mail Header InjectionMail 함수의 Header 파라미터의 값을 이용하여 추가적인 옵션들을 이용하여 원하는 결과를 얻어내는 공격 내 이메일 주소를 넣고 제출한 후 메일을 확인하였으나 아무런 메일이 와있지 않았다.소스를 보자. header 변수에 post로 받은 email 값을 넣고, mail함수의 header 인자로 넘겨준다. mail(수신자, 제목, 내용, 추가 옵션[ From, Cc, Bcc])From 보내는사람, Cc (Carbon Copy) 참조, Bcc(Blind Carbon Copy) 숨은 참조 [ mail 함수 ] https://php.net/manual/kr/function.mail.php[ mail header injec..