URL : http://natas13.natas.labs.overthewire.org/ id : natas13 password : lW3jYRI02ZKDBb8VtQBU1f6eDRo6WEj9 (2023. 04 기준) 12번 문제의 연장선입니다. 이미지 파일만 허용한다고 하네요. 소스 코드를 살펴봅시다. 실제로 이미지 파일인지를 체크하는 부분이 추가로 구현되어 있습니다. 이 문제를 해결하기 위해서는 이미지 파일의 구조와 php 의 exif_imagetype() 함수의 작동원리를 알아야 합니다. jpeg 파일구조 exif_imagetype() 함수 원리 더보기 natas12 에서 만들어놓은 shell.php 웹쉘을 이용해서 문제를 해결해보겠습니다. 이미지 파일이 아니라고 필터링 당하네요. php 파일을 이미지..
URL : http://natas12.natas.labs.overthewire.org/ id : natas12 password : YWqo0pjpcXzSIl5NMAVxg12QxeC1w9QG (2023. 03 기준) 파일을 업로드할 수 있는 페이지가 나타납니다. 최대 1KB 이내의 파일을 올릴 수 있는 것 같네요 문제에는 JPEG 파일만 가능한 것 처럼 되어있지만 소스코드를 확인하면 JPEG 검증에 관한 부분은 존재하지 않습니다. 시범삼아 간단한 텍스트 "hello world" 가 기재된 1.txt 파일을 업로드해봅니다. 파일명이 랜덤문자.jpg 로 바뀌어서 업로드가 되었습니다. 해당 경로로 접속을 하니 업로드된 파일에 접근이 가능하는데 내용이 엉망인 jpeg 이기 때문에 특별히 더 살펴볼만한게 없네요 이..
URL : http://natas11.natas.labs.overthewire.org/ id : natas11 password : 1KFqoJXi6hRaPluAmk8ESDW4fSysRoIg (2023. 03 기준) RGB 값을 입력하면 백그라운드 컬러로 반영이 되는 페이지입니다. 뷰 소스코드를 사용해서 살펴보니 복잡하네요.. 쿠키를 사용하기 때문에 proxy 를 이용해야 하나 싶지만 결국 쿠키에 포함되는 data 필드는 showpassword 와 bgcolor 값을 받아와서 json_encode 와 xor_encrypt 와 base64_encode 로 변환된 값입니다. proxy 보다는 웹페이에 구현되어 있는 함수를 잘 해석하고 이를 추적할 수 있어야 합니다. 굉장히 까다롭고 어려운 문제입니다. 더보기 ..
URL : http://natas10.natas.labs.overthewire.org/ id : natas10 password : D44EcsFkLxPIkAAKLosx8z3hxX1Z4MCE (2023. 03 기준) 아까와 같은 패턴의 페이지인데 몇몇 특수문자들에 필터링을 적용했다고 합니다. 실제로 같은 방식으로 접근하니 input 값에 불법적인 문자가 포함되어 있다고 거부당하네요. 소스코드를 살펴보니 ; 을 포함한 몇몇 특수문자를 필터링 처리하고 있습니다. 기존의 방식으로는 ; 을 활용하여 하나의 명령을 완성하고 그 다음 명령을 진행해서 패스워드를 구했는데 이제는 같은 방식으로는 작동하지 않게 되었습니다. 특수문자 필터링을 우회하고 grep 명령어를 활용해 패스워드를 획득하려면 어떻게 해야할까요? 더보기..
URL : http://natas9.natas.labs.overthewire.org/ id : natas9 password : Sda6t0vkOPkM8YeOZkAGVhFoaplvlJFd (2023. 03 기준) 문자열을 입력하면 특정 결과를 리턴해주는 페이지입니다. 소스 코드를 살펴보니 grep 이라는 명령어가 눈에 띄네요 grep 은 리눅스, 유닉스에서 아주 흔하게 사용되는 명령어입니다. 해당 명령어가 생소하다면 아래 링크를 참고하세요. https://originalchoi.tistory.com/entry/grep-%EB%AA%85%EB%A0%B9%EC%96%B41 grep 명령어(1) grep은 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어입니다. 리눅스에서 가장 많이, 또 가장 유용하게..
URL : http://natas8.natas.labs.overthewire.org/ id : natas8 password :a6bZCNYwdKqN5cGP11ZdtPg0iImQQhAB (2023. 03 기준) natas6 에서 풀었던 유형인것 같네요? 소스코드를 보니 복잡해 보이는 무언가가 있습니다. php 코드를 알아야 풀 수 있는 문제입니다. 풀이를 살펴봅시다. 더보기 php 구문을 살펴보니 $encodedSecret 변수에 "3d3d516343746d4d6d6c315669563362" 값을 대입하네요. natas8 페이지에서 입력받은 $secret 값을 php 함수로 bin2hex(strrev(base64_encode($secret)) 처리한 최종 결과값이 아까 입력받은 $encodedSecret ..
URL : http://natas7.natas.labs.overthewire.org/ id : natas7 password : jmxSiH3SP6Sonf8dv66ng8v1cIEdjXWr (2023.03 기준) 새로운 유형의 문제입니다. home, about 페이지의 링크를 눌러보면 작동은 하는데 이다음에는 어떻게 해야할지 모르겠습니다. 페이지 소스를 살펴보니 hint 가 있네요. 문제를 풀어봅시다. 더보기 는 링크를 생성해서 새로운 페이지와 연결해주는 html 태그입니다. 즉 home 링크를 누르면 index.php?page=home 의 주소로 이동하게 되는거죠 웹 사이트는 그냥 웹서버내 폴더라고 생각해도 됩니다. 위 주소는 동일 폴더를 기주능로 작동해서 정확하게는 http://natas7.natas.l..
url : http://natas6.natas.labs.overthewire.org/ id : natas6 password : fOIvE0MDtPTgRhqmmvvAOt2EfXR6uQgR (2023.03 기준) 시크릿 코드를 입력하라는 문제입니다. 아무 문자나 입력하면 wrong secret 이라는 메세지가 리턴되네요 시크릿 코드를 알아내야 합니다. view sourcecode 버튼을 누르면 페이지를 구성하는 소스코드가 나타납니다. 마우스 우클릭으로 보는 소스코드와는 차이가 있습니다. 그냥 소스코드로 보면 중간에 끝나는 php 언어가 나타나지 않습니다. 왜 그럴까요? 우리가 웹페이지에 접속해서 보이는 화면은 내 PC(client) 가 웹서버에게 '너의 홈페이지에 방문하고 싶어' 라고 요청(request)를..
url : http://natas5.natas.labs.overthewire.org/ id : natas5 password : Z0NsrtIkJoKALBCLi5eqFfcRN82Au2oD (2023.03 기준) natas4 와 같은 방식으로 해결할 수 있는 문제입니다. 이번엔 로그인이 안되었다는 메세지가 보이네요 burp suite 같은 proxy tool 을 이용하면 간단하게 해결할 수 있습니다. 직접 문제를 해결해보고 잘 모르겠으면 풀이를 참고하세요 더보기 proxy 에서 intercept on 은 항상 하지 않아도 됩니다. 모든 데이터를 확인하기엔 너무 번거로우므로 평소엔 off 로 꺼두고 필요할때만 on 으로 변경해서 사용하세요 natas4 에는 보이지 않던 cookie 라는 필드에 loggedin..
url : http://natas4.natas.labs.overthewire.org/ id : natas4 password : tKOcJIbzM4lTs8hbCmzn5Zr4434fGZQm (2023. 03 기준) 드디어! 새로운 유형의 문제를 만나게 되었습니다. 접근이 거부됨. natas5 주소에서 넘어온 허가자만 접속가능함. 이라네요? refresh 버튼이 있으니까 눌러봅시다. 메세지가 약간 바뀌었습니다. 원래 "" 로 처리되었던 부분에 natas4 주소가 들어가있네요. 아 그러니까 natas5 에서 natas4 로 접근만 가능하고, 저는 natas4 에서 natas4 로 접근해서 거부당한 상황입니다. 그런데 natas5 로 패스워드는 어떻게 얻죠??? 프락시 툴을 사용하면 가능합니다. 프락시에 대한 설..
- Total
- Today
- Yesterday
- 웹보안
- java
- over the wire
- 압축파일
- Natas
- 리눅스
- natas7
- bz2
- tar
- nc
- 웹보안공부
- ssh
- OpenSSL
- tr
- Linux
- Encode
- gz
- 32bit
- X32
- solution
- BASE64
- Bandit
- 리터럴
- SSL
- Strings
- OverTheWire
- HTTPS
- 풀이
- find
- grep
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |