natas level 11->level 12 문제와 비슷한 문제인듯 하다. 다른점은 이미지 파일만 받는다고 한다. 코드를 보자 genRandomString() 함수는 $string에 characters[0~len(characters) 중 random한 숫자]를 붙여넣는다. 그리고 $string을 리턴한다. makeRandomPath함수는 random string에 path를 만들어 주는 함수로 path가 있는지 확인하는 함수이다. makeRandomPathFromFilename함수는 POST방식으로 filename을 받아서, 해당파일의 확장자를 확인하여 path를 만들어 리턴해주는 함수이다. 이 문제도 마찬가지로 확장자가 jpg로 들어가는 것을 알 수 있다. 전 문제와 다른 코드를 볼수가 있다. exif..
소스코드를 보자 genRandomString() 함수는 $string에 characters[0~len(characters) 중 random한 숫자]를 붙여넣는다. 그리고 $string을 리턴한다. makeRandomPath함수는 random string에 path를 만들어 주는 함수로 path가 있는지 확인하는 함수이다. makeRandomPathFromFilename함수는 POST방식으로 filename을 받아서, 해당파일의 확장자를 확인하여 path를 만들어 리턴해주는 함수이다. genRandomString함수를 통해 random한 스트링이 출력이 되고 확장자가 jpg로 바뀌는 것을 알 수 있다. 이 페이지에서는 파일을 업로드 하는것외에는 할수 있는게 없다. 따라서 burp suite를 이용해야 될거..
문제 코드 showpassword값이 yes가 되면 문제는 풀린다. defaultdata는 배열인데 "showpassword"값은 no, "bgcolor"는 하얀색인 것을 알 수 있다 함수가 3개가 있다. 이를 각각 살펴보자 xor_encrypt함수에서 key는 검열되었다. text에는 in의 값이 들어간다. $outText .= $text[$i] ^ $key[$i % strlen($key)]; A^B=C일때 A^C는 XOR 성질 때문에 A^C = B가 된다 우리가 구하고자 하는 것은 key 값이기 때문에 xor의 성질을 이용하여 key값을 구할 수 있다. loadData 함수에서는 cookie값을 가져와서 base64_decode>xor_encrypt>json_decode 순으로 복호화 하고 이를 te..
문제 소스코드 [preg_match함수] preg_match('/대조 할 문자/','입력한 문자', $matches); 찾고 싶거나 필터링 하고 싶은 문자를 대조할 문자에 넣음 첫번째 if문에서는 입력한 문자열이 key에 저장이 된다. 두번째 if문에서는 [ ; | & ] 문자가 key에 들어가면 illegal charater를 출력하고 아니면 passthru 함수를 시행한다. passthru함수의 쓰임은 level8->level9에서와 같다. 풀이 Level 8->Level 9 문제 풀이와 같게 하면 될거 같다. ^ /etc/natas_webpass/natas11을 입력해봤다. 풀렸다. 비번 : U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK [참고] ;cat /etc/natas_webpas..
문제 소스코드 array_key_exists("확인하고자 하는 키", [배열명]); 배열의 키가 존재하는지 확인하는 함수. 존재하면 1 리턴 passthru("명령어"); 명령어 시행하는 함수 grep 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어 grep -i : 대소문자 무시 첫번째 if문에서 입력한 내용이 key에 저장이 된다. 두번째 if문에서 key값이 있으면 key값을 dictionary.txt에서 찾는다. 풀이 grep을 이용하여 문제를 풀면 될거 같다. [grep 명령어] grep 명령어에 익숙하지 않으면 문제 풀때 좀 어려울 거 같다. 먼저 apple을 넣어보았다. niddle에 apple이 들어가고 화면은 다음과 같이 뜬다. grep은 정규표현식을 사용할 수..
Level 6 -> Level 7 들어가면 다음의 화면이 뜬다. home을 누르면 다음과 같이 뜬다 about을 누르면 다음과 같이 뜬다. 소스코드를 보자 hint가 있다. hint에는 etc/natas_webpass/natas8에 비번이 있다고 한다. home화면에서 뒤에 붙여넣었다. 그랬더니 다음과 같이 뜬다. home/etc/natas_webpass/natas8라는 파일이 없다고 한다. url을 살펴보면 page=home/etc/natas_webpass/natas8라고 되어있다. 그렇다면 page=/etc/natas_webpass/natas8로 바꾸면 원하는 페이지가 나올것이라고 유추할 수 있다. 풀렸다. 비번은 DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe Level 7->Level ..
Level 4-> Level 5 들어가면 다음의 화면이 뜬다. 접근이 허용되지 않았다고 한다. 페이지 소스를 보자 페이지 소스에서 활용할 수 있는것이 없는 거 같다 저번에 깔았던 burp suite를 활용해야 될거 같다 burp suite에서 저번에 했던거 처럼 설정을 해주고 natas5 페이지에서 새로고침을 하면 다음과 같이 뜬다. 이때 loggedin=0이라고 원래 되어있는데 이것을 loggedin=1로 바꿔준다. 그리고 forward를 누른다. 풀렸다. 비번은 aGoY4q2Dc6MgDq4oL4YtoKtyAg9PeHa1 Level 5->Level 6 들어가면 다음의 화면이 뜬다. secret을 집어넣으라 한다. 소스코드를 확인해보자 코드를 보니 secret변수와 폼을 통해 입력한 값이 같으면 pass..
Level 2->Level 3 들어가면 다음과 같은 화면이 나온다. 페이지 소스를 확인해보았다. 아무런 정보를 얻을 수 없었다. 심지어 구글에서도 찾을수 없다고 되어있다. 저번에 했던거 처럼 url 끝에 /files를 넣어 접속해 보았더니 페이지가 없다. 문제는 구글에서도 찾을수 없다고 했지만 구글은 만능이기 때문에 구글에 검색해 보았다. robots.txt라는 파일이 있는데 이는 검색 엔진 크롤러에서 사이트에 요청할 수 있거나 요청할 수 없는 페이지 또는 파일을 크롤러에 지시하는 파일이라고 한다. 따라서 구글에서 찾을수 없다는것이 robots.txt 파일을 의미한다. 즉, robots.txt에는 Disallow라고 되어있는 디렉토리가 있음을 확인하였고 이 디렉토리로 접근을 해보자 디렉토리에 접속했더니 ..
더보기 https://overthewire.org/wargames/natas/ Level 0 사이트에 접속하면 다음과 같은 화면이 나온다. 페이지의 코드를 확인해보자 natas1의 비밀번호가 gtVrDuiDfck831PqWsLEZy5gyDz1clto 임을 알수있다. Level 0 -> Level 1 사이트에 접속하면 다음과 같은 화면이 나온다. 오른쪽 마우스 버튼을 누를수 없기 때문에 페이지 소스를 확인하기 위해 Ctrl + Shift + C를 누른다. natas 2의 비밀번호가 ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi 이다. Level 1 -> Level 2 들어가면 다음과 같이 화면이 뜬다. 페이지 소스를 봤더니 다음과 같다 img 파일이 있는것을 확인 할 수 있다. 이 파일을 확인..