无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應(yīng)
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補(bǔ)償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

    PHP漏洞全解-SQL注入攻擊

    發(fā)布時(shí)間:  2012/5/18 18:56:01

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

    SQL注入攻擊的一般步驟:

    1、攻擊者訪問有SQL注入漏洞的站點(diǎn),尋找注入點(diǎn)

    2、攻擊者構(gòu)造注入語句,注入語句和程序中的SQL語句結(jié)合生成新的sql語句

    3、新的sql語句被提交到數(shù)據(jù)庫中執(zhí)行 處理

    4、數(shù)據(jù)庫執(zhí)行了新的SQL語句,引發(fā)SQL注入攻擊

    實(shí)例

    數(shù)據(jù)庫

     

    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=’運(yùn)用者的留言’ 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 可能存在注入點(diǎn),我們來測試

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

    返回頁面

     

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

    //show.php 12-15行

    // 執(zhí)行mysql查詢語句

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

    $result = mysql_query($query)

    or die("執(zhí)行ySQL查詢語句失。" . mysql_error());

    參數(shù)id傳遞進(jìn)來后,和前面的字符串結(jié)合的sql語句放入數(shù)據(jù)庫執(zhí)行 查詢

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

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

    正常的SQL查詢,經(jīng)過我們構(gòu)造的語句之后,形成了SQL注入攻擊。通過這個(gè)注入點(diǎn),我們還可以進(jìn)一步拿到權(quán)限,比如說運(yùn)用 union讀取管理密碼,讀取數(shù)據(jù)庫信息,或者用mysql的load_file,into outfile等函數(shù)進(jìn)一步滲透。

    防范方法

    整型參數(shù):

    運(yùn)用 intval函數(shù)將數(shù)據(jù)轉(zhuǎn)換成整數(shù)

    函數(shù)原型

    int intval(mixed var, int base)

    var是要轉(zhuǎn)換成整形的變量

    base,可選,是基礎(chǔ)數(shù),默認(rèn)是10

    浮點(diǎn)型參數(shù):

    運(yùn)用 floatval或doubleval函數(shù)分別轉(zhuǎn)換單精度和雙精度浮點(diǎn)型參數(shù)

    函數(shù)原型

    int floatval(mixed var)

    var是要轉(zhuǎn)換的變量

      int doubleval(mixed var)

    var是要轉(zhuǎn)換的變量

    字符型參數(shù):

    運(yùn)用 addslashes函數(shù)來將單引號“’”轉(zhuǎn)換成“\’”,雙引號“"”轉(zhuǎn)換成“\"”,反斜杠“\”轉(zhuǎn)換成“\\”,NULL字符加上反斜杠“\”

    函數(shù)原型

    string addslashes (string str)

    str是要檢查的字符串

    那么剛才出現(xiàn)的代碼漏洞,我們可以這樣修補(bǔ)

    // 執(zhí)行mysql查詢語句

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

    $result = mysql_query($query)

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

     

    如果是字符型,先判斷magic_quotes_gpc能無法 為On,當(dāng)不為On的時(shí)候運(yùn)用 addslashes轉(zhuǎn)義特殊字符

     

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

     

    再次測試,漏洞已經(jīng)修補(bǔ)


    本文出自:億恩科技【mszdt.com】

    服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線