컴퓨터에 대해서 이제 막 배우기 시작한 학생들을 대상으로 인터넷 동작 원리에 관한 실습 5차시를 진행합니다. 첫번째는 간단한 html 문서 만들어 보기입니다. 메모장에 아래 내용을 기입하고 홈페이지.html 이라는 파일로 저장합니다. 그냥 [홈페이지] 라는 파일로 저장하면 단순 메모장 파일로 저장이 되니 주의하세요 모든파일(*.*)을 선택하고 [홈페이지.html] 식으로 저장해줘야 합니다. 그러면 웹브라우저와 호환이 가능한 html 문서형식으로 파일이 잘 저장됩니다. 이 파일을 실행하려면 더블 클릭을 하면 됩니다. 지금 윈도우 환경에서는 MS edge 브라우저가 자동으로 실행이 되네요. html 원본 문서를 몇번 더 다듬어 보도록 하겠습니다. 태그와 태그의 작동을 확인할 수 있습니다. 태그의 활용을 확인..
Q) 비대칭키 암호화 방식에 대해 설명해줘 비대칭키 암호화 방식은 암호화와 복호화에 사용되는 키가 서로 다른 암호화 방식입니다. 이 방식에서는 공개키와 개인키라는 두 개의 키를 사용합니다. 공개키는 누구나 알 수 있지만 개인키는 소유자만 가지고 있습니다. 공개키와 개인키는 서로 연관되어 있으며, 공개키로 암호화된 데이터는 개인키로만 복호화가 가능합니다. 따라서, 공개키는 자유롭게 공개해도 데이터를 안전하게 보호할 수 있습니다. 비대칭키 암호화 방식은 다음과 같은 원리로 동작합니다. 1. 송신자는 수신자의 공개키를 이용하여 데이터를 암호화합니다. 공개키는 네트워크를 통해 자유롭게 전달될 수 있습니다. 2. 수신자는 자신의 개인키를 이용하여 암호화된 데이터를 복호화합니다. 개인키는 소유자만 가지고 있으므로,..
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)를..
- Total
- Today
- Yesterday
- tr
- over the wire
- Linux
- 압축파일
- 웹보안공부
- tar
- gz
- Strings
- OverTheWire
- natas7
- solution
- 웹보안
- 리눅스
- bz2
- Natas
- find
- nc
- BASE64
- 리터럴
- OpenSSL
- ssh
- Bandit
- Encode
- java
- 풀이
- X32
- 32bit
- SSL
- grep
- HTTPS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |