Season 1
-
세 번째 문제 시작하도록 하겠습니다~ 1. 문제 문제에 접근하게 되면 패스워드를 입력하라는 창이 뜨게 된다. 2. 문제풀이 뜬금없이 패스워드를 입력하라고 한다.... 우선 어떠한 반응이 일어나는지 확인하기 위해 test문구를 입력하여 보았다. 이후 반응을 보니 잘못된 패스워드라는 값을 던져주었다. 어떻게 생겨먹은 로직인지 확인하기 위해 패킷을 잡아보았다. 패킷을 잡으니 pass 값이 나와있다. 이를 다시 패스워드 입력 칸에 입력해보았다. 결과는... 이 패스워드 값을 검증하는 곳에 사용하라는 것 같다. 검증하는 곳에 의뢰를 맡기니 파랑새가 반겨주었다~ 이전에 패킷을 잡으면 안 잡히는 현상이 있었다. 이를 확인해 보니 두 번째 패킷을 잡을 때부터는 304를 뿌려주었다. 이게 무엇인지 조사해보니 304 No..
[Root-Me]/Web-Client/Javascript - Source세 번째 문제 시작하도록 하겠습니다~ 1. 문제 문제에 접근하게 되면 패스워드를 입력하라는 창이 뜨게 된다. 2. 문제풀이 뜬금없이 패스워드를 입력하라고 한다.... 우선 어떠한 반응이 일어나는지 확인하기 위해 test문구를 입력하여 보았다. 이후 반응을 보니 잘못된 패스워드라는 값을 던져주었다. 어떻게 생겨먹은 로직인지 확인하기 위해 패킷을 잡아보았다. 패킷을 잡으니 pass 값이 나와있다. 이를 다시 패스워드 입력 칸에 입력해보았다. 결과는... 이 패스워드 값을 검증하는 곳에 사용하라는 것 같다. 검증하는 곳에 의뢰를 맡기니 파랑새가 반겨주었다~ 이전에 패킷을 잡으면 안 잡히는 현상이 있었다. 이를 확인해 보니 두 번째 패킷을 잡을 때부터는 304를 뿌려주었다. 이게 무엇인지 조사해보니 304 No..
2021.07.14 -
정규표현식 해당 글은 PHP 기준으로 정리한 글 입니다. 정규표현식이란? 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어 정규표현식 함수 Function Description preg_match() 패턴이 문자열에서 발견되면 1을 반환, 그렇지 않으면 0을 반환 preg_match_all() 문자열에서 발견된 패턴의 개수를 반환 preg_replace() 패턴과 일치하는 문자열을 다른 문자열로 대체된 문자열을 반환 Modifiers Modifier Description i 대소문자 구분하지 않고 패턴 검사 수행 m 여러 줄 검색을 수행(문자열의 시작 또는 끝을 검색하는 패턴은 각 줄의 시작 또는 끝과 일치) u UTF-8 인코딩 i $result = preg_match("/t/", "t..
정규표현식 정리정규표현식 해당 글은 PHP 기준으로 정리한 글 입니다. 정규표현식이란? 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어 정규표현식 함수 Function Description preg_match() 패턴이 문자열에서 발견되면 1을 반환, 그렇지 않으면 0을 반환 preg_match_all() 문자열에서 발견된 패턴의 개수를 반환 preg_replace() 패턴과 일치하는 문자열을 다른 문자열로 대체된 문자열을 반환 Modifiers Modifier Description i 대소문자 구분하지 않고 패턴 검사 수행 m 여러 줄 검색을 수행(문자열의 시작 또는 끝을 검색하는 패턴은 각 줄의 시작 또는 끝과 일치) u UTF-8 인코딩 i $result = preg_match("/t/", "t..
2021.07.13 -
이번엔 두 개의 쿼리문으로 문제를 만들었다. $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello admin"; 첫번째 쿼리문이다. 쿼리의 결과 id가 admin일 때, Hello admin를 출력한다. $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($..
[Lord of SQLInjection] Orc Write UP이번엔 두 개의 쿼리문으로 문제를 만들었다. $query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($db,$query)); if($result['id']) echo "Hello admin"; 첫번째 쿼리문이다. 쿼리의 결과 id가 admin일 때, Hello admin를 출력한다. $_GET[pw] = addslashes($_GET[pw]); $query = "select pw from prob_orc where id='admin' and pw='{$_GET[pw]}'"; $result = @mysqli_fetch_array(mysqli_query($..
2021.07.12 -
두 번째 문제풀이 시작하도록 하겠습니다~ 1. 문제 ID/PW를 통해 로그인하면 문제가 풀리는 것처럼 보인다. 2. 문제풀이 바로 ID/PW에 test 값을 넣어 봤지만. 패스워드가 틀렸다고 한다... 이후 패킷을 잡아 진행해보려 하였는데, 패킷이 잡히지않고있엇다.... 어쩔 수 없이 페이지 소스 보기를 통해 힌트를 얻었다. HTML 코드 상에선 힌트가 존재하지 않아 로그인이 수행되는 login.js 코드를 살펴보았다. 이 부분은 패킷이 안잡혀 이렇게 볼 수밖에 없었다... 도중에 패킷 요청 변조를 하니 아예 화면이 안보이기도 하였다... 어쨌든 얻은 힌트를 통해 ID/ PW를 넣고 로그인을 시도해 보았다. 성공하였다고 알려주며 패스워드를 타당성 검증하는 곳에 입력하라는 문구가 나왔다. 이후 타당성 검증..
[Root-Me]/Web-Client/Javascript - Authentification두 번째 문제풀이 시작하도록 하겠습니다~ 1. 문제 ID/PW를 통해 로그인하면 문제가 풀리는 것처럼 보인다. 2. 문제풀이 바로 ID/PW에 test 값을 넣어 봤지만. 패스워드가 틀렸다고 한다... 이후 패킷을 잡아 진행해보려 하였는데, 패킷이 잡히지않고있엇다.... 어쩔 수 없이 페이지 소스 보기를 통해 힌트를 얻었다. HTML 코드 상에선 힌트가 존재하지 않아 로그인이 수행되는 login.js 코드를 살펴보았다. 이 부분은 패킷이 안잡혀 이렇게 볼 수밖에 없었다... 도중에 패킷 요청 변조를 하니 아예 화면이 안보이기도 하였다... 어쨌든 얻은 힌트를 통해 ID/ PW를 넣고 로그인을 시도해 보았다. 성공하였다고 알려주며 패스워드를 타당성 검증하는 곳에 입력하라는 문구가 나왔다. 이후 타당성 검증..
2021.07.12 -
새로운 워게임 사이트를 찾게 되었다. 초급자가 진행하기 쉬울 것이라고 하여 페이지에 접속해 보았다. 간단 접속 및 로그인 법부터 설명하고 문제풀이를 진행하도록 하겠다. 사이트는 https://www.root-me.org이다. 빨강 박스를 통해서 ID/E-mail/PW를 입력할 수 있다. E-mail 인증이 필요하며, 네이버로 메일 작성했는데 메일이 안 와서 google 메일을 사용하였다. 로그인은 E-mail/PW를 통해서 로그인하게 된다. ID는 별명 정도로 사용되는 듯하다. 이후에 로그인하게 되면 이렇게 리다이렉트가 되며 Challenges를 통해서 문제에 접근할 수 있다. 바로 Web-Client 문제 먼저 시작해볼 예정이며, 막히면 Web-Server로 넘어가면서 풀어봐야겠다. 그럼 이제 문제풀이..
[Root-Me]/Web-Client/HTML - boutons désactivés(disabled button)새로운 워게임 사이트를 찾게 되었다. 초급자가 진행하기 쉬울 것이라고 하여 페이지에 접속해 보았다. 간단 접속 및 로그인 법부터 설명하고 문제풀이를 진행하도록 하겠다. 사이트는 https://www.root-me.org이다. 빨강 박스를 통해서 ID/E-mail/PW를 입력할 수 있다. E-mail 인증이 필요하며, 네이버로 메일 작성했는데 메일이 안 와서 google 메일을 사용하였다. 로그인은 E-mail/PW를 통해서 로그인하게 된다. ID는 별명 정도로 사용되는 듯하다. 이후에 로그인하게 되면 이렇게 리다이렉트가 되며 Challenges를 통해서 문제에 접근할 수 있다. 바로 Web-Client 문제 먼저 시작해볼 예정이며, 막히면 Web-Server로 넘어가면서 풀어봐야겠다. 그럼 이제 문제풀이..
2021.07.12 -
level 02번의 설명을 보면 이전의 비슷한 문제라고 설명이 나와있다. (믿지 못한다면 확인해 보라고 한다..) 더해서 preg_replace() 함수를 통해서 union, order, select, from, group, by를 필터링하고 있다 설명한다. 소스보기를 통해서 살펴본 결과 level 01과 동일하다 물론 union, order, select, from, group, by는 NULL(공백) 필터링 되는 것을 확인 할 수 있었다. 실제로 웹 진단을 하다보면 문자를 공백 치환하는 경우를 많이 볼 수 있는데 조치가 미흡할 경우 우회할 수 있는 방법이 많이 있다. 예를들면 태그 중 script를 공백으로 치환하는 경우인데, 조치 미흡으로 인해 를 사용하게 되면 가운데 script가 공백으로 치환되..
[websec.fr] easy - Level 02level 02번의 설명을 보면 이전의 비슷한 문제라고 설명이 나와있다. (믿지 못한다면 확인해 보라고 한다..) 더해서 preg_replace() 함수를 통해서 union, order, select, from, group, by를 필터링하고 있다 설명한다. 소스보기를 통해서 살펴본 결과 level 01과 동일하다 물론 union, order, select, from, group, by는 NULL(공백) 필터링 되는 것을 확인 할 수 있었다. 실제로 웹 진단을 하다보면 문자를 공백 치환하는 경우를 많이 볼 수 있는데 조치가 미흡할 경우 우회할 수 있는 방법이 많이 있다. 예를들면 태그 중 script를 공백으로 치환하는 경우인데, 조치 미흡으로 인해 를 사용하게 되면 가운데 script가 공백으로 치환되..
2021.07.11