[natas] Level 26 -> Level 27
2021. 8. 24. 19:31
Study/Web Hacking
: level 26 → level 27 http://natas27.natas.labs.overthewire.org Username과 Password를 받는 폼이 있다. Username과 Password를 올바르게 입력하면 DB table의 내용을 출력한다. Password가 틀리면 Wrong password for user: (username)이 출력된다. Username이 존재하지 않으면 입력한 값을 바탕으로 새로운 계정을 생성한다. natas27
[natas] Level 25 -> Level 26
2021. 8. 22. 03:42
Study/Web Hacking
: level 25 → level 26 http://natas26.natas.labs.overthewire.org natas26은 4가지의 값을 입력받는 폼이 존재한다. 이 값들이 어떻게 쓰이는지 소스코드를 통해 확인했다.
[natas] Level 24 -> Level 25
2021. 8. 9. 22:50
Study/Web Hacking
: level 24 → level 25 http://natas25.natas.labs.overthewire.org natas25 화면이다. 어떤 글귀와 language 선택 박스가 있다. 바로 소스코드를 확인해보자. natas25 language View sourcecode 이번엔 소스코드가 좀 있는 편인데 필요한 부분을 천천히 훑어봤다. 먼저 아래쪽에서 호출되는 setLanguage 함수를 살펴봤다. lang 파라미터를 safeinclude함수의 인자로 전달하고 있다. safeinclude 함수를 살펴보자. 해당 함수의 매개변수를 보니 lang의 값이 filename으로 사용되는 것 같다. 그리고 filename에 ../와 natas_webpass를 필터링하는 것을 확인할 수 있다. 하지만 ../같은 ..
[natas] Level 23 -> Level 24
2021. 8. 2. 12:35
Study/Web Hacking
: level 23 → level 24 http://natas24.natas.labs.overthewire.org natas24 화면이다. password를 입력하는 form이 있다. 소스코드를 확인해보자. natas24 Password: View sourcecode 이번에도 php 소스코드가 매우 짧다. 이번 level은 strcmp함수를 통해 입력값을 password와 비교해 인증하는 방식이다. 이외에 중요해 보이는 코드는 존재하지 않는 것 같았다. 다음 level로 넘어가기 위해서는 password를 입력해야 하는데 이 password를 알아내는게 문제이니 조금 당황했다. 아무래도 직접 password를 입력하는 것 외에 다른 방법이 있는 것 같은데 중요해 보이는 코드가 strcmp함수밖에 없으니 ..
[natas] Level 22 -> Level 23
2021. 7. 26. 17:03
Study/Web Hacking
: level 22 → level 23 http://natas23.natas.labs.overthewire.org natas23 화면이다. 이번 문제에는 Password 입력칸만 존재한다. 바로 소스코드를 살펴보자. natas23 Password: View sourcecode {"mode":"full","isActive":false} 이번 소스코드에서 눈여겨볼 코드는 $_REQUEST의 값을 검증하는 if문이다. strstr함수는 첫번째 문자열에 두번째 인자가 포함되어 있는지를 확인하고, 옵션에 따라 문자열을 반환하는 함수다. 따라서 $_REQUEST["passwd"]가 iloveyou를 포함하고 있어야하고, 10보다 커야 한다. 여기서 문자열과 정수를 비교하는데 10보다 커야한다는게 이상하게 느껴졌다...
[natas] Level 21 -> Level 22
2021. 7. 20. 16:13
Study/Web Hacking
: level 21 → level 22 http://natas22.natas.labs.overthewire.org natas22 화면이다. View sourcecode 링크 외에는 아무것도 없다. 소스코드를 확인해보자. natas22 View sourcecode {"mode":"full","isActive":false} 이번 코드에는 2가지의 if문이 존재한다. 두 if문은 모두 $_GET['revelio']의 존재유무를 확인하고 있다. 차이점은 첫 번째 if문에서는 $_SESSION['admin']을 검증하고 있다는 거다. $_SESSION['admin']=1이 아니라면 새로운 페이지로 redirection한다. 두 번째 if문만 보면 revelio를 get방식으로 전달만하면 natas23의 passw..
[natas] Level 20 -> Level 21
2021. 7. 17. 13:45
Study/Web Hacking
: level 20 → level 21 http://natas21.natas.labs.overthewire.org 위 사진은 natas21의 메인페이지다. 화면에 또다른 사이트로 가는 링크가 하나 보인다. 링크로 이동하기 전에 소스코드를 먼저 살펴보자. natas21 Note: this website is colocated with http://natas21-experimenter.natas.labs.overthewire.org View sourcecode {"mode":"full","isActive":false} natas21의 소스코드는 이전 level과는 달리 간략해보인다. 중간에 있는 print_credentials함수 하나만 실행되는 듯 하다. 해당 함수는 $_SESSION['admin']의 값..
[natas] Level 19 -> Level 20
2021. 7. 11. 05:54
Study/Web Hacking
: level 19 → level 20 http://natas20.natas.labs.overthewire.org natas20의 화면이다. natas21의 password를 알아내려면 admin으로 로그인해야 한다. 소스코드를 살펴보자. natas20
[natas] Level 18 -> Level 19
2021. 6. 27. 19:52
Study/Web Hacking
: level 18 → level 19 http://natas19.natas.labs.overthewire.org natas19는 natas18과 소스코드는 동일하다. 단, 세션 ID의 길이가 좀 더 길어졌다고 한다. 세션 ID의 형태가 어떻게 바뀌었는지 확인하기 위해 아래처럼 3개의 세션값을 받아왔다. 3232372d61646d696e 3337382d61646d696e 3237372d61646d696e 3개의 세션값을 받아온 결과 2d61646d696e는 반복되고, 앞은 3n형식으로 이루어져 있다는 것을 알게되었다. 이 패턴을 기반으로 natas20 password를 알아내보자. 이번에도 역시 자동화프로그램을 사용해서 2d61646d696e 앞의 숫자들을 조합하여 해결했다. 자동화프로그램은 다음과 같다..