• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Automatic Mining of Security-Sensitive Functions from Source Code

    2018-09-11 05:13:32LinChenChunfangYangFenlinLiuDaofuGongandShichangDing
    Computers Materials&Continua 2018年8期

    Lin Chen , Chunfang Yang , , Fenlin Liu , Daofu Gong and Shichang Ding

    Abstract: When dealing with the large-scale program, many automatic vulnerability mining techniques encounter such problems as path explosion, state explosion, and low efficiency. Decomposition of large-scale programs based on safety-sensitive functions helps solve the above problems. And manual identification of security-sensitive functions is a tedious task, especially for the large-scale program. This study proposes a method to mine security-sensitive functions the arguments of which need to be checked before they are called. Two argument-checking identification algorithms are proposed based on the analysis of two implementations of argument checking. Based on these algorithms,security-sensitive functions are detected based on the ratio of invocation instances the arguments of which have been protected to the total number of instances. The results of experiments on three well-known open-source projects show that the proposed method can outperform competing methods in the literature.

    Keywords: Code mining, vulnerabilities, static analysis, security-sensitive function,source code.

    1 Introduction

    With the development of the Internet, information security has attracted widespread attention. In recent years, researchers have researched several related topics, such as cryptography [Kosba, Miller, Shi et al. (2016); Terzi, Terzi and Sagiroglu (2015)],information hiding [Luo, Song, Li et al. (2016); Ma, Luo, Li et al. (2018); Zhang, Qin,Zhang et al. (2018)] and software security [Stallings and Brown (2015)]. Vulnerabilities are a major threat to software security. Severe vulnerabilities have caused global hazards in the recent past, such as the “Heartbleed” vulnerability in a cryptographic library that caused a massive leak of private information [MITRE (2014)], and the WannaCry ransomware virus [Wikipedia (2017)] that exploited vulnerability MS17-010 [Microsoft(2017)] in Windows. The number of computer vulnerabilities worldwide continues to rise.From 2000 to 2017, the number of vulnerabilities identified every year has increased from 1,000 to 14,000 [?zkan (2017)].

    To detect software vulnerabilities, a variety of automated vulnerability detection techniques have been proposed, such as fuzzing tests [Rawat, Jain, Kumar et al. (2017);Wang, Wei, Gu et al. (2010)], model checking [Engler and Musuvathi (2004)], symbolic execution [Godefroid, Klarlund and Sen (2005); Cadar, Dunbar and Engler (2008);Godefroid, Levin and Molnar (2008)] and machine learning [Menzies, Greenwald and Frank (2007); Yamaguchi, Lindner and Rieck (2011)]. However, the structure and scale of practical software are becoming increasingly complex. When dealing with large-scale software, the above techniques encounter such problems as path explosion, state explosion,high time complexity, and low efficiency. In light of the requirements of vulnerability detection in large-scale software, the problem can be divided into subclasses or subsets. For example, Yamaguchi et al. [Yamaguchi, Maier, Gascon et al. (2015)] proposed an automatically generated detection script for a given sink function to search for taint-style vulnerabilities on a code property graph. The guided fuzzer, which uses critical operations as starting point for testing, was proposed in Ganesh et al. [Ganesh, Leek and Rinard (2009);Haller, Slowinska, Neugschwandtner et al. (2013)], and yielded good fuzzer efficiency.AntMiner [Liang, Bian, Zhang et al. (2016)] proposed a detection technique that searches for bugs in sub-repositories of the original source code of a given software.

    The above automatic detection techniques improve the efficiency of detection by scale decomposition. Such segmentation at present is often based on a security-sensitive function or a type of security-sensitive function. Thus, the identification of security-sensitive functions is an important step in many automatic vulnerability detection methods. Many security vulnerabilities still depend on manual detection, which involves attending closely to highlevel security-sensitive functions. Therefore, the identification of security-sensitive functions is significant for automatic detection techniques and manual detection.

    Manual analysis is the most common method for the identification of security-sensitive functions these days. Of functions in the common libraries, security-sensitive ones, such asmemcpy()andstrcpy()in the C library, are identified by experience. However, in case of self-implementing functions of code projects (such asBlockMove()and SSL_free()in OpenSSL), the efficiency of manually identifying security-sensitive functions is low. In such problem, project documents are used to determine whether a function is security sensitive. However, document-based analysis requires the source code, and is challenging to apply when the documents are not clear or do not exist. Thus, manual identification of security-sensitive functions is a tedious task, especially for large-scale programs.

    Research on automatic mining of security-sensitive functions is scarce. Ganesh et al.[Yun, Min, Si et al. (2016)] analyzed the semantic relationship among arguments when inferring correct API usage from the source code, which provides some inspiration for the method proposed here. AntMiner [Liang, Bian, Zhang et al. (2016)] mined potentially bug-prone functions by checking arguments protected by a conditional statement.AntMiner considered only one implementation of argument checking and thus omitted some security-sensitive functions. Past research has shown that security-sensitive functions can be automatically mined, but due to the differences in the forms of these functions, many types of security-sensitive functions are ignored in the mining process.

    Based on the work in Liang et al. [Liang, Bian, Zhang et al. (2016); Yun, Min, Si et al.(2016)], this study proposes an improved method to automatically mine security-sensitive functions. The proposed method considers the common form of argument checking as well as constraint checks between arguments, thus revealing more security-sensitive functions than AntMiner. The results of experiments show that the proposed method outperforms that proposed in AntMiner.

    2 Argument-sensitive functions

    A security-sensitive function is a function with security specifications. Failure to satisfy any of the specifications to call this function may result in bugs in the program. The forms and implementations of a security specification are diverse. One type of securitysensitive functions attributes their security to the validity of their arguments. The form of security specification, in this case, is that the arguments of the function instance need to meet specific legal requirements, such as that the argument cannot be NULL or must be positive, and the implementation is that the caller of the function needs to ensure that this argument is legal.

    This article calls the above type of security-sensitive function an argument-sensitive security-sensitive function, or simply an argument-sensitive function. Argument-sensitive functions such asmemcpy(),strcpy()in the early C library are used in many programs. If the callers want to safely call argument-sensitive functions, they need to check the validity of the incoming arguments. There are two main implementations:

    Figure 1: Code snippet of OpenSSL and its CFG

    (1) Explicit checking. The caller uses conditional statements to determine whether the argument satisfies the security requirements. If the condition is not satisfied, it means that the argument does not meet the security specifications, and the function is not executed.

    Fig. 1 shows a code snippet of OpenSSL and its control flow graph, which illustrates two argument-checking methods. Fig. 1(a) calls two argument-sensitive functions,strlen()andmemcpy(), on lines 566 and 569, respectively. The function prototype ofstrlen()isstrlen(char *s), and is used to obtain the length of string s. Its security specification is that the parameters cannot be a null value, as this may result in undefined and unsafe behavior under certain circumstances. The function prototype ofmemcpy ()ismemcpy(void *dest, const void *src, size_t n), and is used to copy data of lengthnfromsrctodest. The security specification of this function is more complex, and requires that the parametersdestandsrcnot have anullvalue, and that the size ofdestandsrcmust be greater than or equal ton; otherwise, it may cause buffer overflow. It is clear that if the caller wants to safely callstrlen()andmemcpy(), it must check the validity of the arguments.

    For the invocation instance of the functionstrlen(),res=strlen(password)(on line 566),statement 564 checks whether the argument isnullin the conditional statement. If the check fails, the invocation instance is not executed. Therefore, this is an explicit check on the argument “password.”

    For the invocation instance of the functionmemcpy(),memcpy(buf, password, res)(on line 569), statement 564 is an explicit check on the argument “password.” While conditional statement 567 also checks the third argument “res” it cannot control the execution of the instance, and thus this is not an explicit check.

    (2) Implicit checking. This does not directly check the validity of arguments, but obtains legal values by means of assignment or calculation and passes them as arguments to satisfy the security specifications of function calls.

    For the invocation instance of the functionmemcpy(),memcpy(buf, password, res),through the control flow graph (CFG) in Fig. 1(b), two values of argumentresunder two execution paths can be obtained:res=strlen(password)(on line 566), andres = bufsiz(on line 568). In the first case, the value ofres, is equal to the length ofpassword, which is the second argument inmemcpy (buf, password, res). It thus satisfies the security specification whereby the value of the third argument inmemcpy()is smaller than the size of the second argument. Statement 566 is thus an implicit check onresandpassword. In the second case, as the source of the value ofbufsizecannot be determined from the code snippet,andalthoughbufsizemay represent the size ofbuf, it cannot be determined whether the assignment ofreson line 568 satisfies the security specification ofmemcpy().Therefore, it cannot be determined whether this is an implicit check on the argumentres.As shown in the above examples, both explicit and implicit checks can implement safety specifications for argument-sensitive functions. And explicit checks have more obvious characteristics, whereas implicit checks are more subtle and difficult to identify.

    3 Mining argument-sensitive functions based on check identification

    To prevent potential security problems, the validity of arguments should be checked before argument-sensitive functions are called. A mature program should have been tested repeatedly by developers and testers. Moreover, over a long-term deployment,developers continue to repair and update security issues. Therefore, following multiple iterations, most calls of argument-sensitive functions in a given program can be considered correct, and their arguments are checked for validity. That is, for a given function, the higher the percentage of invocation instances the validity of which has been verified, the higher the probability that the function is an argument-sensitive function.

    Based on the above principle, this section provides a method to mine argument-sensitive functions based on the validity check proportion as shown in Fig. 2. The method consists of two parts. The first analyzes each invocation instance of the function and uses the identification algorithm to determine whether each argument has an explicit or an implicit check to obtain check information. The second part uses a decision algorithm to determine whether the given function is an argument-sensitive function based on the total number of invocation instances, the check information of each function instance and a threshold.

    Figure 2: Mining argument-sensitive functions based on check identification

    3.1 Explicit check identification algorithm

    The validity of the arguments is checked by a conditional statement during the explicit check. If it passes this check, the function instance is subsequently called; otherwise, it is not called. Based on this feature, AntMiner identified whether explicit checks were performed prior to the function call. To consider the overall efficiency of the identification of argument-sensitive functions, this section describes improvements to the explicit check of AntMiner in terms of selecting conditional statements and checking variable protection.

    AntMiner requires all conditional statements and their corresponding validated variables set (VVS). The VVS for each conditional statement contains all variables that are checked directly or indirectly by the conditional statement. However, only conditional statements that control the invocation instance have an effect on explicit checking.Therefore, this section only extracts control dependency conditions related to the given function instance fito reduce the computational cost and subsequent matching tasks required for the VVS.

    AntMiner uses a recursive method to define the protection of variables in conditional statements. This section uses the non-recursive Algorithm 1 to identify the protected arguments. Procedure ExtractSymbolOfArg (pindex) extracts the symbol set symbolSetpindexof the argumentpindex. The symbol set contains variables that constitute pindexand all variables in the chain defined by pindex. If the intersection of the symbol set and VVS is not empty (line 7), there is an explicit check on argument pindex,which avoids recursive operations.

    The improved explicit check identification process is shown in Algorithm 1, and consists of three parts: First, the set conditionSetfiof conditional statements related to the function instance fiis extracted. Second, the set of the VVS of each conditional statements in conditionSetfiis calculated. The VVS can be extracted from a backward traversal of the instance statement on the data dependence subgraph (DDS) of the program dependence graph (PDG). Third, each argument is checked to determine if it is protected by a conditional statement. If variable v belongs to the VVS of a conditional statement, or if another variable v′defining v and v′belongs to the VVS, the conditional statement “protects” v. If argument p is “protected” by a control dependency condition in a function instance, there is an explicit check on argument p of the function instance.

    Algorithm 1. Identifying the explicit check on function instance

    3.2 Implicit check identification algorithm

    An implicit check has no obvious single feature compared with an explicit check, and involves the caller setting a valid value for an argument in the form of a direct assignment or an arithmetic operation based on a clear understanding of the function’s security specification. In case of a known security specification, one can determine whether the processing of the argument satisfies the corresponding security semantics, thereby decide whether there is an implicit check on the call instance. However, if the security specification is unknown or does not exist, it is difficult to determine whether there is an implicit check on the function instance.

    For a certain type of function, there is a constraint relationship among the parameters,such as the functionmemcpy (void *dest, const void *src, size_t n), and a constraint relationship onn, the size ofsrcanddest. When the function is called, if the constraint is not satisfied, it is likely to cause security problems such as program crash. The constraint is a type of security specification for the function, an implicit check of the validity of its arguments. For this type of specification, this section proposes implicit check identification Algorithm 2, which determines whether there is an implicit check on the function instance by identifying whether a direct or indirect constraint obtains among the relevant arguments.

    Algorithm 2 first uses the procedure ExtractAllPath(fi) to extract all paths from the entry of the caller to the callee fi, and uses the procedure ExtractDefineChains(pat?,pindex) to calculate the definition chain of argument (pindex) in the execution path (pat?):

    where (x,l) represents the statement, l defines variable x, and x defines pindexalong pat? directly or indirectly. In case of two arguments along the same path, the intersection of their defined chain sets is not empty, indicating that there is a data constraint relationship between them, i.e. there is an implicit check on them.

    Algorithm 2. Identifying the implicit check on function instance

    Algorithm 2 is used to identify the implicit check onmemcpy (buf, password, res)(on line 569) in the code snippet in Fig. 1.

    The set of execution paths from the entry of the code snippet tomemcpy (buf, password,res)is:

    For pat?1, the definition chains of all arguments are:

    Clearly in pat?1, there is no non-empty intersection between any pair of definition chains;thus, on pat?1, the caller imposes no implicit check on the function instancememcpy(buf,password, res).

    For pat?2, the definition chains of all arguments are:

    Obviously in the pat?2, there is a non-empty intersection between the definition chains of argument, password, and the definition chains of argument, res, that is,

    Therefore, on pat?2, the caller imposes an implicit check on the arguments of function instancememcpy (buf, password, res).

    3.3 Decision algorithm for security-sensitive functions

    Algorithm 3. Identifying argument-sensitive function according to check information

    Algorithm 3 determines whether the objective function is an argument-sensitive function based on the information related to the explicit and implicit checking of all function instances, and the corresponding threshold. In a function instance, if there is an explicit or implicit check on an argument, the instance is considered to conform to a security specification on the argument, and the protection counter of the parameter corresponding to the argument is incremented by one. Then, the protection counter for all parameters and the ratio of the maximum number of parameter protection counters to the total number of instances are calculated, where the latter is called the sensitive measure function:

    whereMaxCounterrepresents the largest value of the parameter protection counter, andnis the total number of calls to the instance. A high value of the sensitive measure function indicates more instances in the test for argument checking, implies a high probability of the given function being an argument-sensitive function. The threshold of Eq. (10) is set to determine whether the corresponding function is argument sensitive.

    4 Experimental results and analysis

    To evaluate the effectiveness of the proposed method, 3 well-known open-source projects were chosen for experiments. The detailed information is listed in Tab. 1, where OpenSSL is a cryptography library used for SSL communications, Libtiff is used to manipulate label images, and SQLite is a software library implementing the SQL database engine. All three software have been updated several times, and are widely used mature code projects.

    Table 1: Datasets of three open-source projects

    The argument-sensitive functions mining the results of the three software are shown in Tab. 2. As is evident, our method identified more security-sensitive functions than AntMiner because it considered the implicit check on arguments, which is ignored in AntMiner.

    Table 2: The numbers of argument-sensitive functions (λ=0.7)

    The functions mined in the above results were mostly project-specific functions that were unique to the relevant projects, and thus can be only manually confirmed to be argumentsensitive functions. As the number of mined functions was large, it was difficult to accurately evaluate the performance of the proposed method.

    To better evaluate the performance of the proposed method, 28 argument-sensitive functions and 32 normal functions of glibc were chosen as benchmark functions for experiments. glibc is a C runtime library released by GUN that is widely used in many software. As the selected functions were commonly used and their security specifications were well known, it was easy to identify the argument-sensitive functions.

    The source code of the three open-source software was combined, and AntMiner and the proposed method were used to identify 60 glibc functions. The receiver operating characteristics (ROC) curves of the results are shown in Fig. 3, where the curve of our method is above that of AntMiner. This indicates that our method yielded better performance.

    Figure 3: ROC curves of AntMiner and the proposed method

    5 Conclusion

    The automaticmining of security-sensitive functions is important for improving the efficiency of manual and automated vulnerability detection. This paper analyzed two forms of argument checking and introduced corresponding methods of identification to propose a method to mine argument-sensitive functions. Experiments involving the mining of security-sensitive functions were implemented on large, well-known opensource projects. The experimental results showed that it can outperform AntMiner.However, owing to the different ways of implementing program semantics, the implicit check identification algorithm proposed in this paper failed at times, such as when using a constant instead of a calculation. In future research, we intend to further improve the identification of implicit check to enhance the efficiency of the proposed method to mine security-sensitive functions.

    Acknowledgments:This study was supported in part by the National Natural Science Foundation of China (Nos. 61401512, 61602508, 61772549, U1636219 and U1736214),the National Key R&D Program of China (No. 2016YFB0801303 and 2016QY01W0105),the Key Technologies R&D Program of Henan Province (No. 162102210032), and the Key Science and Technology Research Project of Henan Province (No. 152102210005).

    亚洲九九香蕉| 国产色视频综合| kizo精华| 一区二区三区激情视频| 欧美国产精品va在线观看不卡| 国产一区二区 视频在线| 后天国语完整版免费观看| 51午夜福利影视在线观看| 亚洲成人免费av在线播放| 秋霞在线观看毛片| 一级毛片我不卡| 9色porny在线观看| 女警被强在线播放| 国产精品av久久久久免费| 热99久久久久精品小说推荐| 免费在线观看视频国产中文字幕亚洲 | 麻豆国产av国片精品| 免费女性裸体啪啪无遮挡网站| 久久久欧美国产精品| 午夜福利视频在线观看免费| 超碰97精品在线观看| 国产在视频线精品| 久久久久久久精品精品| 可以免费在线观看a视频的电影网站| 亚洲熟女精品中文字幕| a级毛片在线看网站| 黑丝袜美女国产一区| 黄色视频不卡| 亚洲国产精品999| 人人妻,人人澡人人爽秒播 | 天天影视国产精品| 国产欧美日韩一区二区三区在线| 精品少妇一区二区三区视频日本电影| 亚洲精品久久午夜乱码| 2018国产大陆天天弄谢| 免费在线观看黄色视频的| 美女大奶头黄色视频| 久久久久精品人妻al黑| 欧美变态另类bdsm刘玥| 人妻 亚洲 视频| 丝袜喷水一区| 三上悠亚av全集在线观看| 狠狠精品人妻久久久久久综合| 亚洲成人免费电影在线观看 | 黄片小视频在线播放| 久热这里只有精品99| h视频一区二区三区| 亚洲专区中文字幕在线| 老司机靠b影院| 老司机靠b影院| 蜜桃国产av成人99| 欧美亚洲日本最大视频资源| 亚洲中文字幕日韩| 黄色 视频免费看| 在线亚洲精品国产二区图片欧美| 亚洲精品成人av观看孕妇| 亚洲欧美一区二区三区国产| 好男人视频免费观看在线| 多毛熟女@视频| 欧美国产精品一级二级三级| 国产精品三级大全| 亚洲综合色网址| 国产成人欧美在线观看 | 欧美成狂野欧美在线观看| 色精品久久人妻99蜜桃| 久久精品国产亚洲av高清一级| 中文字幕人妻丝袜制服| 国产伦人伦偷精品视频| 亚洲欧美一区二区三区黑人| 国产高清不卡午夜福利| 国产精品香港三级国产av潘金莲 | 两性夫妻黄色片| 国产成人影院久久av| 国产精品 国内视频| 亚洲精品自拍成人| a级毛片在线看网站| 纵有疾风起免费观看全集完整版| 国产女主播在线喷水免费视频网站| 51午夜福利影视在线观看| 51午夜福利影视在线观看| 精品福利永久在线观看| av网站免费在线观看视频| 亚洲精品日韩在线中文字幕| 大香蕉久久成人网| 波多野结衣一区麻豆| 国产极品粉嫩免费观看在线| 日本色播在线视频| 制服诱惑二区| 亚洲精品日韩在线中文字幕| 午夜av观看不卡| 18禁黄网站禁片午夜丰满| 国产色视频综合| 亚洲欧美成人综合另类久久久| 一本色道久久久久久精品综合| 亚洲伊人久久精品综合| 成年女人毛片免费观看观看9 | 午夜av观看不卡| 久久久精品国产亚洲av高清涩受| 99久久精品国产亚洲精品| 亚洲精品国产一区二区精华液| 国产人伦9x9x在线观看| 脱女人内裤的视频| 午夜福利视频精品| 又黄又粗又硬又大视频| 另类精品久久| 亚洲欧美精品综合一区二区三区| 成年美女黄网站色视频大全免费| 精品免费久久久久久久清纯 | 波多野结衣一区麻豆| 视频区图区小说| 2018国产大陆天天弄谢| 日本av手机在线免费观看| 亚洲色图综合在线观看| 亚洲精品国产av成人精品| 热99国产精品久久久久久7| 午夜激情av网站| 国产精品国产三级国产专区5o| 黄色 视频免费看| 妹子高潮喷水视频| 亚洲av成人不卡在线观看播放网 | 91成人精品电影| 亚洲精品久久成人aⅴ小说| 91麻豆精品激情在线观看国产 | 国产老妇伦熟女老妇高清| 又紧又爽又黄一区二区| 每晚都被弄得嗷嗷叫到高潮| 国产一区有黄有色的免费视频| 国产精品国产av在线观看| www.av在线官网国产| 99国产精品一区二区蜜桃av | 亚洲精品乱久久久久久| 777米奇影视久久| 久久久久久久久免费视频了| av在线播放精品| 亚洲精品日本国产第一区| 亚洲av综合色区一区| 国产免费又黄又爽又色| 亚洲视频免费观看视频| 满18在线观看网站| 又大又爽又粗| 亚洲成av片中文字幕在线观看| 亚洲九九香蕉| bbb黄色大片| 久久青草综合色| 国产无遮挡羞羞视频在线观看| h视频一区二区三区| 人人妻,人人澡人人爽秒播 | 久久性视频一级片| 亚洲精品久久久久久婷婷小说| 亚洲av男天堂| 青青草视频在线视频观看| 久久精品亚洲熟妇少妇任你| 国产高清视频在线播放一区 | 男人添女人高潮全过程视频| 亚洲,欧美精品.| 久久女婷五月综合色啪小说| 一区二区三区精品91| 久久久久国产一级毛片高清牌| 久久久精品94久久精品| 在线观看免费高清a一片| 欧美精品亚洲一区二区| 国产爽快片一区二区三区| 热99久久久久精品小说推荐| 国产男女超爽视频在线观看| a级毛片在线看网站| 亚洲天堂av无毛| 国产高清videossex| 不卡av一区二区三区| 一边摸一边做爽爽视频免费| 丝瓜视频免费看黄片| 亚洲国产精品999| 一级毛片黄色毛片免费观看视频| 欧美日韩成人在线一区二区| 亚洲成国产人片在线观看| 黄色毛片三级朝国网站| 又紧又爽又黄一区二区| 在线观看人妻少妇| 男女床上黄色一级片免费看| 天堂中文最新版在线下载| 亚洲人成电影免费在线| 成人18禁高潮啪啪吃奶动态图| 久久精品国产综合久久久| 建设人人有责人人尽责人人享有的| 天天躁狠狠躁夜夜躁狠狠躁| 久久久国产精品麻豆| 婷婷色麻豆天堂久久| 日韩制服骚丝袜av| 校园人妻丝袜中文字幕| 黄色视频在线播放观看不卡| 亚洲伊人色综图| 91麻豆精品激情在线观看国产 | 丰满少妇做爰视频| 三上悠亚av全集在线观看| 亚洲成人免费电影在线观看 | 99热国产这里只有精品6| 国产亚洲欧美精品永久| 脱女人内裤的视频| 黄网站色视频无遮挡免费观看| 美女午夜性视频免费| 黑丝袜美女国产一区| 后天国语完整版免费观看| 色综合欧美亚洲国产小说| 亚洲国产最新在线播放| 激情视频va一区二区三区| 男女无遮挡免费网站观看| 久久精品人人爽人人爽视色| 香蕉国产在线看| 成人影院久久| 在线 av 中文字幕| 亚洲精品一区蜜桃| 一二三四社区在线视频社区8| 日本a在线网址| 亚洲伊人久久精品综合| 国产一区二区 视频在线| 久久久久网色| 嫩草影视91久久| 深夜精品福利| 电影成人av| 十分钟在线观看高清视频www| 亚洲中文日韩欧美视频| 日韩中文字幕欧美一区二区 | e午夜精品久久久久久久| 亚洲欧美日韩高清在线视频 | 老鸭窝网址在线观看| 日韩制服骚丝袜av| 亚洲欧美日韩高清在线视频 | 18在线观看网站| 欧美黄色淫秽网站| 欧美日韩视频高清一区二区三区二| 最近手机中文字幕大全| 纯流量卡能插随身wifi吗| 久久亚洲国产成人精品v| 国产黄色免费在线视频| 成人三级做爰电影| 午夜福利影视在线免费观看| 黄色 视频免费看| 亚洲av美国av| 免费高清在线观看视频在线观看| 国产男女内射视频| 美女福利国产在线| 欧美国产精品va在线观看不卡| 韩国精品一区二区三区| 成人亚洲精品一区在线观看| 中国美女看黄片| 午夜久久久在线观看| 99国产精品一区二区三区| videos熟女内射| 看免费成人av毛片| 成在线人永久免费视频| 色婷婷久久久亚洲欧美| 另类亚洲欧美激情| 一级片'在线观看视频| 无限看片的www在线观看| 赤兔流量卡办理| 午夜福利乱码中文字幕| 国产欧美日韩精品亚洲av| 成年人黄色毛片网站| 制服人妻中文乱码| 中文乱码字字幕精品一区二区三区| 涩涩av久久男人的天堂| 丝袜美腿诱惑在线| 国产成人91sexporn| 久久精品久久精品一区二区三区| 亚洲精品第二区| 一区二区日韩欧美中文字幕| 国产有黄有色有爽视频| 国产麻豆69| 青青草视频在线视频观看| 国产视频一区二区在线看| 久久精品熟女亚洲av麻豆精品| 精品国产乱码久久久久久男人| 国产成人一区二区三区免费视频网站 | 免费看十八禁软件| 中文精品一卡2卡3卡4更新| www日本在线高清视频| 男女午夜视频在线观看| 国产欧美亚洲国产| 国产熟女午夜一区二区三区| 国产日韩一区二区三区精品不卡| 在线观看www视频免费| 高清视频免费观看一区二区| 亚洲美女黄色视频免费看| 校园人妻丝袜中文字幕| 欧美亚洲日本最大视频资源| 在线精品无人区一区二区三| 成人黄色视频免费在线看| 国产av国产精品国产| 中文字幕亚洲精品专区| 亚洲男人天堂网一区| 亚洲熟女精品中文字幕| 日日摸夜夜添夜夜爱| 欧美+亚洲+日韩+国产| 大香蕉久久网| 亚洲国产av影院在线观看| 一级毛片我不卡| 乱人伦中国视频| 捣出白浆h1v1| 国产精品偷伦视频观看了| 可以免费在线观看a视频的电影网站| 免费日韩欧美在线观看| 欧美黑人精品巨大| 久久免费观看电影| 午夜久久久在线观看| 国产精品熟女久久久久浪| 国产真人三级小视频在线观看| 欧美精品一区二区免费开放| 免费在线观看黄色视频的| 啦啦啦在线免费观看视频4| 久久人人97超碰香蕉20202| 色94色欧美一区二区| 99久久精品国产亚洲精品| 欧美人与性动交α欧美软件| 久久国产精品男人的天堂亚洲| 满18在线观看网站| 亚洲欧洲日产国产| 秋霞在线观看毛片| 亚洲久久久国产精品| 亚洲人成电影免费在线| 黄片播放在线免费| 黄色 视频免费看| 人人妻人人澡人人爽人人夜夜| 十分钟在线观看高清视频www| 在现免费观看毛片| 亚洲人成网站在线观看播放| 久久精品亚洲av国产电影网| 精品一区在线观看国产| 性色av一级| 亚洲视频免费观看视频| 欧美日韩视频精品一区| 91精品伊人久久大香线蕉| 国产亚洲av片在线观看秒播厂| 亚洲人成77777在线视频| 大片电影免费在线观看免费| 亚洲五月色婷婷综合| 91麻豆精品激情在线观看国产 | 国产日韩欧美在线精品| 亚洲av国产av综合av卡| 免费在线观看日本一区| av线在线观看网站| 精品免费久久久久久久清纯 | 50天的宝宝边吃奶边哭怎么回事| 久久人人97超碰香蕉20202| 亚洲av日韩在线播放| 伦理电影免费视频| 丰满饥渴人妻一区二区三| 国产精品九九99| 欧美黄色淫秽网站| a级毛片黄视频| 国产一卡二卡三卡精品| 国产成人影院久久av| 国产免费视频播放在线视频| 欧美在线黄色| 麻豆av在线久日| 一级毛片女人18水好多 | 久9热在线精品视频| 中文字幕av电影在线播放| 极品少妇高潮喷水抽搐| 国产精品 国内视频| 国产av国产精品国产| 国产免费又黄又爽又色| 91国产中文字幕| av电影中文网址| 亚洲成人国产一区在线观看 | 亚洲伊人色综图| 免费女性裸体啪啪无遮挡网站| 色婷婷av一区二区三区视频| 亚洲国产欧美网| 久热这里只有精品99| 成年人黄色毛片网站| 亚洲国产最新在线播放| 一区福利在线观看| 日本午夜av视频| 99久久99久久久精品蜜桃| 国产欧美日韩一区二区三 | 国产成人精品无人区| 国产一区二区 视频在线| av线在线观看网站| 久久天躁狠狠躁夜夜2o2o | 亚洲久久久国产精品| 成人国语在线视频| 少妇 在线观看| 日韩熟女老妇一区二区性免费视频| 国产激情久久老熟女| 999久久久国产精品视频| 国产精品久久久久久人妻精品电影 | 亚洲国产精品国产精品| cao死你这个sao货| 91精品国产国语对白视频| 巨乳人妻的诱惑在线观看| 欧美成狂野欧美在线观看| 我要看黄色一级片免费的| 国产91精品成人一区二区三区 | 一区二区日韩欧美中文字幕| 欧美日韩一级在线毛片| 亚洲欧美清纯卡通| 久久av网站| 亚洲成国产人片在线观看| 蜜桃国产av成人99| 亚洲欧美精品自产自拍| 黑人猛操日本美女一级片| 丝瓜视频免费看黄片| 久久免费观看电影| 久久久久久久精品精品| 女人高潮潮喷娇喘18禁视频| 在线观看免费日韩欧美大片| 又黄又粗又硬又大视频| 91精品三级在线观看| 成年女人毛片免费观看观看9 | 亚洲国产精品成人久久小说| 欧美激情 高清一区二区三区| 在线av久久热| 激情视频va一区二区三区| 亚洲欧美精品自产自拍| 中文字幕av电影在线播放| avwww免费| bbb黄色大片| 在线观看www视频免费| 免费观看人在逋| 黄片播放在线免费| 国产一区有黄有色的免费视频| 国产黄频视频在线观看| 国语对白做爰xxxⅹ性视频网站| 国产不卡av网站在线观看| 少妇人妻久久综合中文| 亚洲三区欧美一区| 久久人妻福利社区极品人妻图片 | 在线观看免费视频网站a站| av福利片在线| 97人妻天天添夜夜摸| 99精国产麻豆久久婷婷| 免费在线观看日本一区| 午夜福利乱码中文字幕| 色婷婷av一区二区三区视频| 一二三四在线观看免费中文在| 久久久国产精品麻豆| 制服人妻中文乱码| 欧美在线黄色| 精品国产一区二区久久| 夫妻午夜视频| 久久久久久免费高清国产稀缺| 男女免费视频国产| 热re99久久国产66热| 一区二区日韩欧美中文字幕| 在线av久久热| 亚洲精品国产av蜜桃| 嫁个100分男人电影在线观看 | 欧美日韩亚洲综合一区二区三区_| 精品少妇久久久久久888优播| 在线观看www视频免费| 亚洲欧美日韩另类电影网站| 在线天堂中文资源库| 高清av免费在线| 中文字幕制服av| 亚洲国产精品一区二区三区在线| 免费在线观看日本一区| 成人午夜精彩视频在线观看| 国产国语露脸激情在线看| 一级黄色大片毛片| 99国产综合亚洲精品| 日日摸夜夜添夜夜爱| 赤兔流量卡办理| 女人精品久久久久毛片| 少妇粗大呻吟视频| 日韩人妻精品一区2区三区| 女人爽到高潮嗷嗷叫在线视频| 老汉色av国产亚洲站长工具| 欧美国产精品一级二级三级| 国产野战对白在线观看| 免费人妻精品一区二区三区视频| 一本大道久久a久久精品| 成年人免费黄色播放视频| 国产男女内射视频| 99久久人妻综合| 观看av在线不卡| 久久人人爽人人片av| 久久中文字幕一级| 免费在线观看日本一区| 欧美黄色片欧美黄色片| 久久久国产一区二区| 老熟女久久久| 午夜av观看不卡| 久久国产精品影院| 国产免费福利视频在线观看| 99国产精品99久久久久| 宅男免费午夜| 国产精品三级大全| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲一卡2卡3卡4卡5卡精品中文| 一级黄色大片毛片| 99国产精品一区二区蜜桃av | 99国产精品99久久久久| 亚洲男人天堂网一区| 精品久久蜜臀av无| 18禁观看日本| 中国美女看黄片| 成年人午夜在线观看视频| 夫妻性生交免费视频一级片| 久久99热这里只频精品6学生| 1024香蕉在线观看| 亚洲国产中文字幕在线视频| 日本91视频免费播放| 精品国产乱码久久久久久小说| 免费看av在线观看网站| 天堂中文最新版在线下载| 好男人视频免费观看在线| 大香蕉久久网| 日本av手机在线免费观看| 午夜免费观看性视频| 国产亚洲欧美精品永久| 午夜影院在线不卡| 菩萨蛮人人尽说江南好唐韦庄| 国产高清视频在线播放一区 | 日本黄色日本黄色录像| 我的亚洲天堂| av视频免费观看在线观看| 午夜激情久久久久久久| 波多野结衣av一区二区av| 操美女的视频在线观看| 黑人巨大精品欧美一区二区蜜桃| 免费在线观看黄色视频的| 亚洲精品中文字幕在线视频| 亚洲熟女精品中文字幕| 婷婷成人精品国产| 国产熟女午夜一区二区三区| 女人被躁到高潮嗷嗷叫费观| 99精品久久久久人妻精品| 悠悠久久av| 亚洲一卡2卡3卡4卡5卡精品中文| 每晚都被弄得嗷嗷叫到高潮| 两性夫妻黄色片| 亚洲精品中文字幕在线视频| 亚洲人成电影免费在线| 欧美亚洲日本最大视频资源| 波多野结衣一区麻豆| 亚洲国产欧美日韩在线播放| 99精品久久久久人妻精品| 亚洲 国产 在线| 国产成人一区二区三区免费视频网站 | 国产精品免费视频内射| 视频在线观看一区二区三区| 欧美精品亚洲一区二区| 亚洲av国产av综合av卡| 国产精品一二三区在线看| 亚洲熟女精品中文字幕| 国产成人欧美| 国产成人av教育| 午夜免费成人在线视频| 成人国产av品久久久| 女警被强在线播放| 午夜免费成人在线视频| 两人在一起打扑克的视频| 天天影视国产精品| 日韩av免费高清视频| 久久亚洲精品不卡| 国产人伦9x9x在线观看| 亚洲,欧美,日韩| 高清不卡的av网站| 亚洲人成77777在线视频| 免费在线观看视频国产中文字幕亚洲 | 国产精品香港三级国产av潘金莲 | 欧美变态另类bdsm刘玥| 青春草亚洲视频在线观看| 成年人免费黄色播放视频| 亚洲av片天天在线观看| 久久中文字幕一级| 亚洲精品日本国产第一区| 麻豆av在线久日| 国产无遮挡羞羞视频在线观看| 免费观看a级毛片全部| 天天躁夜夜躁狠狠躁躁| 久久久久久亚洲精品国产蜜桃av| 国产精品麻豆人妻色哟哟久久| 一边亲一边摸免费视频| 国产欧美日韩一区二区三 | 国产成人av教育| 亚洲成人免费av在线播放| 高清av免费在线| 宅男免费午夜| 亚洲,一卡二卡三卡| 99精国产麻豆久久婷婷| a级毛片黄视频| 只有这里有精品99| 一区二区三区乱码不卡18| 国产有黄有色有爽视频| 国产老妇伦熟女老妇高清| 免费看十八禁软件| 日韩中文字幕欧美一区二区 | 天天躁夜夜躁狠狠躁躁| 在线av久久热| 考比视频在线观看| 国产一区二区 视频在线| 国产亚洲欧美在线一区二区| 热re99久久国产66热| 中文字幕另类日韩欧美亚洲嫩草| a 毛片基地| 免费人妻精品一区二区三区视频| 黄色 视频免费看| 色婷婷av一区二区三区视频| 国产精品久久久av美女十八| 欧美另类一区| 亚洲精品美女久久久久99蜜臀 | 国产男女超爽视频在线观看| 在现免费观看毛片| 只有这里有精品99| 黑人巨大精品欧美一区二区蜜桃| 大码成人一级视频| 国产一卡二卡三卡精品| 亚洲,一卡二卡三卡| 免费观看av网站的网址| 欧美日韩av久久| 欧美成狂野欧美在线观看| 精品人妻1区二区| 亚洲精品国产一区二区精华液| 赤兔流量卡办理| 久久 成人 亚洲|