1. 程式人生 > >CTF-web XMAN-2018 第七天 web 檔案包含與cookie會話

CTF-web XMAN-2018 第七天 web 檔案包含與cookie會話

優先看一看有沒有一些危險的函式,這樣很可能存在命令執行。 反引號可以直接執行系統命令。

不是php的話,會當做文字檔案顯示,還可以包含一個一句話木馬(對檔案型別沒有要求)

 

檔案包含作用

重用程式碼,相當於c語言標頭檔案的感覺。常見的幾個檔案包含函式,require沒有檔案就報錯,include會繼續執行

 

大佬例題

 http://202.112.51.184:8007

檔案上傳 

提示只能傳送影象,而且是jpg和gif,僅為伺服器端的副檔名檢測,本地無檢測,對內容沒有要求。直接弄一個一句話木馬,修改為jpg副檔名,上傳成功,提示我們id。

記住id找儲存的地址

發現問題沒,上邊那個地址就是意思有這個目錄,我們將檔案id弄上去

師傅說使用zip協議來執行我們的命令???、

 

老師提醒:

發現有一個引數在路徑後邊?page= ,那麼我們利用偽協議可以得到包含的檔案

http://202.112.51.184:8004/index.php?page=php://filter/convert.base64-encode/resource=index
 PD9waHANCglyZXF1aXJlKCJoZWFkZXIucGhwIik7DQoJJHBhZ2U9IiI7DQoJaWYgKGlzc2V0KCRfR0VUWydwYWdlJ10pKQ0KCQkkcGFnZT0kX0dFVFsncGFnZSddLiIucGhwIjsNCgllbHNlDQoJCSRwYWdlPSJtYWluLnBocCI7DQoJaW5jbHVkZSgkcGFnZSk7DQo/Pg==
    
    解碼,後可以得到原始碼
對副檔名白名單過濾,對MME型別進行檢測 =(content-type)

老師傅加強判斷版本(8007)

再次直接上傳xxx.jpg,加了一個伺服器MMI類判斷,通過標頭檔案的方式判斷檔案型別。

繞過:

加一個檔案頭就可以了,然而大師傅證明不能隨意加,暫時怎麼弄也不知道

大師傅例題2

 http://202.112.51.184:9005

同樣的一個網站,但是存在一些問題

依舊先套路得到原始碼

<?php
	require("header.php");
	$page="";
	if (isset($_GET['page']))
	{
		$page=strtolower($_GET['page']);
		$page=str_replace("#", "", $page);
		$page=str_replace("'", "", $page);
		$page=$_GET['page'].".php";
	}
	else
		$page="main.php";
	include($page);
?>
把# ‘ 都過濾了,然而也用不上啊...跟上一個沒啥區別
測試直接上傳一句話木馬a.jpg,可以上傳,得到ID,但是在uploads竟然沒有這個檔案,,,應該是被過濾了。

我們只好拼接一下二進位制了,將馬接在jpg後面。

copy /b a.jpg+b.jpg c.jpg   a作為主檔案

 

copy /b a.jpg+b.jpg c.jpg   a作為主檔案

將檔案上傳進去,也是不可以的,因為是採用了類似於檔案重寫的原理,將影象檔案的影象重新寫到另一個檔案,正好解釋了直接傳一句話木馬檔案就不存在了,拼接也不會有用,因為只寫了影象的部分,木馬的部分也不見了。那麼怎麼辦呢