BUU的三道文件包含題


BUU LFI COURSE 1

本地文件包含漏洞

源碼

<?php
/**
 * Created by PhpStorm.
 * User: jinzhao
 * Date: 2019/7/9
 * Time: 7:07 AM
 */

highlight_file(__FILE__);

if(isset($_GET['file'])) {
    $str = $_GET['file'];

    include $_GET['file'];
}

LFI漏洞原理

文件包含漏洞的產生原因是通過引入文件時,由於傳入的文件名沒有經過合理的校驗,或者校驗被繞過,從而操作了預想之外的文件,就可能導致意外的文件泄露甚至惡意代碼注入。當被包含的文件在服務器本地時,就形成的本地文件包含漏洞

?file=/flag

得到flag

[BSidesCTF 2020]Had a bad day

php偽協議讀一下,發現后端會給你自動加上php

得到源碼

              <?php
				$file = $_GET['category'];

				if(isset($file))
				{
					if( strpos( $file, "woofers" ) !==  false || strpos( $file, "meowers" ) !==  false || strpos( $file, "index")){
						include ($file . '.php');
					}
					else{
						echo "Sorry, we currently only support woofers and meowers.";
					}
				}
				?>

看wp知道php://filter可以再套一層協議

php://filter/read=convert.base64-encode/woofers/resource=flag

base64解碼得到flag

[Windows]LFI2019

這道題整不明白。一開始沒掛vp*的時候三個button都沒跳出來。。。掛了之后點進include和upload里put()也沒反應。。不知道怎么做了。

看了wp發現這道題是用不含數字和字母的webshell。

  • 思路一:兩個非字母、數字的字符進行異或得到結果

  • 思路二:利用位運算里的取反,利用UTF-8的某個漢字

  • 思路三:借助PHP的一個小技巧,也就是說,'a'++ => 'b''b'++ => 'c'... 所以,我們只要能拿到一個變量,其值為a,通過自增操作即可獲得a-z中所有字符。

    那么,如何拿到一個值為字符串'a'的變量呢?

    巧了,數組(Array)的第一個字母就是大寫A,而且第4個字母是小寫a。也就是說,我們可以同時拿到小寫和大寫A,等於我們就可以拿到a-z和A-Z的所有字母。

    在PHP中,如果強制連接數組和字符串的話,數組將被轉換成字符串,其值為Array

    之后做出來我再補上吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM