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

        ?

        基于Python的SQL注入攻擊分析與實(shí)施*

        2021-02-07 02:41:28賀軍忠
        關(guān)鍵詞:數(shù)據(jù)庫用戶

        賀軍忠

        (隴南師范高等??茖W(xué)校電商學(xué)院,甘肅 成縣 742500)

        0 引 言

        作為黑客攻擊領(lǐng)域的網(wǎng)絡(luò)(Web)系統(tǒng),一般由網(wǎng)絡(luò)瀏覽器、Web服務(wù)器和數(shù)據(jù)庫3部分組成.網(wǎng)絡(luò)瀏覽器是客戶端軟件,不僅用于接收并處理用戶數(shù)據(jù),還用于處理來自Web服務(wù)器的數(shù)據(jù)并將其傳遞給瀏覽器.Web服務(wù)器類似于瀏覽器與數(shù)據(jù)庫的中介,基本功能是分析用戶HTTP請(qǐng)求并處理執(zhí)行,當(dāng)用戶需要處理數(shù)據(jù)時(shí),Web服務(wù)器通過相關(guān)語句鏈接到數(shù)據(jù)庫系統(tǒng),在數(shù)據(jù)庫環(huán)境中,通過SQL語句執(zhí)行處理數(shù)據(jù).數(shù)據(jù)庫專門用于數(shù)據(jù)查詢、數(shù)據(jù)更改、數(shù)據(jù)刪除、數(shù)據(jù)安全管理等功能.黑客將惡意利用網(wǎng)絡(luò)系統(tǒng)3部分之間的關(guān)系,找出漏洞,注入SQL為其提供的功能.如使用用戶輸入功能,實(shí)施結(jié)構(gòu)化查詢語言(structuredquerylanguage,SQL)注入攻擊,通過輸入異常的SQL語句,利用數(shù)據(jù)庫查詢功能獲取Web服務(wù)器的錯(cuò)誤信息,并進(jìn)行分析,進(jìn)而制定攻擊策略并實(shí)施.還可以將惡意代碼通過文件下載功能,傳播到網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)(PC).進(jìn)而實(shí)施XSS等更深層次的攻擊[1].

        1 黑客攻擊的定義

        在Wikipedia關(guān)于黑客攻擊的定義中,明確指出“借助某種技術(shù)手段,非法獲取機(jī)密數(shù)據(jù)或非法獲取高于系統(tǒng)給定的權(quán)限的系列行為都屬于黑客攻擊[2].”隨著黑客技術(shù)的不斷成熟,黑客攻擊的類型也很多.

        2 Python易受黑客攻擊

        Python語言是黑客攻擊語言的不二之選.首先,Python語言功能強(qiáng)大,不僅為黑客攻擊提供功能非常強(qiáng)大的模塊,還提供了多種豐富多樣的庫文件專門用于支持黑客攻擊,比如salmap、scapy、pydbg和httplib等,這些庫在各種黑客攻擊中被廣泛的應(yīng)用.另外,Python還能夠訪問各種應(yīng)用程序編程接口(application programming interface,API),還有黑客可以訪問的Linux、Windows、FreeB-SD和OpenBSD等系統(tǒng)的 ctypes庫,黑客借助Python能鏈接以上系統(tǒng)提供的DLL與共享庫.再次,像Metasploit、sqlmap和 Nmap等功能強(qiáng)大黑客工具都能被Python所調(diào)用,因?yàn)樗T都為Python提供了 API[3].黑客通過使用 Python,可以將這些工具改造得更加強(qiáng)大.最后,Python最大的優(yōu)點(diǎn)是簡(jiǎn)單易學(xué),易于上手,尤其是新手,這是Python被所青睞的最重要一點(diǎn)[4].黑客還可以用Python輕松編寫黑客攻擊工具,也就意味著Python語言在黑客攻擊中的地位不斷提高.除此之外,據(jù)相關(guān)數(shù)據(jù)統(tǒng)計(jì)顯示,目前黑客最青睞的編程語言有9種是,其中Python僅次于R語言排名第二.并且存在明顯的趨勢(shì)是由R語言向Python在轉(zhuǎn)化,Donnell說:“Python用途寬廣且靈活,所以人們蜂擁而至”[5].

        3 SQL注入攻擊實(shí)施

        SQL注入主要通過Python提供的sqlmap等自動(dòng)化模塊,黑客通過瀏覽器表單輸入非正常的用戶名和密碼,如輸入OR1=1;/*等,數(shù)據(jù)庫將忽略條件并返回所有值,致使一些能夠誘使數(shù)據(jù)庫產(chǎn)生錯(cuò)誤行為的值,黑客通過反復(fù)輸入異常的SQL語句,Web服務(wù)器通過SQL語句查詢數(shù)據(jù)庫,并對(duì)數(shù)據(jù)庫返回的值進(jìn)行提取分析,以獲取最準(zhǔn)確的SQL語句,并用其攻擊系統(tǒng)[6].SQL注入攻擊過程如圖1所示.

        圖1 SQL注入攻擊

        3.1 環(huán)境搭建

        進(jìn)行網(wǎng)絡(luò)黑客SQL注入攻擊測(cè)試時(shí),需要使用多臺(tái)PC機(jī).為了進(jìn)行攻擊測(cè)試,還要搭建Web服務(wù)器與數(shù)據(jù)庫.為出于成本考慮,使用虛擬技術(shù)與開源項(xiàng)目可以有效減少成本.首先,安裝Oracle提供的VirtualBox免費(fèi)虛擬軟件和黑客攻擊語言軟件Python;其次,為了使用Web服務(wù)器與DB相連,安裝Apache與MySQL,Naver開發(fā)人員中心提供了易于安裝的APM,其包含了Apache(Web服務(wù)器)、MySQL(數(shù)據(jù)庫)和PHP(Web開發(fā)語言),這都是開源軟件;最后,安裝基于PHP的博客開源軟件Wordpress,這是黑客攻擊的目標(biāo).其環(huán)境概念圖如圖2所示.

        圖2 環(huán)境概念

        3.2 設(shè)置虛擬PC環(huán)境

        為了在虛擬PC之間建立連接,必須更改網(wǎng)絡(luò)設(shè)置.默認(rèn)設(shè)置NAT下,虛擬PC可以通過主機(jī)PC連接互聯(lián)網(wǎng),但虛擬PC之間無法相互建立連接.因此,需要在網(wǎng)絡(luò)設(shè)置中,將連接方式更改為內(nèi)部網(wǎng)絡(luò),將混雜模式更改為全部允許.內(nèi)部網(wǎng)絡(luò)設(shè)置下,虛擬PC無法連接互聯(lián)網(wǎng),需要連接互聯(lián)網(wǎng)時(shí),要將連接方式暫時(shí)更改為NAT.設(shè)置服務(wù)器PC中,使可以從客戶機(jī)PC與黑客PC訪問服務(wù)器PC中安裝的Web服務(wù).為保證測(cè)試順利,先關(guān)閉Windows防火墻設(shè)置,然后更改WordPress設(shè)置,輸入server以代替localhost.當(dāng)然此時(shí)的計(jì)算機(jī)還不認(rèn)識(shí)server這一名稱.只有在服務(wù)器PC、客戶機(jī)PC、黑客PC中注冊(cè)與server名稱相對(duì)應(yīng)的IP,才能識(shí)別server.Windows通過hosts文件提供本地DNS功能.利用ipconfig-all命令可以查看服務(wù)器PC的IP地址(192.168.1.120).并將其IP地址注冊(cè)到hosts文件.使用記事本打開C:WindowsSystem32driversetc文件夾中的hosts文件,添加“IP地址server”到3臺(tái)PC,如圖3所示.設(shè)置完成后,在客戶機(jī)PC打開瀏覽器,在地址欄輸入http://server/wordpress.若出現(xiàn)WordPress歡迎頁面,則表示測(cè)試環(huán)境搭建成功.若無法正常顯示,檢查服務(wù)器PC中的防火墻是否已經(jīng)關(guān)閉.

        圖3 hosts文件編輯

        3.3 SQL注入攻擊

        SQL注入攻擊利用應(yīng)用程序的安全漏洞,向SQL插入非正常代碼,改變?cè)械腟QL語句where條件,從而非法獲取想要的數(shù)據(jù).SQL注入攻擊中,主要向接收并處理用戶輸入的變量值插入黑客攻擊代碼以發(fā)動(dòng)攻擊[7].常用的用戶認(rèn)證代碼:

        其中id與pwd是用戶在登錄頁面中輸入的.處理結(jié)果是返回與輸入的ID、密碼一致的用戶信息.黑客會(huì)插入妨礙正常SQL語句執(zhí)行的代碼(1 OR 1=1--),修改后的用戶認(rèn)證代碼為:

        將原本的條件id=$id改為id=1 or 1=1--后,此查詢結(jié)果將會(huì)忽略where條件,并返回沒有where條件的所有結(jié)果.所需密碼則通過“--”語句進(jìn)行處理,并將作為注釋出現(xiàn).這樣,用于處理用戶認(rèn)證的SQL查詢語句就沒有原有作用.要成功進(jìn)行并實(shí)施SQL注入攻擊,找出系統(tǒng)漏洞,需要不斷改變輸入值.雖然簡(jiǎn)單,但需要不斷重復(fù)工作,只能通過編寫程序?qū)崿F(xiàn)自動(dòng)化.而Python提供了多種實(shí)現(xiàn)這種自動(dòng)化的模塊,其中最具代表性的是sqlmap.作為黑客攻擊目標(biāo),WordPress網(wǎng)站使用了安全編碼,所以攻擊起來并不容易.為了成功進(jìn)行黑客攻擊,先在WordPress官方安裝安全性相對(duì)較差的插件,將其放入服務(wù)器PC目錄(C:APM_Setuphtdocswordpresswp-contentplugins),安裝即完成.

        使用Python提供的sqlmap實(shí)施黑客攻擊要逐步進(jìn)行.將Web網(wǎng)站視為“黑盒”,從最簡(jiǎn)單的信息開始,一點(diǎn)一點(diǎn)找出所需信息,完成攻擊.進(jìn)行SQL注入攻擊一般經(jīng)過如下5個(gè)步驟.

        (1)搜索URL.SQL注入攻擊基于URL,主要攻擊目標(biāo)是GET方法,將用戶的輸入值添加到URL并進(jìn)行傳送.這一步需要攻擊者具備HTML與JavaScript相關(guān)知識(shí).通過搜索引擎搜到攻擊目標(biāo)URL,攻擊特定網(wǎng)站時(shí),要嘗試打開多個(gè)頁面,觀察URL的變化.

        (2)探測(cè)漏洞.使用sqlmap.py程序,尋找所選URL的漏洞.由于大部分應(yīng)用程序都含有防御SQL注入攻擊的代碼,所以需要使用Web爬蟲等自動(dòng)化工具,找出含有漏洞的URL.Web爬蟲程序能夠從指定網(wǎng)站下載多個(gè)頁面,并且分析HTML代碼,找出有可能被攻擊的URL.

        (3)搜索數(shù)據(jù)表.找到目標(biāo)URL的漏洞后,搜索數(shù)據(jù)庫中有哪些數(shù)據(jù)表.一般情況只分析數(shù)據(jù)表名稱就能知道哪些數(shù)據(jù)表含有重要信息.

        (4)搜索列.搜索所選數(shù)據(jù)表中的列.由于列名能夠反映數(shù)據(jù)特征,所以能夠輕松找出包含重要信息的列.

        (5)訪問數(shù)據(jù).訪問所選列包含的數(shù)據(jù).若數(shù)據(jù)處于加密狀態(tài),sqlmap將使用字典攻擊技術(shù)對(duì)數(shù)據(jù)解密.

        本實(shí)施過程省略(1)對(duì)URL的搜索過程,直接利用sqlmap模塊在Windows命令行探測(cè)漏洞,其探測(cè)命令如下:

        上述命令中:-u選項(xiàng)表示后面出現(xiàn)的是URL;--level選項(xiàng)表示要執(zhí)行的測(cè)試級(jí)別(3:表示同時(shí)顯示插入的有效載荷信息),--risk選項(xiàng)用于設(shè)置待執(zhí)行測(cè)試的風(fēng)險(xiǎn),風(fēng)險(xiǎn)表示攻擊所用SQL代碼的危險(xiǎn)程度,風(fēng)險(xiǎn)等級(jí)越高,表示相關(guān)網(wǎng)站出現(xiàn)問題的可能性越高;--dbms選項(xiàng)指定要使用的數(shù)據(jù)庫類型,若不指定,則對(duì)sqlmap支持的所有類型的數(shù)據(jù)庫探測(cè)漏洞.本例中指定數(shù)據(jù)庫類型為MySQL,探測(cè)漏洞.在執(zhí)行中,若出現(xiàn)詢問是否繼續(xù)的情形,則輸入y繼續(xù)執(zhí)行[8].

        there were multiple injection points,please select the one to use for following injections:

        [0]place:GET,parameter:type,Unescaped numeric(default)

        [1]place:GET,parameter:type,Unescaped numeric

        通過探測(cè)結(jié)果可知,vid與pid存在安全漏洞.利用漏洞使用下列命令,進(jìn)行第3步搜索數(shù)據(jù)庫中有哪些數(shù)據(jù)表.

        C:Python27python sqlmap.py-u"http://server/wordpress/wp-content/plugins/al1-video-gal-lery/config.php?vid=1&pid=1"--level 3--risk 3--dbms MySQL--tables

        上述命令中:--tables選項(xiàng)用于獲取數(shù)據(jù)表列表.使用--table選項(xiàng)可以讀取數(shù)據(jù)庫中所有數(shù)據(jù)表的信息,然后通過目測(cè)找出含有用戶賬號(hào)信息的數(shù)據(jù)表.觀察數(shù)據(jù)表列表可知,wp_users最有可能保存用戶數(shù)據(jù).若選錯(cuò)數(shù)據(jù)表,可以選擇其他數(shù)據(jù)表,繼續(xù)進(jìn)行黑客攻擊[9].有了用戶數(shù)據(jù)表,接下來實(shí)施第4步,從wp_users數(shù)據(jù)表提取所有數(shù)據(jù)列,命令如下:

        C:Python27python sqlmap.py-u"http://server/wordpress/wp-content/plugins/al1-video-gal-lery/config.php?vid=1&pid=1"--level3--risk 3--dbms MySQL -T wp_users--columns

        上述命令中:-T選項(xiàng)用于指定數(shù)據(jù)表,--columns選項(xiàng)用于從指定數(shù)據(jù)表提取所有數(shù)據(jù)列.與數(shù)據(jù)表類似,數(shù)據(jù)列也能反映數(shù)據(jù)特征,所以可以從數(shù)據(jù)列名稱輕松得知要進(jìn)行黑客攻擊的目標(biāo)列.搜索結(jié)果列于表1.

        從搜索的數(shù)據(jù)得知,數(shù)據(jù)列user_login與user_pass分別保存用戶賬號(hào)與密碼.只要得到用戶名與密碼,對(duì)網(wǎng)站的黑客攻擊就成功了.SQL注入攻擊的最后一步是從user_login與user_pass中提取用戶登錄信息.提取登錄信息命令如下:

        C:Python27python sqlmap.py-u"http://server/wordpress/wp-content/plugins/al1-video-gal-lery/config.php?vid=1&pid=1"--level3--risk 3--dbms MySQL -T wp_users--columns-C--user_login,user_pass--dump

        表1 數(shù)據(jù)列搜索結(jié)果

        上述命令中:-C選項(xiàng)用于指定要進(jìn)行攻擊的數(shù)據(jù)列,指定數(shù)據(jù)列時(shí)可以一次指定多列,用逗號(hào)(,)隔開;--dump選項(xiàng)用于從指定數(shù)據(jù)列提取其中保存的所有數(shù)據(jù).從而得到登錄后臺(tái)的用戶名與密碼,完成破解,成功完成SQL注入攻擊[10].

        4 結(jié) 論

        數(shù)據(jù)提取過程中會(huì)遇到兩個(gè)問題,一個(gè)為是否保存散列數(shù)據(jù),另一個(gè)為是否對(duì)散列數(shù)據(jù)進(jìn)行解密,全部選擇y.使用sqlmap提供的解碼工具可以對(duì)密碼進(jìn)行解密.最后獲取的用戶名、密碼與程序安裝時(shí)輸入的用戶名與密碼一致.通過上述基于Python的SQL注入攻擊例子可知,Python語言開發(fā)的sqlmap模塊是功能非常強(qiáng)大的工具.雖然WordPress使用了安全編碼技術(shù),但由于其擴(kuò)展模塊存在安全漏洞,所以常常受到攻擊.其他商業(yè)、政府網(wǎng)站等也同WordPress一樣,雖然也使用了相應(yīng)的安全編碼技術(shù),只要靈活使用Python程序能夠使sqlmap功能強(qiáng)大,就有可能被黑客找到突破口.因此各類網(wǎng)站安全編碼技術(shù)有待進(jìn)一步提高.

        猜你喜歡
        數(shù)據(jù)庫用戶
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        Camera360:拍出5億用戶
        100萬用戶
        人妻少妇精品无码专区| 中文字幕av人妻一区二区| 国产人妖在线观看一区二区三区 | 天堂中文在线资源| 亚洲AV秘 片一区二区三| 一个人的视频免费播放在线观看 | 男人的天堂av网站| 亚洲精品久久久无码av片软件| 女同性恋精品一区二区三区| 在线观看av不卡 一区二区三区 | 黑人巨大精品欧美一区二区| 久久精品re| 国产三级av在线播放| 亚洲字幕中文综合久久| 国产无套内射久久久国产| 图图国产亚洲综合网站| 丰满少妇又爽又紧又丰满动态视频| 国产精品久久久三级18| 国产免费av片在线观看| 国产极品美女高潮抽搐免费网站| 精品女同一区二区三区免费播放| 强d乱码中文字幕熟女免费| 国产成人精品123区免费视频| 在线精品国内视频秒播| 天堂av一区二区在线| 午夜福利理论片在线观看播放| 永久免费观看国产裸体美女| 国产亚洲午夜精品| 成人黄色片久久久大全| 国产色欲av一区二区三区| 国产a三级久久精品| 亚洲伊人免费综合网站| 日韩中文字幕在线观看一区| 亚洲狠狠婷婷综合久久久久图片| 欧美人与禽交zozo| 亚洲一区二区三区免费的视频| 成品人视频ww入口| 亚洲人成无码网www| 韩国免费一级a一片在线| 中国一级特黄真人片久久| 久久亚洲精品成人av|