一個關於SQL隱碼攻擊的簡單例子
什麼是SQL隱碼攻擊?
SQL隱碼攻擊是利用某些資料庫的外部介面將使用者資料插入到資料庫的操作語言中,從而達到入侵資料庫乃至作業系統的目的。
資料庫有一張user表;表定義如下:
CREATE TABLE `user` (
`id` char(35) NOT NULL,
`mobile_num` char(20) NOT NULL,
`user_name` char(30) DEFAULT NULL,
`password` char(100) NOT NULL,
`has_card` tinyint(1) NOT NULL DEFAULT '0',
`salt` char(15) DEFAULT NULL,
`token` char(65) DEFAULT NULL,
`is_valid` tinyint(4) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `mobile_num_UNIQUE` (`mobile_num`),
UNIQUE KEY `user_name_UNIQUE` (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
表結構如下:
表中有這麼1行資料:
進行普通登入操作時候,會講賬號和密碼作為引數傳進去,比如:
SELECT *
FROM USER
WHERE user_name=' '
AND PASSWORD=' ';
普通使用者會進行正常的輸入,這樣會得到正確的結果,如下:
SELECT *
FROM USER
WHERE user_name='username6'
AND PASSWORD='2d1e482bc247a2540cfe1679f93365f8';
但惡意使用者會根據MySQL的特性,只要知道使用者名稱,無需知道密碼就能查詢到資料,比如:
SELECT *
FROM USER
WHERE user_name='username6' OR '1=1' AND PASSWORD='222';
即,使用者在username的空格上只要填上:username6' OR '1=1
;在password的空格上隨便填寫一串資料即可。(注意’1=1’只是一個varchar)
那如何去防止SQL隱碼攻擊呢?
在JAVA中可以採用預編譯的方法,儘量不要採用連線SQL語句的方法。例如:
String sql = "select * from user u where u.username=? and u.password=?";
preparedstatement ps = connection.preparestatement(sql);
ps.setString(1, "username5");
ps.setString(2, "aaa")
或者,自定義函式把前端資料的引數進行過濾,(1)拒絕已知的非法資料;(2)只接受已知的正確輸入
相關文章
- SQL隱碼攻擊的例子SQL
- 一次簡單的SQL隱碼攻擊繞WAFSQL
- SQL隱碼攻擊(一)SQL
- SQL隱碼攻擊關聯分析SQL
- SQL隱碼攻擊SQL
- 六個建議防止SQL隱碼攻擊式攻擊SQL
- 【SQL Server】--SQL隱碼攻擊SQLServer
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-SQL隱碼攻擊技術-語句注入SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-SQL隱碼攻擊技術-語句修改SQL
- MYSQL SQL隱碼攻擊MySql
- 【SQL隱碼攻擊原理】SQL
- 防止SQL隱碼攻擊SQL
- SQL隱碼攻擊(pikachu)SQL
- SQL隱碼攻擊方法SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-防衛SQL隱碼攻擊-驗證檢查SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-防衛SQL隱碼攻擊-繫結變數SQL變數
- ASP上兩個防止SQL隱碼攻擊式攻擊FunctionSQLFunction
- SQL隱碼攻擊原理是什麼?如何防範SQL隱碼攻擊?SQL
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-防衛SQL隱碼攻擊-顯式格式化模型SQL模型
- 反恐精英之動態SQL和SQL隱碼攻擊-SQL隱碼攻擊-SQL隱碼攻擊技術-資料型別轉換SQL資料型別
- SQL隱碼攻擊式攻擊掃描器SQL
- 【網路安全】什麼是SQL隱碼攻擊漏洞?SQL隱碼攻擊的特點!SQL
- SQL隱碼攻擊語句SQL
- pikachu-SQL隱碼攻擊SQL
- SQL隱碼攻擊導圖SQL
- SQL隱碼攻擊問題SQL
- ZMLCMS-SQL隱碼攻擊SQL
- SQL隱碼攻擊演練SQL
- 預防SQL隱碼攻擊SQL
- SQL隱碼攻擊總結SQL
- SQL隱碼攻擊點搜尋關鍵字SQL
- SQL隱碼攻擊原理及程式碼分析(一)SQL
- DVWA-SQL Injection(SQL隱碼攻擊)SQL
- 攻擊JavaWeb應用[3]-SQL隱碼攻擊[1]JavaWebSQL
- 攻擊JavaWeb應用[4]-SQL隱碼攻擊[2]JavaWebSQL
- 刪除SQL隱碼攻擊的程式碼SQL
- Less靶場SQL隱碼攻擊通關寶典SQL