Sh4n3e

[웹해킹][Natas] Natas10 문제 풀이 본문

Wargame/ NATAS

[웹해킹][Natas] Natas10 문제 풀이

sh4n3e 2017. 11. 27. 22:32

Natas10 문제를 풀어보도록하자. 이번 문제는 의외로 생각(?)을 해야하는 문제이다.

Natas9와 다를바 없어 보이지만, 약간 다르다...

[URL : http://natas10.natas.labs.overthewire.org]

문제는 아래와 같다.



뭐 소스를 봐달라고 하니 한번 봐야겠지?



이전 문제에서 설명했던 passthru()함수는 그대로 사용하고 있다. 하지만 앞에서 우리가 Command를 사용할때 다중 명령어를 수행할 수 있게하는 연산자인 ; | & 에 대해서 정규표현식을 통해 막아 놓은 상태이다. 만약 사용하게 되면 아래와 같은 메시지가 뜨게 된다.



그럼 우리는 이것을 어떻게 우회할 수 있을까? 고민에 빠지게 된다. 뭐 별거 있나? 어쨌거나 읽으면 된다. 어차피 들어가있는 암호는 영문자와 숫자로 섞여있을 것이다. 그럼 우리는 이것을 정규표현식을 가지고 찾아라! 하면된다.

input box에 이렇게 넣어보았다.

'[a-z]' /etc/natas_webpass/natas11

해당 명령어는 아래와 같은 Full command가 된다.


#grep -i '[a-z]' /etc/natas-webpass/natas11


결과는 아래와 같다.


숫자가 들어간 것으로 찾아내고 싶다면 이렇게 하면 된다.

#grep -i '[0-9]' /etc/natas-webpass/natas11



다음 문제로 갈 수 있는 열쇠를 찾았다. 다음으로 가보자.


/etc/natas_webpass/natas11:U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK


*추가첨언

우리는 이전 문제에서 저 natas의 위치를 알고 접근하였다. 하지만 모른다면 어떻게 접근해야할 것인가에 대해서 고민해봐야할 것이다.

이때는 grep의 명령어의 특성을 이용해보는 것도 좋은 방법중의 하나이다.

-r 옵션을 추가해서 사용하면, 다음과 같은 일이 벌어진다.


나는 저기에

-r '[0-9]' /etc/* 을 추가적으로 주고 다시 시도해보았다.


Full command는 아래와 같게 될 것이다.

grep -i -r '[0-9]' /etc/* dictionary.txt


해당 명령어는 파일안에 숫자가 포함되는 문자를 찾아줘 다음 경로로부터 recursive 하게 찾아줘! (재귀적으로 /etc/ 이하 디렉터리에 있는 모든파일을 뒤져보는 명령어인 것이다.)


결과는 아래와 같다.





Comments