999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于代理模式的SQL注入過濾方法①

2018-02-07 02:41:27韓宸望饒緒黎
計算機系統應用 2018年1期
關鍵詞:用戶檢測方法

韓宸望,林 暉,饒緒黎,黃 川

1(福建師范大學 數學與計算機科學學院,福州 350117)2(福建師范大學 福建省網絡安全與密碼技術重點實驗室,福州 350117)3(福州職業技術學院 信息技術工程系,福州 350108)

隨著Web 3.0時代的到來以及B/S模式的迅速發展,Web技術在許多領域都得到了廣泛的應用,且已成為世界經濟發展中的關鍵技術之一[1].與此同時,Web的安全問題也日趨嚴峻,Web安全威脅已經成為網絡安全威脅最主要的來源之一.因此,對Web安全的研究也成為了目前網絡安全領域的重點和熱點[2].其中,SQL注入作為Web應用程序面臨的最普遍、最高危的攻擊之一,連續多年位列OWASP(開放式Web應用程序安全項目,Open Web Application Security Project)年度十大攻擊行為,并且多次排名第一.

基于上述分析,本文結合URL長度、訪問頻率及SQL語法樹,提出了一種新的SQL注入過濾方法——LFS (length-frequency-SQL syntax tree)過濾方法.該方法包括學習和過濾兩個階段.學習階段在安全的環境下進行,通過爬蟲和數據庫代理,根據用戶提供的爬蟲啟始數據進行爬取,生成URL和SQL語句的映射表.過濾階段工作在現實環境下,通過檢測長度、連接頻率、SQL語法樹特征,以此來檢測SQL注入攻擊.仿真實驗及結果分析表明LFS方法相較于傳統的關鍵字過濾和正則表達式過濾能夠更有效的防止SQL注入攻擊.

1 相關工作

針對SQL注入攻擊檢測,國內外研究人員已經做了大量的研究工作,并且取得了一定的研究成果.張燕等[3]提出了一種基于數據挖掘技術的SQL注入攻擊檢測方法.該方法首先收集了數據庫日志中內部查詢樹;然后,根據查詢樹的語義、語法特征和查詢樹類型提取查詢樹的特征向量;最后,根據多項式核函數SVM對這些特征向量進行分類,從而實現SQL攻擊檢測.

黃保華等人[4]提出了一種SQL語句塊摘要樹模型,用于檢測SQL注入攻擊.基于該模型的SQL注入檢測對SQL語句序列進行了檢測,有效地提高了攔截率,但是在數據庫連接共享的環境中,該模型由于需要對順序執行的SQL序列進行檢測導致實施起來存在一定的困難.趙宇飛等人[5]根據SQL注入攻擊的網絡流量與正常用戶請求的網絡流量有較大的區別,以網絡流量分析的角度,提出了LFF(length-frequencyfeature)檢測方法.張志超等人[6]結合人工神經元網絡,提出了一種基于人工神經元網絡的SQL注入漏洞的分析模型.該模型利用人工神經網絡算法對用戶輸入的SQL語句進行檢測,從而判斷用戶是否在進行SQL注入攻擊.

王偉平等人[7]利用正則表達式對SQL注入攻擊的特征進行描述,并提出了基于正則表達式的SQL注入攻擊過濾方案.該方案與關鍵字過濾相比,具有更高的識別率和較低的誤報率.Ivan Ristc開發的開源項目ModSecurity[8]和Roesch M開發的入侵檢測軟件Snort[9]同樣根據SQL注入攻擊的特征定制SQL注入攻擊的特征規則集,并以此過濾用戶的輸入來抵擋SQL注入攻擊.田玉杰等人[10]提出了一種基于分類的SQL注入攻擊雙層防御模型.該模型采用了基于Http請求分類的用戶輸入過濾,以此降低用戶輸入過對正常數據的誤報率.應用SQL語法結構比較和于參數化分類的動態查詢匹配,從而提高了用戶輸入過濾的攔截率和語法結構比較的檢測效率.

Ain Zubaidah Mohd Saleh等人[11]將提出了一種Web應用程序漏洞檢測方法.該方法結合了Boyer-Moore字符串查找算法,能夠有效地檢測多種Web安全漏洞,例如SQL注入,XSS等Web安全漏洞.Nency Patel等人[12]改進了Aho-Corasick模式匹配算法,并將該算法應用于SQL注入攻擊防御.傳統的防止SQL注入的模式匹配往往采用靜態的模式匹配算法.但是改進的Aho-Corasick模式匹配算法能夠捕捉SQL注入引起的新異常模式,并將反復出現的新異常模式自動加入模式匹配庫中.Jemal Abawajy等人[13]針對SQL注入攻擊在RFID系統中的危害,提出了一種基于策略的SQL注入攻擊檢測方法.該方法通過制定合法的SQL查詢語句規則形成規則庫,之后對RFID系統傳輸的數據進行攔截驗證,并根據合法的SQL查詢語句規則庫進行檢測,以此來防御SQL注入.

同時,還可以通過采用參數化查詢,在代碼層對SQL注入攻擊進行防御[14].使用參數化查詢訪問數據庫,能夠防止SQL注入,使Web應用程序更加安全.此外,通過對存儲過程的訪問權限的正確配置也能夠防止SQL注入,提高系統安全性.存儲過程將一組SQL語句集編譯后存儲在數據庫中,以此來提高安全性、防止SQL注入.例如,黃龍軍[15]在網上考試系統中利用SQL Server存儲過程有效地防御SQL注入攻擊,提高了系統的安全性.

2 SQL注入過濾方法概述

2.1 SQL注入攻擊概述

SQL注入攻擊是一種由攻擊者通過影響應用程序向后臺數據庫傳遞的SQL查詢而引發的攻擊.SQL注入攻擊是一種通過操縱Web輸入來修改后臺SQL語句以利用代碼進行攻擊的技術[16].雖然不同種類的SQL注入的攻擊方式有所區別,但它們的原理和過程基本相同.SQL注入攻擊過程和原理如圖1所示.

攻擊者在登錄界面使用賬號admin’和密碼admin進行登錄.客戶端瀏覽器向Web服務器發送URL為:http://www.test.com/login.asp?username=ad min’&password=admin的請求.之后Web服務器向數據庫服務器發送SQL語句,該SQL語句為:select * from accounts where username=’admin’ and password=’admin’.數據庫執行該SQL語句后向Web服務器返回敏感信息,并最終由Web服務器將該敏感信息轉發給了客戶端瀏覽器,從而被攻擊者獲取.

圖1 SQL注入攻擊過程

2.2 SQL注入過濾方法

對于特定的Web應用程序,其發送的HTTP請求報文的URL和參數與Web應用程序收到請求報文執行的SQL語句存在一定的映射關系.并且任何擁有SQL攻擊特征的輸入都將改變原有的SQL語句的語法結構.因此若用戶輸入構成的SQL語句的語法結構和期望中的語法結構不一致,則該輸入為SQL注入.本文方法基于上述前提,提出了一種新的SQL注入過濾方法,該方法將SQL注入防護分為兩個階段:學習階段和過濾階段.

2.2.1 學習階段

學習階段工作在安全環境下,利用爬蟲和數據庫代理,根據用戶提供的啟始文件(XML文件),該文件包含爬蟲的啟始數據,對該Web應用程序進行爬取,生成該Web應用程序的HTTP請求報文中的URL和Web應用程序執行的SQL語句的映射表(XML文件).其運行環境如圖2所示.

圖2 學習階段運行環境

以圖1為例,假設用戶發送的URL為http://www.test.com/login.asp?username=admin&password=123456&type=admin,則之后Web應用程式執行的SQL語句為:select * from accounts where username=‘admin’ and password=‘123456’ and type=‘admin’.過濾系統先對該SQL語句進行解析生成對應的語法樹,之后將語法樹的結點與爬蟲發出的HTTP報文中的數據進行對比,其數據發出時必須不重復,并且不包含有SQL關鍵字如select,and,or等.若數據一致并且該數據在原SQL語句中被‘’(一對單引號)所引用,則該數據類型為字符型,將SQL語句中對應的數據改為該數據對應的Http數據報文中的參數名.若數據一致,該數據為數字并且在原SQL語句中沒有被‘’所引用,則該數據類型為數字型,將SQL語句中對應的數據改為該數據對應的Http數據報文中的參數名并在該參數名兩側加上*符號.據此將Web生成的SQL語句改為:select *from accounts where username=‘username’ and password=‘passwor d’ and type=‘type’.若該 url會根據用戶輸入的執行不同的SQL語句,則需在相應的啟始文件寫入各種情況的啟始數據并將該對應的<param>的change屬性設置為true.生成的映射表(XML文件)利用選擇標簽<if>和<elseif>分情況存儲SQL語句.假設上面的例子根據type屬性執行不同的SQL語句,則圖3和圖4分別給出了相對應的啟始文件和URL與SQL語句映射表的XML文件.表1和表2分別給出了啟始文件的標簽和映射表標簽.其中圖3的sql標簽的元素 where username =‘username’ and password = ‘password’中,其中對 SQL 的抽取的原理如下.

圖3 啟始文件數據

圖4 URL和SQL語句映射表

表1 爬蟲啟始數據XML文件標簽

表2 映射表標簽

SQL注入攻擊往往會改變原有的SQL語句語法樹的結構.以 SQL 語句“select a from b where c=?”(其中? 為占位符)為例,對于正常的用戶輸入,假設用戶輸入為admin,則其SQL語法樹結構如圖5所示.對于SQL 注入攻擊,假設用戶輸入為 admin ‘or’ 1 ‘=’ 1 ,則其SQL語法樹結構如圖6所示.由圖5和圖6中的語法樹結構可見,由于SQL語句“select a from b where c=?”(其中? 為占位符)中用戶輸入的數據位于where子樹,所以其它SQL語法樹中并沒有改變結構.因此對SQL的抽取沒有必要抽取整個SQL語句,只需根據用戶輸入數據所對應的位置,對該子樹進行解析并記錄下該子樹的根節點和特征(該子樹的結點總數),抽取對應的SQL語句.以SQL語句“select a from b where c=?”(其中? 為占位符)為例,則對應抽取的SQL語句為:where c=?(其中? 為占位符,根據與爬蟲發出的數據的對比結果確定的Http數據報文中的參數名),并記錄該子樹根結點為where,特征為4.

圖5 正常的SQL語法樹

圖6 注入攻擊SQL語法樹

2.2.2 過濾階段

過濾階段工作在現實環境下,通過檢測長度、連接頻率,并根據映射表和用戶的輸入構建SQL語句,再對該SQL語句進行解析獲取特征值,之后將該特征值與映射表的SQL語句特征進行匹配,以此來檢測SQL注入攻擊.其工作環境如圖7所示.

圖7 注入攻擊SQL語法樹

在HTTP的get請求方式中,SQL注入攻擊過程往往需要向URL中拼接SQL語句,所以SQL注入的URL長度相較于正常的URL長度會有所區別.因此當HTTP的URL長度超過某個閾值時,則該用戶輸入可能為SQL注入攻擊,需要進行進一步判斷.文獻[7]中研究表明,大部分的HTTP的get請求方式中URL的長度普遍在5–70 byte之間,所以本文設置URL長度閾值為70 byte,當URL長度大于70時,則記錄該請求由人工進行進一步判斷.

SQL注入攻擊的HTTP連接頻率往往高于正常用戶的HTTP連接頻率.所以,單位時間內HTTP請求的三元組<源IP,目的IP,目的端口>的頻率能夠作為檢測SQL注入的一個標準.文獻[7]中研究表明,正常網絡的HTTP連接頻率為4.87次/s,但其中大部分連接頻率遠低于該值.因此,本文將連接頻率的閾值定為3次/s.檢測中,如果某個三元組的連接頻率大于3次/秒,則記錄該請求由人工進行進一步判斷.

SQL注入攻擊往往會改變原有的SQL語法樹結構.因此,可以根據用戶的輸入提取映射表中對應的SQL語句信息,之后根據相應的信息進行SQL解析.再與映射表的SQL語句特征進行匹配,若匹配成功則為正常輸入.若匹配失敗則為SQL注入攻擊.以上文中的圖4為例,假設用戶的正常輸入為admin和123456,則對應的解析后的SQL語法樹子樹如圖8所示.假設SQL注入攻擊的輸入為admin和123456’or’1’=’1,則對應的解析后的 SQL 語法樹子樹如圖9所示.由此可見用戶正常輸入的SQL語法樹子樹的特征與SQL注入攻擊的SQL語法樹子樹的特征有所區別.因此,可以根據SQL語法樹子樹的特征來檢測SQL注入攻擊.

3 SQL注入過濾方法詳細流程及模塊介紹

3.1 學習階段流程

本文提出的SQL注入過濾方法的學習階段的具體流程描述如下:

步驟1.讀取用戶提供的爬蟲啟始數據放入待抓取URL隊列并生成URL與SQL語句的映射表.之后讀取待抓取URL隊列的隊頭數據.

步驟2.判斷步驟1中提取的URL是在已抓取URL隊列中,若存在則直接結束,準備讀取下一個待抓取URL.若不存在則進行步驟3.

步驟3.發送HTTP請求,并根據其中的URL和請求方式在映射表中相應的位置生成<url>和<type>標簽.之后獲取SQL語句并解析成SQL語法樹.

圖8 正常輸入的SQL語法樹中的where子樹

圖9 SQL注入攻擊的SQL語法樹中的where子樹

步驟4.將步驟3生成的SQL語法樹的葉子結點逐個與HTTP報文中參數的數據進行比較.若數據不一致,則比較下一個結點;若所有結點都不一致,則直接結束,準備讀取下一個待抓取URL;若數據一致,則進行步驟5.

步驟5.判斷步驟4的數據是否被’’所引用,若被’’所引用,則該數據類型為字符型,將SQL語句中對應的數據改為該數據對應的Http數據報文中的參數名.若該數據為數字并且在原SQL語句中沒有被’’所引用,則該數據類型為數字型,將SQL語句中對應的數據改為該數據對應的Http數據報文中的參數名并在該參數名兩側加上*符號.

步驟6.抽取SQL語法樹,記錄下抽取子樹的根結點和特征.之后在映射表中對應的<url>標簽中生成對應的<sql>標簽.

步驟7.準備讀取下一個待抓取URL,重復步驟1到步驟6.

3.2 過濾階段流程

本文提出的SQL注入過濾方法的過濾階段的具體流程描述如下:

步驟1.首先,將對HTTP請求方式進行判斷.如果是GET方式,提取URL進入步驟2,如果是POST方式,提取實體進入步驟3.

步驟2.對URL的長度進行檢測,若長度大于70 byte,則記錄該請求由人工進行進一步判斷,之后進入步驟3.否則直接進入步驟3.

步驟3.提取當前HTTP請求中的三元組<源IP,目的IP,目的端口>,若其不存在于三元組表中,則創建該三元組.若存在于三元組表中,則相應的三元組連接數加1,并對該三元組進行連接頻率檢測,若連接頻率大于3次/秒,則記錄該請求由人工進行進一步判斷,之后進入步驟4.否則直接進入步驟4.

步驟4.根據URL查找學習階段生成的URL和SQL語句映射表,獲取相應的SQL語句,子樹根結點,語法樹特征等信息.從HTTP請求中提取相應的參數值,構建SQL子句.根據映射表中的子樹根結點,對該SQL子句進行進行對應的SQL解析得到SQL語法子樹.若解析析失敗則進行二次解析;若解析成功繼續步驟5.二次解析時過濾模塊自動生成完整的SQL語句進行解析.以上文中的 where username=’admin’ and password=’123456’ and type=’admin’為例,生成 select a from b where username=’admin’ and password=’123456’and type=’admin’進行解析.若仍解析失敗則判斷該輸入為SQL注入攻擊,解析成功則繼續步驟5.

步驟5.將步驟4生成的SQL語法子樹的特征(SQL語法子樹的結點總數)與映射表中的特征進行匹配.若一樣則將該輸入判定為正常輸入;若不一樣該則將輸入判定為SQL注入攻擊.

步驟6.獲取下一條HTTP請求,重復步驟1到步驟5.

3.3 模塊介紹

本文提出的方法的設計模塊圖如圖10所示.

1)數據提取模塊:負責提取HTTP報文中的數據.在學習階段時,并將相關的數據存入配置文件中.在過濾階段,并結合映射表生成相應的SQL語句.

2)爬蟲模塊:該模塊包括待抓取URL隊列和已抓取URL隊列.爬蟲從待抓取URL隊列中依次讀取URL,之后根據URL訪問對應網頁.同時將已經訪問的URL發送給已抓取URL隊列,以避免重復抓取.對于剛抓取的網頁,則從中抽出所包含的所有鏈接信息,并在已抓起隊列中檢測,若發現鏈接還沒被抓取,則將該URL放入待抓取URL隊列末尾.直至待抓取URL隊列為空時才停止抓取網頁.

圖10 系統模塊圖

3)判斷模塊:負責對HTTP連接的URL長度、連接頻率進行檢測.若URL長度大于70 byte或連接頻率大于3次/s,則記錄該請求由人工進行進一步判斷.并比較SQL解析模塊生成的SQL語法樹的特征值與映射表中的特征值,根據結果判斷該用戶輸入是否為SQL注入攻擊.

4)SQL解析模塊:負責對SQL語句進行解析,生成相應的SQL語法樹.該模塊包括詞法分析和語法分析.詞法分析負責將輸入的SQL語句進行分詞.語法分析在詞法分析的基礎上,判斷輸入的SQL語句是否符合語法邏輯.當語法分析正常結束后,則輸出相應的抽象語法樹.

5)日志:負責接收其他模塊的記錄請求,并將疑似SQL注入攻擊的HTTP請求記錄在日志中.

6)配置文件:配置文件包括用戶提供的啟始文件(XML文件)和URL和SQL語句映射表(XML文件).其中啟始文件包含用戶提供的爬蟲啟始數據.URL和SQL語句映射表中包含了URL和SQL語句的映射信息.

4 仿真實驗與性能分析

本文通過搭建實際的測試平臺來檢測和分析LFS方法的性能.測試平臺使用tomcat服務器,后臺數據庫采用MySQL數據庫,Web應用程序為小型J2EE招聘系統,涵蓋登錄,查看簡歷等功能并代碼中存在SQL注入漏洞.測試數據為SQL注入攻擊輸入,包含SQL關鍵字的用戶輸入和用戶正常輸入各100條,其中SQL注入攻擊輸入由SQLMAP生成.為了測試LFS過濾方法對于SQL注入攻擊的攔截率和誤報率,本文對LFS過濾,關鍵字過濾和正則表達式過濾(含30條過濾規則)進行了比較.測試結果如圖11、圖12和表3所示.

圖11 SQL注入攔截率

圖12 SQL注入誤報率

表3 SQL注入攔截率和誤報率

測試結果表3、圖11和圖12表明了本文提出的LFS過濾方法相較于關鍵字過濾和正則表達式過濾有更高的攔截率和更低的誤報率,能夠較好的對SQL注入進行防御.

為了測試LFS過濾方法對于Web應用程序性能的影響,本文分別對Web應用程序未加載過濾模塊和Web應用程序加載了過濾模塊這兩種情況分別進行測試,測試結果如圖13、圖14、圖15和表4所示.

圖13 正常輸入測試時間

圖14 含關鍵字的正常輸入測試時間

圖15 SQL注入攻擊測試時間

圖13表明,對于不含關鍵字的正常訪問,加載過濾模塊與否對Web應用程序響應時間有略微的影響,加載了過濾模塊將導致Web應用程序響應時間有略微的延遲,但對用戶體驗影響不大.圖14表明,對于含有關鍵字的正常訪問,過濾模塊需要對該用戶請求進行URL長度和連接頻率的檢測.之后需要根據映射表和用戶輸入的數據進行SQL解析,但是用戶輸入中含有SQL關鍵字(如select、order by等)可能會改變了原有的SQL語句的語法,造成SQL解析失敗,進行二次解析,致使系統響應時間較長.圖15表明,對于SQL注入攻擊,當沒有加載過濾模塊時,SQL注入攻擊能夠改變Web應用程序的SQL語句,使得后臺數據庫執行該SQL語句,從而導致Web應用程序響應時間有明顯;當加載了過濾模塊時,由于要對url長度和連接頻率進行檢測,并且過濾模塊對復雜的SQL語句的解析時間較長,導致系統響應時間增加.表4則給出了加載過濾模塊與否,在三種輸入中的平均系統響應時間.因此對于SQL注入攻擊,不論加載了過濾模塊與否和系統響應時間都會有所延遲,導致了兩者的系統響應時間較為接近.因此,該過濾模塊對于系統的響應延遲在可接受的范圍內,對用戶體驗的影響不大.

表4 系統響應時間(單位:ms)

5 結束語

論文針對SQL注入攻擊問題展開研究,并結合爬蟲、數據庫代理等技術,提出了一種新的SQL注入過濾方法——LFS過濾方法.首先,通過采用爬蟲和數據庫代理技術構建URL和SQL語句映射表,完成學習過程;其次,通過對URL長度、訪問頻率及SQL語法樹這三個方面進行檢測,實現對用戶輸入進行過濾,防止SQL注入,完成過濾過程;最終,將學習過程和過濾過程有機結合,實現了新的LFS過濾方法.仿真實驗和性能分析結果表明,論文提出的LFS過濾方法能夠有效的防止SQL注入攻擊,在攔截率和誤報率方面優于關鍵字過濾方法和正則表達式過濾方法.

然而隨著系統業務的不斷提高,應用程序可能會隨著用戶輸入的不同而產生不同的SQL語句,這給本方法帶來很大的挑戰.一方面導致本方法在學習階段可能無法獲取所有的SQL語句,另一方面由于SQL語句的數量不可控,可能導致學習階段產生的URL和SQL語句映射表數據量巨大,從而導致在過濾階段耗時有顯著增加.我們同時注意到可變語句(隨著用戶輸入的不同而產生不同的SQL語句)的產生有和大相似度,例如相關的SQL語法樹結構有很大的相似性,變化的只有SQL語句的局部.因此,在未來的研究工作中,我們考慮采用基于SQL語法樹的相似度的方法來對學習階段產生的URL和SQL語句映射表進行壓縮,以此減少過濾時間.

1 鄭成興.網絡入侵防范的理論與實踐.北京:機械工業出版社,2006.

2 高鵬,嚴望佳.構建安全的Web站點.北京:清華大學出版社,1999.

3 張燕.數據挖掘提取查詢樹特征的SQL注入攻擊檢測.電子技術應用,2016,42(3):90–94.

4 黃保華,馬巖,謝統義.用于SQL注入檢測的語句塊摘要樹模型.信息安全與技術,2012,(3):34–37.

5 趙宇飛,熊剛,賀龍濤,等.面向網絡環境的SQL注入行為檢測方法.通信學報,2016,37(2):88–97.[doi:10.11959/j.issn.1000-436x.2016034]

6 張志超,王丹,趙文兵,等.一種基于神經網絡的SQL注入漏洞的檢測模型.計算機與現代化,2016,(10):67–71.[doi:10.3969/j.issn.1006-2475.2016.10.014]

7 王偉平,李昌,段桂華.基于正則表示的SQL注入過濾模塊設計.計算機工程,2011,37(5):158–160.

8 Becher M.Web application firewalls.Akademikerverlag:Universiti Teknologi MARA,2012.

9 Roesch M.Snort-lightweight intrusion detection for networks.Proceedings of the 13th USENIX Conference on System Administration.Berkeley,CA,USA.1999.229–238.

10 田玉杰,趙澤茂,王麗君,等.基于分類的SQL注入攻擊雙層防御模型研究.信息網絡安全,2015,(6):1–6.

11 Saleh AZM,Rozali NA,Buja AG,et al.A method for web application vulnerabilities detection by using boyer-moore string matching algorithm.Procedia Computer Science,2015,(72):112–121.[doi:10.1016/j.procs.2015.12.111]

12 Patel N,Shekokar N.Implementation of pattern matching algorithm to defend SQLIA.Procedia Computer Science,2015,(45):453–459.[doi:10.1016/j.procs.2015.03.078]

13 Abawajy J,Fernando H.Policy-based SQLIA detection and prevention approach for RFID systems.Computer Standards&Interfaces,2015,(38):64–71.

14 Wei K,Muthuprasanna M,Kothari S.Preventing SQL injection attacks in stored procedures.Proceedings of 2006 Software Engineering Conference.Sydney,Australia.2006.191–198.

15 黃龍軍.存儲過程技術在網絡考試系統SQL注入攻擊防御上的應用.計算機系統應用,2013,22(1):103–106.

16 Clarke J.SQL Injection Attacks and Defense.Amsterdam:Elsevier,2009.

猜你喜歡
用戶檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
小波變換在PCB缺陷檢測中的應用
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 成人国产一区二区三区| 午夜福利网址| 午夜福利网址| 青青草原国产免费av观看| 亚洲熟女偷拍| 国产欧美视频一区二区三区| 欧美三级视频在线播放| 亚洲无码高清视频在线观看| 色噜噜狠狠狠综合曰曰曰| 日韩毛片免费| 69av免费视频| 波多野结衣一区二区三区AV| 欧美国产日韩另类| 亚洲一区精品视频在线| 色综合日本| 波多野结衣无码视频在线观看| 国产导航在线| 激情在线网| 国产a在视频线精品视频下载| 香蕉精品在线| 亚洲国产欧美国产综合久久 | 九九热视频精品在线| 亚洲天堂精品视频| 高清无码不卡视频| a级毛片免费播放| 国产成人综合久久精品下载| 国产精品久久久久久久伊一| 一级看片免费视频| 一区二区三区四区日韩| 试看120秒男女啪啪免费| 亚洲狼网站狼狼鲁亚洲下载| 伊人大杳蕉中文无码| 国产美女自慰在线观看| 日韩av在线直播| 亚洲第一网站男人都懂| 乱人伦中文视频在线观看免费| 欧美h在线观看| 国产精品人莉莉成在线播放| 欧美综合区自拍亚洲综合天堂| 亚洲性日韩精品一区二区| 麻豆精品久久久久久久99蜜桃| 国产成本人片免费a∨短片| 国产视频自拍一区| 国产亚洲成AⅤ人片在线观看| 在线另类稀缺国产呦| 欧美日韩免费| 欧美三级自拍| 亚洲AV无码一区二区三区牲色| 狠狠色丁香婷婷| 91午夜福利在线观看| 在线无码av一区二区三区| 成人国产精品一级毛片天堂 | 97在线碰| 国产区精品高清在线观看| 欧美a网站| 极品尤物av美乳在线观看| 亚洲婷婷六月| 亚洲一区二区三区香蕉| 丁香婷婷久久| 一本一本大道香蕉久在线播放| 91欧洲国产日韩在线人成| 视频二区国产精品职场同事| 国产精品三级专区| 一本无码在线观看| 久久人人妻人人爽人人卡片av| 精品精品国产高清A毛片| 精品色综合| 一本大道香蕉久中文在线播放| 午夜日本永久乱码免费播放片| 亚洲AV成人一区二区三区AV| 综合人妻久久一区二区精品| 不卡视频国产| 国产91视频观看| 中文字幕丝袜一区二区| 尤物精品国产福利网站| 精品少妇三级亚洲| 99激情网| 中文字幕在线一区二区在线| 色天天综合久久久久综合片| 国产欧美在线视频免费| 欧美一区二区丝袜高跟鞋| 久久特级毛片|