- 資訊首頁(yè) > 網(wǎng)絡(luò )安全 >
- PHP框架Laravel最新SQL注入漏洞形成的原因
本篇內容主要講解“PHP框架Laravel最新SQL注入漏洞形成的原因”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強。下面就讓小編來(lái)帶大家學(xué)習“PHP框架Laravel最新SQL注入漏洞形成的原因”吧!
PHP知名開(kāi)發(fā)框架Laravel,前幾天在官方博客通報了一個(gè)高危SQL注入漏洞,這里簡(jiǎn)單分析下。
首先,這個(gè)漏洞屬于網(wǎng)站coding寫(xiě)法不規范,官方給了提示:
但官方還是做了修補,升級最新版本V5.8.7可修復。
我們先定位下這里:
Illuminate\Validation\Rule
官方推薦的寫(xiě)法是:
Rule::unique('users')->ignore($id),
如果網(wǎng)站coding沒(méi)有預先對$id的值做處理時(shí),用戶(hù)可以直接傳遞惡意數據給ignore函數,就會(huì )導致SQL注入。
我們來(lái)跟一下函數:
\Illuminate\Validation\Rules\Unique.phpclass Unique{ ...public function ignore($id, $idColumn = null){if ($id instanceof Model) {return $this->ignoreModel($id, $idColumn); }$this->ignore = $id;$this->idColumn = $idColumn ?? 'id';return $this; }
這里我們不考慮把$id寫(xiě)成實(shí)例的情況,$id是用戶(hù)可控的話(huà),$idColumn直接寫(xiě)為空即可,最后賦值情況如下:
$this->ignore = $id;$this->idColumn = 'id';
如果網(wǎng)站代碼類(lèi)似這樣構造的話(huà),黑客輸入的值就屬于可控狀態(tài):
$id = $request->input('id');
最后我們會(huì )走到這兒:
Illuminate\Validation\Rules\Unique.phppublic function __toString(){ ... ... }
我們看下關(guān)鍵的代碼變更:
Illuminate\Validation\Rules\Unique.php V5.8.7【最新版】public function __toString(){$this->ignore ? '"'.addslashes($this->ignore).'"' : 'NULL', }
Illuminate\Validation\Rules\Unique.php V5.8.4public function __toString(){$this->ignore ? '"'.$this->ignore.'"' : 'NULL', }
這里最新的代碼v5.8.7,把$this->ignore直接給addslashes了,以前這里是沒(méi)有防護的。
有趣的是,筆者對比了下diff,期間官方還試圖對其他引用的地方進(jìn)行過(guò)濾。最后還是在__toString處,進(jìn)行了統一的過(guò)濾。
最后提一句,后面的代碼會(huì )進(jìn)入DatabaseRule,進(jìn)行后續SQL規則匹配。
Illuminate\Validation\Rules\DatabaseRule.php
這之后就沒(méi)有再進(jìn)一步處理,接著(zhù)形成了SQL注入。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站