国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 利用SQL注入漏洞登錄后臺的實現方法

利用SQL注入漏洞登錄后臺的實現方法

2019-11-28 15:29WEB開發_小飛 Mysql

工作需要,得好好補習下關于WEB安全方面的相關知識,故撰此文,權當總結,別無它意。讀這篇文章,我假設讀者有過寫SQL語句的經歷,或者能看得懂SQL語句

早在02年,國外關于SQL注入漏洞的技術文章已經很多,而國內在05年左右才開始的。 
  如今,談SQL注入漏洞是否已是明日黃花,國內大大小小的網站都已經補上漏洞。但,百密必有一疏,入侵是偶然的,但安全絕對不是必然的。 
  前些天,網上傳得沸沸揚揚的“拖庫”事件給我們敲響了安全警鐘。 
  在開發網站的時候,出于安全考慮,需要過濾從頁面傳遞過來的字符。通常,用戶可以通過以下接口調用數據庫的內容:URL地址欄、登陸界面、留言板、搜索框等。這往往給駭客留下了可乘之機。輕則數據遭到泄露,重則服務器被拿下。 
現在,很多網站開發人員知其然而不知其所以然,小弟也是,所以趕緊惡補下,總結如學習內容。希望對初學者能夠起到拋磚引玉的作用。 
一、SQL注入的步驟 
a) 尋找注入點(如:登錄界面、留言板等) 
b) 用戶自己構造SQL語句(如:' or 1=1#,后面會講解) 
c) 將sql語句發送給數據庫管理系統(DBMS) 
d) DBMS接收請求,并將該請求解釋成機器代碼指令,執行必要的存取操作 
e) DBMS接受返回的結果,并處理,返回給用戶 
因為用戶構造了特殊的SQL語句,必定返回特殊的結果(只要你的SQL語句夠靈活的話)。 
下面,我通過一個實例具體來演示下SQL注入 
二、SQL注入實例詳解(以上測試均假設服務器未開啟magic_quote_gpc) 
1) 前期準備工作 
先來演示通過SQL注入漏洞,登入后臺管理員界面 
首先,創建一張試驗用的數據表: 

復制代碼代碼如下:


CREATE TABLE `users` ( 
`id` int(11) NOT NULL AUTO_INCREMENT, 
`username` varchar(64) NOT NULL, 
`password` varchar(64) NOT NULL, 
`email` varchar(64) NOT NULL, 
PRIMARY KEY (`id`), 
UNIQUE KEY `username` (`username`) 
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; 


添加一條記錄用于測試: 

復制代碼代碼如下:


INSERT INTO users (username,password,email) 
VALUES('MarcoFly',md5('test'),'marcofly@test.com'); 


接下來,貼上登錄界面的源代碼: 

復制代碼代碼如下:


<html> 
<head> 
<title>Sql注入演示</title> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
</head> 
<body > 
<form action="validate.php" method="post"> 
<fieldset > 
<legend>Sql注入演示</legend> 
<table> 
<tr> 
<td>用戶名:</td><td><input type="text" name="username"></td> 
</tr> 
<tr> 
<td>密  碼:</td><td><input type="text" name="password"></td> 
</tr> 
<tr> 
<td><input type="submit" value="提交"></td><td><input type="reset" value="重置"></td> 
</tr> 
</table> 
</fieldset> 
</form> 
</body> 
</html> 


附上效果圖: 

利用SQL注入漏洞登錄后臺的實現方法

當用戶點擊提交按鈕的時候,將會把表單數據提交給validate.php頁面,validate.php頁面用來判斷用戶輸入的用戶名和密碼有沒有都符合要求(這一步至關重要,也往往是SQL漏洞所在) 
代碼如下: 

復制代碼代碼如下:


<html> 
<head> 
<title>登錄驗證</title> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
</head> 
<body> 
<?php 
$conn=@mysql_connect("localhost",'root','') or die("數據庫連接失敗!");; 
mysql_select_db("injection",$conn) or die("您要選擇的數據庫不存在"); 
$name=$_POST['username']; 
$pwd=$_POST['password']; 
$sql="select * from users where username='$name' and password='$pwd'"; 
$query=mysql_query($sql); 
$arr=mysql_fetch_array($query); 
if(is_array($arr)){ 
header("Location:manager.php"); 
}else{ 
echo "您的用戶名或密碼輸入有誤,<a href=\"Login.php\">請重新登錄!</a>"; 

?> 
</body> 
</html> 


注意到了沒有,我們直接將用戶提交過來的數據(用戶名和密碼)直接拿去執行,并沒有實現進行特殊字符過濾,待會你們將明白,這是致命的。 
代碼分析:如果,用戶名和密碼都匹配成功的話,將跳轉到管理員操作界面(manager.php),不成功,則給出友好提示信息。 
登錄成功的界面: 

利用SQL注入漏洞登錄后臺的實現方法

登錄失敗的提示:

利用SQL注入漏洞登錄后臺的實現方法

到這里,前期工作已經做好了,接下來將展開我們的重頭戲:SQL注入
2) 構造SQL語句 
填好正確的用戶名(marcofly)和密碼(test)后,點擊提交,將會返回給我們“歡迎管理員”的界面。 
因為根據我們提交的用戶名和密碼被合成到SQL查詢語句當中之后是這樣的: 
select * from users where username='marcofly' and password=md5('test') 
很明顯,用戶名和密碼都和我們之前給出的一樣,肯定能夠成功登陸。但是,如果我們輸入一個錯誤的用戶名或密碼呢?很明顯,肯定登入不了吧。恩,正常情況下是如此,但是對于有SQL注入漏洞的網站來說,只要構造個特殊的“字符串”,照樣能夠成功登錄。 
比如:在用戶名輸入框中輸入:' or 1=1#,密碼隨便輸入,這時候的合成后的SQL查詢語句為: 
select * from users where username='' or 1=1#' and password=md5('') 
語義分析:“#”在mysql中是注釋符,這樣井號后面的內容將被mysql視為注釋內容,這樣就不會去執行了,換句話說,以下的兩句sql語句等價: 

復制代碼代碼如下:


select * from users where username='' or 1=1#' and password=md5('') 


等價于 

復制代碼代碼如下:


select * from users where username='' or 1=1 


因為1=1永遠是都是成立的,即where子句總是為真,將該sql進一步簡化之后,等價于如下select語句: 
select * from users 
沒錯,該sql語句的作用是檢索users表中的所有字段 
小技巧:如果不知道' or 1=1#中的單引號的作用,可以自己echo 下sql語句,就一目了然了。 
看到了吧,一個經構造后的sql語句竟有如此可怕的破壞力,相信你看到這后,開始對sql注入有了一個理性的認識了吧~ 
沒錯,SQL注入就是這么容易。但是,要根據實際情況構造靈活的sql語句卻不是那么容易的。有了基礎之后,自己再去慢慢摸索吧。 
有沒有想過,如果經由后臺登錄窗口提交的數據都被管理員過濾掉特殊字符之后呢?這樣的話,我們的萬能用戶名' or 1=1#就無法使用了。但這并不是說我們就毫無對策,要知道用戶和數據庫打交道的途徑不止這一條。 
更多關于SQL注入的信息請看我的另一篇博文:利用SQL注入漏洞拖庫 
原創文章:WEB開發_小飛 
轉載請注明:http://www.cnblogs.com/hongfei/archive/2012/01/12/sql-injection-tuoku.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产99久久精品 | 一 级 黄 色 片免费网站 | 亚洲视频在线视频 | 亚洲欧美日韩国产 | 久久精品一区二区 | 日韩在线精品 | 欧美激情一区二区三区 | 久久aⅴ乱码一区二区三区 一区二区精品视频 | 黄色国产电影 | 午夜精品久久久久久久男人的天堂 | www中文字幕在线观看 | av男人的天堂在线 | 亚洲免费视频在线观看 | 久久久中文字幕 | 久久色av| 午夜视频网| 视频一区二区国产 | 国产999免费视频 | 99精品99 | 91av视频免费在线观看 | 蜜桃视频成人在线观看 | 91精品国产一区二区 | 日本成片视频 | 毛片在线观看网站 | 伊人激情 | 狠狠的日 | 成人av入口 | 亚洲精品夜夜夜 | 欧美 日韩 国产 一区 | 久草免费在线 | 伊人天天 | 我和我的祖国电影在线观看免费版高清 | av在线大全 | 激情久久av一区av二区av三区 | 亚洲综合社区 | 免费看国产黄色 | 国产精品久久电影观看 | 亚洲蜜桃精久久久久久久 | 国产激情91久久精品导航 | 精品国产青草久久久久福利 | www.xxx日韩|