一、題目




這里看兩個頁面的源代碼都沒有線索
回到題目Include
加之url里有 /?file=flag.php
容易想到檔案包含漏洞
二、解題
1. php:// 用來訪問輸入輸出流,有兩個常用的子協議
(1)php://filter 用來過濾篩選檔案
php語法檔案被include成功時,可直接執行命令,而非php語法檔案被include失敗時,會直接輸出原始碼內容
因此我們可以先通過base64編碼的方法傳入include()函式,這樣在不會被識別為php語法檔案的情況下可以輸出內容
(2) php://input
將要執行的php代碼·直接用POST方式上傳
一般用BP抓包配合操作
url中構造/?file=php://input
在Repeater里面空一行寫php代碼就可以運行
2. 這里用 hackbar 操作

load url,在Using wrappers里面找php://filter那一串
構造payload
/?file=php://filter/read=convert base64-encode/source=flag.php

因為我們在payload里面base64編碼過一次,所以把這一串解碼后得到flag

三、總結
1. 檔案包含題里面,如果直接構造url關鍵字容易被過濾,如這道題根頁面源代碼里面用了stristr()函式檢測
這時可以考慮大小寫繞過或者其他方法
2. 題目一般都和考點有關,多聯想聯想
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/319632.html
標籤:其他
上一篇:第一周學習計劃
下一篇:Vulhub漏洞系列:Weblogic WLS Core Components 反序列化命令執行漏洞(CVE-2018-2628)
