剩下的挖煤天朝的題暫時作不下去了。。。學長們又推薦了一個新平臺,就去水了水。php
首先,說第一道學長給了WP才知道是最新漏洞。。。。。。
百度以後發現,這個phpcms漏洞出現的頻率真的。多啊
最近的這個漏洞是在註冊頁面,連登陸都不用就能夠getshell,並且聽說已經流傳了半年才爆出這個漏洞。。。orz.
大佬們真的可怕。先復現漏洞得flag,打開火狐的神器hackbar
賦值content字段傳一句話木馬shell
成功截圖
windows
而後拿出菜刀,getshell,flag在根目錄網絡
搜索來源的時候,也試着去理解其中的原理,根據表哥們的總結寫一點
從下面的源代碼咱們能看出,從第一句咱們能知道註冊用戶名是不能重複的,因此post一次若是出錯,那麼就須要修改用戶名
其次,提交內容的後綴是受限定的,gif|jpg|jpeg|bmp|png
最後content字段若是有圖片,必須是網址形式,並且。。。用了一個遠程圖片copy到本地的函數函數
if($this->fields[$field]['isunique']&&$this->db->get_one(array($field=>$value),$field)&&ROUTE_A!= 'edit') showmessage("$name 的值不得重複!"); function download($field, $value,$watermark='0',$ext='gif|jpg|jpeg|bmp|png',$absurl='',$basehref='') if(!preg_match_all("/(href|src)=([\"|']?)([^ \"'>]+\.($ext))\\2/i", $string, $matches)) return $value;
打開連接就是這段代碼,牽涉到file_get_contents函數和extract($_GET)
file_get_contents函數官方文檔是下面的解釋,很明顯變量&fn應該是個url或者文件
若是按照之前的作法,能夠利用讀取不到文件變量&f爲空來賦值,ac=&fn=1post
可是這道題有限制&ac非空,因此通過搜搜搜後,咱們能夠利用php輸入流php://input函數
php://input能夠讀取未驗證的post數據,正好能夠構造這個payload,以下圖
this
<?php highlight_file('2.php'); $key='KEY{********************************}'; $IM= preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match); if( $IM ){ die('key is: '.$key); } ?>
我記得挖煤天朝也有一道這樣的題,彷佛下架了。。。。
很明顯是正則,我雖然如今還不會,可是我會暫時百度啊聽說30分鐘入門正則
傳值id=keykeykeykeykeykeykey:/a/aakeya:]便可url
23333333333333333333333.。。。。這兩天空閒時間一直在搭建虛擬滲透環境,真的浪費大量時間啊,還搞的不是很利落。開發的任務還沒作多少。。。。
就記錄兩個,獲得的教訓吧spa
首先對於虛擬機,之前我一直沒成功全屏,和實體機之間的複製粘貼文件,非常使人頭疼和麻煩
之前航海的學長說了快捷鍵,可是仍然不能全屏啊,今天我才知道是沒安裝VMware Tools........net
其次,若是想要windows2003和實體機進行通訊,是須要將虛擬機得鏈接方式改成橋接,而且切換網卡,能夠在虛擬網絡編輯中編輯。