위는 Challenge 36의 초기 화면이다.

 

" 현재 디렉터리에서 vi editor를 사용하여 index.php 파일을 편집하는 동안 정전으로 인해 소스 코드가 사라졌습니다.
제가 회복할 수 있도록 도와주세요. "

 

vi editor가 정상적으로 종료되지 않았을 때 디렉터리에 숨김파일로 swp파일을 생성한다고 한다.

이는 파일이름.파일확장자.swp 의 형태로 나타난다.

.index.php.swp를 입력해주었더니 파일이 하나 다운로드 되었다.

 

메모장으로 이 파일을 열어주었고, FLAG를 찾을 수 있었다.

 

'Web Hacking > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Challenge 23  (0) 2022.11.12
[webhacking.kr] Challenge 47  (0) 2022.11.06
[webhacking.kr] Challenge 27  (0) 2022.10.09
[webhacking.kr] Challenge 25  (0) 2022.10.02
[webhacking.kr] Challenge 19  (0) 2022.09.24

id와 pw가 preg_match함수 통해 prob _ . ' 을 필터링하고 있다.

특히, 싱글쿼터를 우회해야 하는 것이 중요하다.

 

싱글쿼터를 우회하기 위해서는 역슬래시(\)를 이용해줄 수 있다.

'\'을 사용해 이 다음에 오는 문자가 특수 문자임을 알 수 있다.

 

id에 역슬래시를 넣어주고, pw 값을 항상 참으로 만들어주면 된다. 따라서 아래와 같이 입력해주었다.

id=\&pw= || 1=1%23

 

'Web Hacking > Lord of SQL Injection' 카테고리의 다른 글

[Lord of SQL Injection] assassin  (0) 2022.11.12
[Lord of SQL Injection] Giant  (0) 2022.11.06
[Lord of SQL Injection] Bugbear  (0) 2022.10.09
[Lord of SQL Injection] darkknight  (0) 2022.10.02
[Lord of SQL Injection] Golem  (0) 2022.09.24

위는 natas24의 초기화면이다.

 

아래 코드는 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": "natas24", "pass": "<censored>" };</script></head>
<body>
<h1>natas24</h1>
<div id="content">

Password:
<form name="input" method="get">
    <input type="text" name="passwd" size=20>
    <input type="submit" value="Login">
</form>

<?php
    if(array_key_exists("passwd",$_REQUEST)){
        if(!strcmp($_REQUEST["passwd"],"<censored>")){
            echo "<br>The credentials for the next level are:<br>";
            echo "<pre>Username: natas25 Password: <censored></pre>";
        }
        else{
            echo "<br>Wrong!<br>";
        }
    }
    // morla / 10111
?>  
<div id="viewsource"><a href="index-source.html">View sourcecode</a></div>
</div>
</body>
</html>
strcmp(문자열1, 문자열2)
문자열을 비교했을 때 문자열이 일치하면 0(true), 일치하지 않으면 1(false)를 반환, 대소문자를 구분

비밀번호와 $_REQUEST["passwd"]가 일치해야 비밀번호를 구할 수 있다.

 

strcmp 함수는 문자열 일치하면 0을 반환하는데, 배열과 비교하게 되면 무조건 0을 반환한다고 한다.

이를 적용해보자.

 

입력칸에 passwd[]= 을 입력해주었다.

이를 통해 문제를 해결할 수 있었다.

|O9QD9DZBDq1YpswiTM5oqMDaOtuZtAcx

'Web Hacking > Natas' 카테고리의 다른 글

[Natas] Level 22 > Level 23  (0) 2022.11.12
[Natas] Level 21 > Level 22  (0) 2022.11.05
[Natas] Level 20 > Level 21  (0) 2022.10.09
[Natas] Level 19 > Level 20  (0) 2022.10.02
[Natas] Level 18 > Level 19  (0) 2022.09.24

위는 Challenge 23의 초기 화면이다.

script 태그를 주입하는 것이 미션이라고 한다.

 

<script>alert(1);</script>를 입력하고 제출버튼을 눌러주었더니 no hack이라는 문구가 출력되었다.

그리고 url이 다음과 같이 변경되었다.

index.php?code=%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E

 

몇 개 입력을 해보았더니 문자를 2개 이상 붙여 입력해주면 no hack이라는 문구가 떴다.

 

연속적인 문자열 입력을 막기 위해 null 바이트 (%00)을 글자 사이마다 넣어서 입력해보았다.

index.php?code=%3C%00s%00c%00r%00i%00p%00t%00%3E%00a%00l%00e%00r%00t%00%28%001%00%29%00%3B%00%3C%00%2F%00s%00c%00r%00i%00p%00t%00%3E
 
이를 url에 입력해주었더니 성공할 수 있었다.

'Web Hacking > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Challenge 36  (1) 2022.11.19
[webhacking.kr] Challenge 47  (0) 2022.11.06
[webhacking.kr] Challenge 27  (0) 2022.10.09
[webhacking.kr] Challenge 25  (0) 2022.10.02
[webhacking.kr] Challenge 19  (0) 2022.09.24

+ Recent posts