安基網 首頁 安全 Web安全 查看內容

Laravel 5.8 SQL 注入漏洞詳解

2019-6-8 08:51| 投稿: xiaotiger |來自: 互聯網


免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!

摘要: 0x01 背景最近研究Laravel框架的代碼審計,因為3月份爆出過一個ignore函數的一個漏洞,網上找了些文章,看了下, 自己搭建環境測試,一直沒有成功, 自己就詳細的審計了一遍0x02 laravel介紹Laravel 在全球范圍內有著眾多用戶。該框架在國外很受歡迎,國外用戶量遠大于國內。當然,國內也有大型企業使用該框 ...

0x01 背景

最近研究Laravel框架的代碼審計,因為3月份爆出過一個ignore函數的一個漏洞,網上找了些文章,看了下, 自己搭建環境測試,一直沒有成功, 自己就詳細的審計了一遍


0x02 laravel介紹

Laravel 在全球范圍內有著眾多用戶。該框架在國外很受歡迎,國外用戶量遠大于國內。當然,國內也有大型企業使用該框架。此次曝出的 SQL 注入漏洞,并不是太通用,需要一定的條件。[直接復制粘貼]


0x03 漏洞測試環境搭建

數據庫內容

代碼測試:

$validator = Validator::make($request->input(), [
'username' => [
'required',
Rule::unique("users")->ignore($request->input("id"),$request->input("column"))
],
]);
dump($validator->fails());

路由定義:

Route::any("index","[email protected]");

訪問測試:

理解這個漏洞之前, 需要了解laravel的自動驗證機制

Rule::unique("users")->ignore($request->input("id"),$request->input("column")) 這種寫法不常見,常見的是 Rule::unique("users")->ignore($request->input("id")) 這種寫法, 后面的變量如果不寫,默認是id, 寫上去代表自定義查詢字段.

我們可以把測試環境更改為 Rule::unique("users")->ignore($request->input("id")) 然后進行代碼跟蹤調試


0x04 代碼跟蹤調試

參數提交內容

?username=admin&id=2

直接下斷點

跟蹤進入, 注意幾個關鍵點函數即可

關鍵點1:

ignore函數

直接對ignore 和 idColumn進行賦值 如果idColumn沒有傳入,默認為id ,然后進入另一個 toString方法

漏洞也是主要對這里進行修復

修復后的代碼

laravel社區對這種修復,討論很多, 認為addslashes 無法根本防止注入, 因為ignore的有些寫法還是會引起問題.

后面繼續跟蹤調試, 就會進入 laravel的PDO操作處理

跟蹤的出來的sql語句為:

后續就是進行 PDO查詢操作, 因為沒有帶入exp,所以會正常執行


0x05 注入演示

因為如果是pdo操作, 注入通常是對鍵名 進行帶入, 如果帶入進鍵值的話, 沒有任何效果, 這里關鍵的突破點就是 ignore函數中的 idColumn 變量, 以及 toString() 在處理 ignore中的處理方式

講傳入的id參數修改為: 1","liusha","

url為:

這樣傳入id,就會對 idColumn 進行覆蓋, 默認是id, 現在column 就變為 liusha, 如果這個字段不存在表中 , 這個鍵名 就會對帶入PDO查詢操作中,導致報錯.

后續生成的sql :

sql的鍵值帶入了我們出入的 liusha 非法字段

最后導致報錯

提示不存在 liusha這個column.

ok,演示完成.


0x06 總結

這個漏洞是今年3月份爆出來的, 實際開發中, ignore函數用的比較少, laravel的代碼審計 , 大部分還是審計一些開發作者在開發中的一些不規范寫法導致的漏洞.



小編推薦:欲學習電腦技術、系統維護、網絡管理、編程開發和安全攻防等高端IT技術,請 點擊這里 注冊賬號,公開課頻道價值萬元IT培訓教程免費學,讓您少走彎路、事半功倍,好工作升職加薪!

本文出自:https://www.toutiao.com/a6699339786886316556/

免責聲明:本站系公益性非盈利IT技術普及網,本文由投稿者轉載自互聯網的公開文章,文末均已注明出處,其內容和圖片版權歸原網站或作者所有,文中所述不代表本站觀點,若有無意侵權或轉載不當之處請從網站右下角聯系我們處理,謝謝合作!


鮮花

握手

雷人
1

路過

雞蛋

剛表態過的朋友 (1 人)

相關閱讀

最新評論

 最新
返回頂部
创业如何赚钱 今日大盘指数上证指数 宁夏11选五遗漏数据 北京11选5专家预测 快乐10分口诀开奖 牛彩网3d图谜九 工薪族理财投资什么好 内蒙快三开奖走势图 内蒙体彩11选五开奖果 快乐双彩玩法说明 vv时时彩平台下载 幸运28在线预测55预测 北京pk赛车稳赚投注 今天深圳风釆开奖结果 云南十一选五基本走势 甘肃11选5网上可以买吗 贵州十一选五今天预测