Season 1
-
파일 업로드 페이지가 나왔다. Flag가 안 나올 것을 알지만, flag.php 파일을 클릭하여 출력해봤다. 새 하얗다… 아무것도 출력이 안됐다. 아마도 PHP 코드 안에 flag가 있는데 PHP가 실행되어서 아무것도 나오지 않는 듯 하다.. “그렇다면, 웹쉘을 업로드하면 웹쉘이 작동될까?”라는 생각을 하고 웹쉘을 업로드하였다. PHP가 실행되지 않고, 읽기 모드로 브라우저에 출력되었다. flag.php는 실행되면서, 내가 올린 파일은 실행도 안된다는 것에 한탄을 하면서 flag.php의 php 비활성화 방법을 찾아봤다. 1시간이 넘는 시간 동안 인터넷에 검색과 내가 알고있는 방법을 동원해도 통하지 않아서, 결국 다른 사람의 풀이 참고하였다. 다른 사람들은 .htaccess를 통해 간단하게 php 비활성..
[Webhacking.kr] Old - 28 Write Up파일 업로드 페이지가 나왔다. Flag가 안 나올 것을 알지만, flag.php 파일을 클릭하여 출력해봤다. 새 하얗다… 아무것도 출력이 안됐다. 아마도 PHP 코드 안에 flag가 있는데 PHP가 실행되어서 아무것도 나오지 않는 듯 하다.. “그렇다면, 웹쉘을 업로드하면 웹쉘이 작동될까?”라는 생각을 하고 웹쉘을 업로드하였다. PHP가 실행되지 않고, 읽기 모드로 브라우저에 출력되었다. flag.php는 실행되면서, 내가 올린 파일은 실행도 안된다는 것에 한탄을 하면서 flag.php의 php 비활성화 방법을 찾아봤다. 1시간이 넘는 시간 동안 인터넷에 검색과 내가 알고있는 방법을 동원해도 통하지 않아서, 결국 다른 사람의 풀이 참고하였다. 다른 사람들은 .htaccess를 통해 간단하게 php 비활성..
2021.06.07 -
Admin으로 로그인하는게 이번 문제의 미션이다. 혹시 guest 계정도 있을 것을 같아서 guest/guest로 로그인 시도하니, Login Fail이 출력되었다. admin/admin으로 로그인을 시도하니, 이번 역시 Login Fail이 출력되었다. 이번엔 SQLi를 시도하니, 패스워드가 틀렸다고 출력되었다. False를 삽입하면 어떻게 되는지 궁금하여, admin' and 1=0#를 넣어서 시도하였다. True의 값과 다른 출력을 볼 수 있었다. 이것을 이용하여 Blind SQLi를 시도할 수 있을 것 같다. 로그인이 성공하면 어떤 결과가 나오는지 궁금하여, Join 페이지에 들어가서 lrtk/lrtk으로 계정을 만들었다. 로그인을 해보니, 패스워드의 해시값이 출력됐다. 해당 해시의 길이가 32 ..
[Webhacking.kr] Old - 22 Write UpAdmin으로 로그인하는게 이번 문제의 미션이다. 혹시 guest 계정도 있을 것을 같아서 guest/guest로 로그인 시도하니, Login Fail이 출력되었다. admin/admin으로 로그인을 시도하니, 이번 역시 Login Fail이 출력되었다. 이번엔 SQLi를 시도하니, 패스워드가 틀렸다고 출력되었다. False를 삽입하면 어떻게 되는지 궁금하여, admin' and 1=0#를 넣어서 시도하였다. True의 값과 다른 출력을 볼 수 있었다. 이것을 이용하여 Blind SQLi를 시도할 수 있을 것 같다. 로그인이 성공하면 어떤 결과가 나오는지 궁금하여, Join 페이지에 들어가서 lrtk/lrtk으로 계정을 만들었다. 로그인을 해보니, 패스워드의 해시값이 출력됐다. 해당 해시의 길이가 32 ..
2021.06.07 -
해당 월을 입력하면 해당 월에 대한 cal이 출력됨 unix cal 명령의 출력을 반환하는 스크립트란 문장을 통해, unix 내용 출력 명령어(cat, ls...)들을 이용해야 겠다는 생각이 듬 음... 애초에 처음 생각했던건 연도 기입 후 전망 버튼을 클릭 시 결과값이 안나오면, unix 명령어를 통해 os 인젝션이나 sql 인젝션을 이용해서 결과값을 찾아야 겠다 생각했는데, 위 그림처럼 연도가 잘 나온다... 우선 os 인젝션 먹는 기호들이 있나 확인하기 위해 있는건 다 시도해봄(||, ;, &&, &(), >>, &>, {}, ?, *) 위 기호중 ||, ;, &&이 적용되는지 확인함 해당 기호와 입력 값 연결해서 조회해봄(여러가지 구문 조합해본 결과 해당 페이지들 발견함) 보이는 페이지들에 다 접..
(HackThisSite) Basic missions - Level 7해당 월을 입력하면 해당 월에 대한 cal이 출력됨 unix cal 명령의 출력을 반환하는 스크립트란 문장을 통해, unix 내용 출력 명령어(cat, ls...)들을 이용해야 겠다는 생각이 듬 음... 애초에 처음 생각했던건 연도 기입 후 전망 버튼을 클릭 시 결과값이 안나오면, unix 명령어를 통해 os 인젝션이나 sql 인젝션을 이용해서 결과값을 찾아야 겠다 생각했는데, 위 그림처럼 연도가 잘 나온다... 우선 os 인젝션 먹는 기호들이 있나 확인하기 위해 있는건 다 시도해봄(||, ;, &&, &(), >>, &>, {}, ?, *) 위 기호중 ||, ;, &&이 적용되는지 확인함 해당 기호와 입력 값 연결해서 조회해봄(여러가지 구문 조합해본 결과 해당 페이지들 발견함) 보이는 페이지들에 다 접..
2021.06.07 -
5번 문제는 4번 문제와 같아서 진행하지 않음 패스워드 암호화 알고리즘을 분석하는 문제가 될것처럼 보임 123456 입력 시, 13579;로 암호화가 됨 (자리수에 따라 숫자가 변하고, 숫자에서 기호(;)로 변환되는 것을 보고 아스키코드와 관련되어 있는지 확인을 위해 영문자로도 시도해봄) 아스키표를 참고한 결과, 입력값(abcde)에 자리수만큼 값을 더해주면 결과값(acegi)이 나오는걸 확신함 b->c (2번째 자리수는 +1), c->e (3번째 자리수는 +2), d->g (4번째 자리수는 +3), e->i (5번째 자리수는 +4)로 변환되는것을 확인함 암호화된 패스워드가 9cf
(HackThisSite) Basic missions - Level 65번 문제는 4번 문제와 같아서 진행하지 않음 패스워드 암호화 알고리즘을 분석하는 문제가 될것처럼 보임 123456 입력 시, 13579;로 암호화가 됨 (자리수에 따라 숫자가 변하고, 숫자에서 기호(;)로 변환되는 것을 보고 아스키코드와 관련되어 있는지 확인을 위해 영문자로도 시도해봄) 아스키표를 참고한 결과, 입력값(abcde)에 자리수만큼 값을 더해주면 결과값(acegi)이 나오는걸 확신함 b->c (2번째 자리수는 +1), c->e (3번째 자리수는 +2), d->g (4번째 자리수는 +3), e->i (5번째 자리수는 +4)로 변환되는것을 확인함 암호화된 패스워드가 9cf
2021.06.07 -
아무 반응이 없어서 코드를 확인해보니, 주석으로 시간과 admin 페이지가 표시되어 있었다. Admin 페이지에 들어가니, 비밀번호를 입력하는 Form이 있었다. 그래서 SQLi 문제인 듯하여, '를 넣음으로써 Error를 일으켜서 Error를 출력하려고 했다. 하지만, ' 포함하여 다양한 값들을 넣어지만 똑같은 Alert창이 출력되었다. 공격 백터가 Admin의 입력 Form이 아닌 듯하여, 다른 백터를 찾아봤다. 쿠키를 보니 Time이라는 쿠키를 볼 수 있었다. 해당 쿠키값을 True로 변경하니, 주석으로 표시된 시간이 변경이 되었다. 이번에는 False로 변경하여 확인하니, 이번에도 시간이 변경되었다. True와 False의 결과를 비교하니, 시간의 초 부분이 변경이 되었다. 그런데 보다가 True..
[Webhacking.kr] Old - 2 Write Up아무 반응이 없어서 코드를 확인해보니, 주석으로 시간과 admin 페이지가 표시되어 있었다. Admin 페이지에 들어가니, 비밀번호를 입력하는 Form이 있었다. 그래서 SQLi 문제인 듯하여, '를 넣음으로써 Error를 일으켜서 Error를 출력하려고 했다. 하지만, ' 포함하여 다양한 값들을 넣어지만 똑같은 Alert창이 출력되었다. 공격 백터가 Admin의 입력 Form이 아닌 듯하여, 다른 백터를 찾아봤다. 쿠키를 보니 Time이라는 쿠키를 볼 수 있었다. 해당 쿠키값을 True로 변경하니, 주석으로 표시된 시간이 변경이 되었다. 이번에는 False로 변경하여 확인하니, 이번에도 시간이 변경되었다. True와 False의 결과를 비교하니, 시간의 초 부분이 변경이 되었다. 그런데 보다가 True..
2021.06.04 -
- md5() 취약점에 관련한 문제로 보인다. - Start - get source - 패스워드가 $ps = mysql_real_escape_string($_POST['ps']); 을 통해 필터링 되는 것을 확인 - 패스워드는 md5($ps, true); 함수를 통해 MD5해시 값으로 변환되어 SQL쿼리문이 된다. - 이때, 파라미터'true'가 설정된 md5함수는 SQL문에서 사용될 때, SQL Injection 공격에 취약하게 된다. - 파라미터'true'는 raw_output=true 라는 의미로 16진수 문자열대신 바이너리 형태로 해시 값를 반환하게 된다. - 따라서 SQL쿼리가 참이 되도록 하는 바이너리 형태의 md5값의 입력 문자를 찾으면 문제를 해결할 수 있다. - 구글링을 통해 'DyrhG..
Wargame.kr - md5 password- md5() 취약점에 관련한 문제로 보인다. - Start - get source - 패스워드가 $ps = mysql_real_escape_string($_POST['ps']); 을 통해 필터링 되는 것을 확인 - 패스워드는 md5($ps, true); 함수를 통해 MD5해시 값으로 변환되어 SQL쿼리문이 된다. - 이때, 파라미터'true'가 설정된 md5함수는 SQL문에서 사용될 때, SQL Injection 공격에 취약하게 된다. - 파라미터'true'는 raw_output=true 라는 의미로 16진수 문자열대신 바이너리 형태로 해시 값를 반환하게 된다. - 따라서 SQL쿼리가 참이 되도록 하는 바이너리 형태의 md5값의 입력 문자를 찾으면 문제를 해결할 수 있다. - 구글링을 통해 'DyrhG..
2021.06.04