国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Advanced SQL Injection with MySQL

2024-07-24 12:43:31
字體:
來源:轉載
供稿:網友

文/圖 安全天使·angel[BST]

前言

  我的《SQL Injection with MySQL》(《黑客防線》7月的專題)已經對MySQL的注入有了比較全面的介紹了,但是有一個危害相當大的函數,我并沒有在文中提及,因為如果能靈活應用這個函數,那PHP甚至服務器的安全性均會大打折扣,由于《SQL Injection with MySQL》的發表時間是在暑假期間,考慮到很多新手、學生和品德敗壞的人亂用,所以我并沒有把這個寫在該文里,其實本文在5月初已寫完。專題發表后,很多人已經陸續轉到PHP+MYSQL注入的研究,很多新技術將會陸續挖掘出來,我們所掌握這方面未公開的高級技巧也會陸續公布出來。至于比較基礎的東西,本文就不再提了。

詳細

  我們知道,在SQL語句中,可以使用各種MySQL內置的函數,經常使用的就是DATABASE()、USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()這些函數來獲取一些系統的信息,還有一個應用得比較多的函數,就是load_file(),該函數的作用是讀入文件,并將文件內容作為一個字符串返回。
  看到這里,應該可以想到我們可以做什么了,就是讀取一些機密文件,但是也是有條件限制的:

欲讀取文件必須在服務器上 必須指定文件完整的路徑 必須有權限讀取并且文件必須完全可讀 欲讀取文件必須小于 max_allowed_packet

  如果該文件不存在,或因為上面的任一原因而不能被讀出,函數返回空。比較難滿足的就是權限,在windows下,如果NTFS設置得當,是不能讀取相關的文件的,當遇到只有administrators才能訪問的文件,users就別想load_file出來。

  在實際的注入中,我們有兩個難點需要解決:

絕對物理路徑 構造有效的畸形語句

  在很多PHP程序中,當提交一個錯誤的Query,如果display_errors = on,程序就會暴露WEB目錄的絕對路徑,只要知道路徑,那么對于一個可以注入的PHP程序來說,整個服務器的安全將受到嚴重的威脅。構造語句已經是小意思了。

利用

  我們假設一個程序的SQL語句如下:

SELECT * FROM article WHERE articleid=$id

  注:當前條件:magic_quotes_gpc = off,c:/boot.ini可讀。

  此時,我們構造$id為:

-1 union select 1,1,1,1,load_file('c:/boot.ini')

  我們的Query就變成:

SELECT * FROM article WHERE articleid=-1 union select 1,1,1,1,load_file('c:/boot.ini')

  程序會把c:/boot.ini內容老老實實顯示出來,但是現在magic_quotes_gpc = off的主機少之又少,怎么才能構造出沒有引號的語句呢?看過《SQL Injection with MySQL》的朋友肯定知道用char()函數或者把字符轉換成16進制,沒錯,就是它們。

  注:當前條件:magic_quotes_gpc = on,c:/boot.ini可讀。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆安县| 陆河县| 东明县| 双鸭山市| 拜泉县| 沅江市| 新宁县| 遵化市| 山阴县| 杭锦旗| 禄丰县| 凤凰县| 永济市| 乳山市| 双流县| 锡林郭勒盟| 洪江市| 琼结县| 五家渠市| 牡丹江市| 普定县| 莱西市| 仁怀市| 武安市| 大方县| 博爱县| 遂溪县| 阿城市| 那坡县| 牙克石市| 夹江县| 西安市| 宜阳县| 常宁市| 江孜县| 芮城县| 阜新市| 宁都县| 扬中市| 宜春市| 长沙市|