티스토리 뷰
URL : http://natas10.natas.labs.overthewire.org/
id : natas10
password : D44EcsFkLxPIkAAKLosx8z3hxX1Z4MCE
(2023. 03 기준)
아까와 같은 패턴의 페이지인데 몇몇 특수문자들에 필터링을 적용했다고 합니다.
실제로 같은 방식으로 접근하니 input 값에 불법적인 문자가 포함되어 있다고 거부당하네요.
소스코드를 살펴보니 ; 을 포함한 몇몇 특수문자를 필터링 처리하고 있습니다.
기존의 방식으로는 ; 을 활용하여 하나의 명령을 완성하고 그 다음 명령을 진행해서 패스워드를 구했는데
이제는 같은 방식으로는 작동하지 않게 되었습니다.
특수문자 필터링을 우회하고 grep 명령어를 활용해 패스워드를 획득하려면 어떻게 해야할까요?
힌트는 grep 명령어는 grep [문자열패턴] [파일1] [파일2] 식으로
복수 파일에 대해 작동이 가능하다는 부분입니다.
즉 기존 문제에 구현되어 있는 grep -i $key dictionary.txt 에서
$key 문자열에 추가로 검색을 할 파일명을 기재해주면 됩니다.
게다가 우리는 natas10 패스워드가 저장되어 있는 경로를 알고 있으므로
애초에 input text 박스에 aa /etc/natas_webpass/natas11 식으로 입력을 해주면
서버 내부적으로 작동하는 로직은
grep -i aa /etc/natas_webpass/natas11 dictionary.txt 으로 완성됩니다.
; 등을 사용하지 않고 /etc/natas_webpass/natas11 과 dictionary.txt 파일 모두에서
aa 문자열을 찾는 명령으로 변조되는 거죠.
하지만 /etc/natas_webpass/natas11 에 대해 aa 문자열을 검색했음에도
실제 패스워드 파일에 aa 문자열이 포함되지 않아 원하는 결과를 얻어내지 못했습니다.
이 경우에는 grep 으로 찾고자 하는 문자열 aa 대신 . 로 대체를 해주면
모든 문자열을 검색해주는 의미가 되기때문에 두개 파일의 내용을 모두 확인할 수 있습니다.
natas 사이트에서 통하는 취약점은 실제로 아주 오래전에는 통했을지도 몰라도
지금은 먹히지 않는게 대부분입니다.
혹시라도 natas 에서 배운 기법을 활용해서 현실세계에서 웹취약점을 탐색하는 행위는
하지 않기를 강력하게 권고합니다.
natas 는 보안 학습을 위해 제작된 사이트로 취약점 탐색 행위를 하는것을 허용하게끔 설계되었고
그 영향력이 제한적이지만 동일한 방식으로 현실에 존재하는 개인/상업 사이트에 취약점 점검을 한다면
여러분은 법적인 책임을 지게 될 수 있습니다.
국내외 대부분의 사이트들은 침입탐지 시스템 등을 운영하고 이상 탐색 행위를 추적할 수 있습니다.
이곳에서는 웹보안에 대한 기본적인 개념을 익히는데 만족하고
그 외 다양한 시도는 사전 협의된 테스트 환경이나 본인이 감당할 수 있는 실험 환경 등에서만
진행하길 바랍니다.
'수업 노트 > natas' 카테고리의 다른 글
natas12 solution (0) | 2023.04.19 |
---|---|
natas11 solution (0) | 2023.04.09 |
natas9 solution (0) | 2023.03.13 |
natas8 solution (0) | 2022.05.24 |
natas7 solution (0) | 2022.05.17 |
- Total
- Today
- Yesterday
- 리눅스
- 풀이
- gz
- tar
- Strings
- natas7
- 웹보안
- find
- tr
- X32
- grep
- HTTPS
- OpenSSL
- Natas
- Encode
- OverTheWire
- 32bit
- solution
- Bandit
- over the wire
- 리터럴
- java
- BASE64
- bz2
- nc
- Linux
- 압축파일
- SSL
- ssh
- 웹보안공부
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |