目錄
- 開啟頁面
- 檢視頁面後,常規操作~掃一下目錄
- 發現幾個目錄可能有線索
robots.txt
config.txt 程式碼審計
<?php
class master
{
private $path;
private $name;
function __construct()
{
}
function stream_open($path)
{
if(!preg_match('/(.*)\/(.*)$/s',$path,$array,0,9))
return 1;
$a=$array[1];
parse_str($array[2],$array);
if(isset($array['path']))
{
$this->path=$array['path'];
}
else
return 1;
if(isset($array['name']))
{
$this->name=$array['name'];
}
else
return 1;
if($a==='upload')
{
return $this->upload($this->path,$this->name);
}
elseif($a==='search')
{
return $this->search($this->path,$this->name);
}
else
return 1;
}
function upload($path,$name)
{
if(!preg_match('/^uploads\/[a-z]{10}\/$/is',$path)||empty($_FILES[$name]['tmp_name']))
return 1;
$filename=$_FILES[$name]['name'];
echo $filename;
$file=file_get_contents($_FILES[$name]['tmp_name']);
$file=str_replace('<','!',$file);
$file=str_replace(urldecode('%03'),'!',$file);
$file=str_replace('"','!',$file);
$file=str_replace("'",'!',$file);
$file=str_replace('.','!',$file);
if(preg_match('/file:|http|pre|etc/is',$file))
{
echo 'illegalbbbbbb!';
return 1;
}
file_put_contents($path.$filename,$file);
file_put_contents($path.'user.jpg',$file);
echo 'upload success!';
return 1;
}
function search($path,$name)
{
if(!is_dir($path))
{
echo 'illegal!';
return 1;
}
$files=scandir($path);
echo '</br>';
foreach($files as $k=>$v)
{
if(str_ireplace($name,'',$v)!==$v)
{
echo $v.'</br>';
}
}
return 1;
}
function stream_eof()
{
return true;
}
function stream_read()
{
return '';
}
function stream_stat()
{
return '';
}
}
stream_wrapper_unregister('php');
stream_wrapper_unregister('phar');
stream_wrapper_unregister('zip');
stream_wrapper_register('master','master');
?>
還有sql.txt 資料庫的一些資訊
- 註冊登入後,訪問user.php
看到有檔案上傳,試著上傳一句馬,積分達到100分才可上傳檔案,通過刷推薦人達到,上傳後,訪問uploads路徑下上傳的檔案
發現程式碼被過濾,檢視config.txt,上傳的檔案內容過濾了<等符號
看了dalao的wp,說是這裡可以上傳.htaccess檔案,用.htaccess修改配置檔案
.htaccess相關介紹,在這裡
連結:
https://www.cnblogs.com/adforce/archive/2012/11/23/2784664.html
https://blog.csdn.net/cmzhuang/article/details/53537591
- 第一步,通過構造master偽協議來搜尋flag
php_value auto_append_file master://search/path=%2fhome%2f&name=flag
wp說的要把正斜槓編碼%2f傳入才行,原因未知
寫入.htaccess檔案後上傳,在上傳隨便一個php檔案,這樣訪問php檔案時就會執行
查到flag檔名
- 第二步,再修改.htaccess內容,包含檔名
php_value auto_append_file /home/hiahiahia_flag
再次上傳.htaccess檔案,訪問php
拿到flag:cyberpeace{1b39ac65b450f1a0b22e5b073c851347}
知識點:
1.程式碼審計
2.檔案包含
3.htaccess
結束語
自信至上 禁止低頭 我心裡有一簇迎著烈陽而生的花
作者:花城