成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP漏洞全解(五)-SQL注入攻擊

系統 Linux
本文主要介紹針對PHP網站的SQL注入攻擊。所謂的SQL注入攻擊,即一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據。

SQL注入攻擊(SQL Injection),是攻擊者在表單中提交精心構造的sql語句,改動原來的sql語句,如果web程序沒有對提交的數據經過檢查,那么就會造成sql注入攻擊。

  SQL注入攻擊的一般步驟:

  1、攻擊者訪問有SQL注入漏洞的站點,尋找注入點

  2、攻擊者構造注入語句,注入語句和程序中的SQL語句結合生成新的sql語句

  3、新的sql語句被提交到數據庫中執行 處理

  4、數據庫執行了新的SQL語句,引發SQL注入攻擊

實例

  數據庫

 

  1. CREATE TABLE `postmessage` (  
  2.   `id` int(11) NOT NULL auto_increment,  
  3.   `subject` varchar(60) NOT NULL default ”,  
  4.   `namevarchar(40) NOT NULL default ”,  
  5.   `email` varchar(25) NOT NULL default ”,  
  6.   `question` mediumtext NOT NULL,  
  7.   `postdate` datetime NOT NULL default ’0000-00-00 00:00:00′,  
  8.   PRIMARY KEY (`id`)  
  9.   ) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COMMENT=’運用者的留言’ AUTO_INCREMENT=69 ;  
  10.   grant all privileges on ch3.* to ‘sectop’@localhost identified by ’123456′;  
  11.   //add.php 插入留言  
  12.   //list.php 留言列表  
  13.   //show.php 顯示留言  

    頁面 http://www.netsos.com.cn/show.php?id=71 可能存在注入點,我們來測試

  http://www.netsos.com.cn/show.php?id=71 and 1=1

  返回頁面

 

  一次查詢到記錄,一次沒有,我們來看看源碼

  //show.php 12-15行

  // 執行mysql查詢語句

  $query = "select * from postmessage where id = ".$_GET["id"];

  $result = mysql_query($query)

  or die("執行ySQL查詢語句失敗:" . mysql_error());

  參數id傳遞進來后,和前面的字符串結合的sql語句放入數據庫執行 查詢

  提交 and 1=1,語句變成select * from postmessage where id = 71 and 1=1 這語句前值后值都為真,and以后也為真,返回查詢到的數據

  提交 and 1=2,語句變成select * from postmessage where id = 71 and 1=2 這語句前值為真,后值為假,and以后為假,查詢不到任何數據

  正常的SQL查詢,經過我們構造的語句之后,形成了SQL注入攻擊。通過這個注入點,我們還可以進一步拿到權限,比如說運用 union讀取管理密碼,讀取數據庫信息,或者用mysql的load_file,into outfile等函數進一步滲透。

防范方法

  整型參數:

  運用 intval函數將數據轉換成整數

  函數原型

  int intval(mixed var, int base)

   var是要轉換成整形的變量

   base,可選,是基礎數,默認是10

  浮點型參數:

  運用 floatval或doubleval函數分別轉換單精度和雙精度浮點型參數

  函數原型

  int floatval(mixed var)

   var是要轉換的變量

  int doubleval(mixed var)

   var是要轉換的變量

  字符型參數:

  運用 addslashes函數來將單引號“’”轉換成“\’”,雙引號“"”轉換成“\"”,反斜杠“\”轉換成“\\”,NULL字符加上反斜杠“\”

  函數原型

  string addslashes (string str)

   str是要檢查的字符串

  那么剛才出現的代碼漏洞,我們可以這樣修補

  // 執行mysql查詢語句

  $query = "select * from postmessage where id = ".intval($_GET["id"]);

  $result = mysql_query($query)

or die("執行ySQL查詢語句失敗:" . mysql_error());

 

  如果是字符型,先判斷magic_quotes_gpc能無法 為On,當不為On的時候運用 addslashes轉義特殊字符

 

  1. if(get_magic_quotes_gpc())  
  2. {  
  3.     $var = $_GET["var"];  
  4. }  
  5.  else  
  6.  {  
  7.   $var = addslashes($_GET["var"]);  

 

  再次測試,漏洞已經修補

責任編輯:xikder 來源: DoDo's Blog
相關推薦

2012-04-12 13:36:59

2012-04-12 14:45:13

2012-04-12 16:05:50

2012-12-19 10:36:06

2012-04-12 15:42:35

2012-04-12 15:59:09

2010-09-14 16:00:16

2012-04-12 15:27:44

2012-04-12 11:28:04

2013-04-26 11:26:00

2019-09-17 10:06:46

數據庫程序員網絡安全

2013-12-13 10:45:26

2015-02-04 14:50:29

2014-02-28 17:29:06

2011-10-19 10:47:56

2015-12-29 10:41:16

2014-11-04 13:43:10

2019-02-22 09:00:00

2020-08-07 08:13:08

SQL攻擊模式

2009-02-04 16:51:48

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av看看| 欧产日产国产精品视频 | 亚洲精品一区二区三区 | 国产在线观看一区二区三区 | 97久久久久久 | 国产成人精品综合 | 精品福利一区二区三区 | 中文字幕在线第一页 | 99久久久无码国产精品 | 97久久精品午夜一区二区 | 欧美午夜影院 | 国产亚洲精品综合一区 | 精品视频一区二区三区在线观看 | 欧美日韩中文在线 | 成人夜晚看av | 在线观看第一页 | 夜夜操天天操 | 亚洲一区二区三区四区视频 | 免费黄网站在线观看 | 97国产在线视频 | 黑人巨大精品欧美一区二区免费 | 91亚洲欧美 | 成人午夜电影在线观看 | 久久国产视频网站 | av黄色网| 日本小视频网站 | 国产精品网址 | 日本天堂视频在线观看 | 日日夜夜天天 | 日韩国产免费观看 | 久久久精彩视频 | 国产99久久精品一区二区永久免费 | 欧美成人免费在线视频 | 九九九视频在线 | 在线观看国产wwwa级羞羞视频 | 男女免费网站 | 青青草av网站| 自拍 亚洲 欧美 老师 丝袜 | 亚洲v区 | 日韩中文一区 | gav成人免费播放视频 |