PYTHON黑帽編程1.5 使用WIRESHARK練習(xí)網(wǎng)絡(luò)協(xié)議分析

Python黑帽編程1.5使用Wireshark練習(xí)網(wǎng)絡(luò)協(xié)議分析

1.5.0.1本系列教程說(shuō)明

本系列教程滞项,采用的大綱母本為《Understanding Network Hacks Attack and Defense with Python》一書(shū)民褂,為了解決很多同學(xué)對(duì)英文書(shū)的恐懼另伍,解決看書(shū)之后實(shí)戰(zhàn)過(guò)程中遇到的問(wèn)題而作。由于原書(shū)很多地方過(guò)于簡(jiǎn)略做鹰,筆者根據(jù)實(shí)際測(cè)試情況和最新的技術(shù)發(fā)展對(duì)內(nèi)容做了大量的變更娇钱,當(dāng)然最重要的是個(gè)人偏好。教程同時(shí)提供圖文和視頻教程兩種方式铸鹰,供不同喜好的同學(xué)選擇。

1.5.0.2本節(jié)前言

在上一節(jié)皂岔,筆者羅列的學(xué)習(xí)網(wǎng)絡(luò)編程應(yīng)該了解或掌握的網(wǎng)絡(luò)基礎(chǔ)知識(shí)蹋笼,這其中直接和編程相關(guān)的是網(wǎng)絡(luò)協(xié)議。抓包分析躁垛,一直都是學(xué)習(xí)網(wǎng)絡(luò)協(xié)議過(guò)程中剖毯,理論聯(lián)系實(shí)踐的最好方式,而目前最常用的抓包工具就是Wireshark教馆。

隨著我們教程的深入逊谋,我們也會(huì)使用Wireshark來(lái)準(zhǔn)備測(cè)試用的數(shù)據(jù)包,校驗(yàn)程序的準(zhǔn)確性土铺,編寫(xiě)程序之前做人工分析以提供準(zhǔn)確的解決問(wèn)題思路或算法胶滋。

Wireshark的詳細(xì)使用和高級(jí)功能,建議有精力的同學(xué)去閱讀《Wireshark網(wǎng)絡(luò)分析實(shí)戰(zhàn)》一書(shū)悲敷,本節(jié)內(nèi)容以基礎(chǔ)和暫時(shí)夠用為原則究恤。

1.5.1 WIRESHARK簡(jiǎn)介

Wireshark是當(dāng)今世界上被應(yīng)用最廣泛的網(wǎng)絡(luò)協(xié)議分析工具。用戶(hù)通常使用Wireshark來(lái)學(xué)習(xí)網(wǎng)絡(luò)協(xié)議后德,分析網(wǎng)絡(luò)問(wèn)題部宿,檢測(cè)攻擊和木馬等。

Wireshark官網(wǎng)為https://www.wireshark.org/

圖1 Wireshark官網(wǎng)

進(jìn)入下載頁(yè)面理张,我們可以看到Wireshark提供windows和Mac OS X的安裝文件赫蛇,同時(shí)提供了源碼供在Linux環(huán)境中進(jìn)行安裝。

圖2

下載和安裝雾叭,這里就不詳細(xì)說(shuō)明了悟耘,安裝程序還是源碼安裝1.2、1.4節(jié)課程中织狐,有詳細(xì)的演示作煌,各位同學(xué)依樣畫(huà)葫蘆即可。

在Kali Linux中赚瘦,已經(jīng)預(yù)裝了Wireshark粟誓,只需要在終端輸入Wireshark,即可啟動(dòng)程序起意。

root@kali:~# wireshark

啟動(dòng)之后鹰服,由于Kali默認(rèn)是root賬號(hào),會(huì)引發(fā)Lua加載錯(cuò)誤揽咕,直接忽略即可悲酷。

圖3

1.5.2抓包

啟動(dòng)Wireshark后,在主界面會(huì)列出當(dāng)前系統(tǒng)中所有的網(wǎng)卡信息亲善。

圖4

在此處選擇要監(jiān)聽(tīng)的網(wǎng)卡设易,雙擊就會(huì)進(jìn)入監(jiān)聽(tīng)模式。還有另一個(gè)入口就是上方的配置按鈕蛹头。

圖5

打開(kāi)配置界面顿肺,可以對(duì)網(wǎng)卡和數(shù)據(jù)包捕獲做一些配置。

圖6

選中網(wǎng)卡渣蜗,點(diǎn)擊開(kāi)始屠尊。

圖7

抓包的過(guò)程中,我們可以看到數(shù)據(jù)的變化耕拷。點(diǎn)擊停止按鈕讼昆,停止捕獲數(shù)據(jù)包。

圖8

在軟件的核心界面就是數(shù)據(jù)包列表骚烧,顯示的列有序號(hào)浸赫、時(shí)間、源IP赃绊、目標(biāo)IP既峡、協(xié)議、長(zhǎng)度凭戴、基本信息涧狮。Wireshark使用不同的顏色對(duì)不同的協(xié)議做了區(qū)分。在視圖菜單么夫,我們可以找到和著色相關(guān)的命令者冤。

圖9

在圖9所示的命令中,對(duì)話著色用來(lái)選擇指定顏色對(duì)應(yīng)的協(xié)議档痪,著色分組列表用來(lái)隱藏非選中著色分組中的數(shù)據(jù)包涉枫,著色規(guī)則用來(lái)定義著色外觀和包含的協(xié)議,如圖10所示腐螟。

圖10

1.5.3包過(guò)濾

捕獲的數(shù)據(jù)包通常都是比較龐大的愿汰,如果沒(méi)有過(guò)濾篩選機(jī)制,對(duì)任何人來(lái)說(shuō)乐纸,都將是一個(gè)災(zāi)難衬廷。Wireshark提供了兩種過(guò)濾器:捕捉過(guò)濾器和顯示過(guò)濾器。

1.5.3.1捕獲過(guò)濾器

捕捉過(guò)濾器是用來(lái)配置應(yīng)該捕獲什么樣的數(shù)據(jù)包汽绢,在啟動(dòng)數(shù)據(jù)包捕捉之前就應(yīng)該配置好吗跋。打開(kāi)主界面“捕獲”——>“捕獲過(guò)濾器”。

圖11

在捕獲過(guò)濾器界面宁昭,我們可以看到已有的過(guò)濾器跌宛,可以修改刪除它們,同時(shí)我們可以增加自己的過(guò)濾器积仗。

圖12

捕獲過(guò)濾器語(yǔ)法:

圖13

Protocol(協(xié)議):

可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.

如果沒(méi)有特別指明是什么協(xié)議疆拘,則默認(rèn)使用所有支持的協(xié)議。

Direction(方向):

可能的值: src, dst, src and dst, src or dst

如果沒(méi)有特別指明來(lái)源或目的地寂曹,則默認(rèn)使用"src or dst"作為關(guān)鍵字哎迄。

Host(s):

可能的值:net, port, host, portrange.

如果沒(méi)有指定此值,則默認(rèn)使用"host"關(guān)鍵字隆圆。

Logical Operations(邏輯運(yùn)算):

可能的值:not, and, or.

否("not")具有最高的優(yōu)先級(jí)芬失。或("or")和與("and")具有相同的優(yōu)先級(jí)匾灶,運(yùn)算時(shí)從左至右進(jìn)行棱烂。

下面我們具體看幾個(gè)示例:

tcp dst port 3128

顯示目的TCP端口為3128的封包。

ip src host 10.1.1.1

顯示來(lái)源IP地址為10.1.1.1的封包阶女。

host 10.1.2.3

顯示目的或來(lái)源IP地址為10.1.2.3的封包颊糜。

src portrange 2000-2500

顯示來(lái)源為UDP或TCP,并且端口號(hào)在2000至2500范圍內(nèi)的封包秃踩。

not imcp

顯示除了icmp以外的所有封包衬鱼。(icmp通常被ping工具使用)

src host 10.7.2.12 and not dst net 10.200.0.0/16

顯示來(lái)源IP地址為10.7.2.12,但目的地不是10.200.0.0/16的封包憔杨。

(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

當(dāng)使用關(guān)鍵字作為值時(shí)鸟赫,需使用反斜杠“\”。"ether proto \ip" (與關(guān)鍵字"ip"相同)。這樣寫(xiě)將會(huì)以IP協(xié)議作為目標(biāo)抛蚤。"ip proto \icmp" (與關(guān)鍵字"icmp"相同).這樣寫(xiě)將會(huì)以ping工具常用的icmp作為目標(biāo)台谢。可以在"ip"或"ether"后面使用"multicast"及"broadcast"關(guān)鍵字岁经。當(dāng)您想排除廣播請(qǐng)求時(shí)朋沮,"no broadcast"就會(huì)非常有用。

如何使用定義好的捕獲過(guò)濾器呢缀壤?點(diǎn)擊下圖所示的展開(kāi)過(guò)濾器按鈕樊拓。

在過(guò)濾器列表中選擇一個(gè)過(guò)濾器。

再雙擊啟動(dòng)抓包塘慕,就會(huì)看到效果了筋夏。

1.5.3.2顯示過(guò)濾器

顯示過(guò)濾器用來(lái)過(guò)濾已經(jīng)捕獲的數(shù)據(jù)包。在數(shù)據(jù)包列表的上方图呢,有一個(gè)顯示過(guò)濾器輸入框条篷,可以直接輸入過(guò)濾表達(dá)式,點(diǎn)擊輸入框右側(cè)的表達(dá)式按鈕岳瞭,可以打開(kāi)表達(dá)式編輯器拥娄,左側(cè)框內(nèi)是可供選擇的字段。

圖14

顯示過(guò)濾器的語(yǔ)法如圖15所示瞳筏。

圖15

下面我們對(duì)各個(gè)字段做介紹:

1)Protocol稚瘾,協(xié)議字段。支持的協(xié)議可以從圖14的編輯器中看到姚炕,從OSI 7層模型的2到7層都支持摊欠。

2)String1, String2 (可選項(xiàng))。協(xié)議的子類(lèi)柱宦,展開(kāi)圖14中的協(xié)議的三角些椒,可以看到。

圖16

3) Comparison operators掸刊,比較運(yùn)算符免糕。可以使用6種比較運(yùn)算符如圖17所示忧侧,邏輯運(yùn)算符如圖18所示石窑。

圖17比較運(yùn)算符

圖18邏輯運(yùn)算符

被程序員們熟知的邏輯異或是一種排除性的或。當(dāng)其被用在過(guò)濾器的兩個(gè)條件之間時(shí)蚓炬,只有當(dāng)且僅當(dāng)其中的一個(gè)條件滿足時(shí)松逊,這樣的結(jié)果才會(huì)被顯示在屏幕上。

讓我們舉個(gè)例子:

"tcp.dstport 80 xor tcp.dstport 1025"

只有當(dāng)目的TCP端口為80或者來(lái)源于端口1025(但又不能同時(shí)滿足這兩點(diǎn))時(shí)肯夏,這樣的封包才會(huì)被顯示经宏。

下面再通過(guò)一些實(shí)例來(lái)加深了解犀暑。

snmp || dns || icmp

顯示SNMP或DNS或ICMP封包。

ip.addr == 10.1.1.1

顯示來(lái)源或目的IP地址為10.1.1.1的封包烁兰。

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6

顯示來(lái)源不為10.1.2.3或者目的不為10.4.5.6的封包耐亏。

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6

顯示來(lái)源不為10.1.2.3并且目的IP不為10.4.5.6的封包。

tcp.port == 25

顯示來(lái)源或目的TCP端口號(hào)為25的封包缚柏。

tcp.dstport == 25

顯示目的TCP端口號(hào)為25的封包苹熏。

tcp.flags

顯示包含TCP標(biāo)志的封包碟贾。

tcp.flags.syn == 0x02

顯示包含TCP SYN標(biāo)志的封包币喧。

在使用過(guò)濾器表達(dá)式編輯器的時(shí)候,如果過(guò)濾器的語(yǔ)法是正確的袱耽,表達(dá)式的背景呈綠色杀餐。如果呈紅色,說(shuō)明表達(dá)式有誤朱巨。

生成表達(dá)式史翘,點(diǎn)擊Ok按鈕,回到數(shù)據(jù)包列表界面冀续。

圖19

此時(shí)表達(dá)式會(huì)輸入到表達(dá)式欄中琼讽。

圖20

回車(chē)之后,就會(huì)看到過(guò)濾效果洪唐。

此外我們也可以通過(guò)選中數(shù)據(jù)包來(lái)生成過(guò)濾器钻蹬,右鍵——>作為過(guò)慮器應(yīng)用。

圖21

如圖21所示凭需,不同的選項(xiàng)问欠,大家都可以嘗試下,都是基本邏輯謂詞的組合粒蜈。比如我選擇“或選中”顺献,可以組合多個(gè)數(shù)據(jù)包的條件,如圖22所示枯怖。

圖22

圖22中注整,選擇了兩個(gè)數(shù)據(jù)包,協(xié)議不同度硝,自動(dòng)生成的過(guò)濾表達(dá)式會(huì)按照你鼠標(biāo)點(diǎn)擊的位置所在的列字典作為條件來(lái)生成肿轨。圖中我兩次的位置都在Destination列上,所以生成的表達(dá)式是一樣的塘淑。

1.5.4數(shù)據(jù)分析

選中某一條數(shù)據(jù)項(xiàng)萝招,會(huì)在如圖23所示的兩個(gè)區(qū)域,顯示該數(shù)據(jù)包的詳細(xì)信息存捺。

圖23

在圖23中槐沼,1區(qū)為詳細(xì)信息顯示區(qū)域曙蒸,這個(gè)區(qū)域內(nèi)對(duì)數(shù)據(jù)包按照協(xié)議字段做了較為詳細(xì)的分析。2區(qū)為16進(jìn)制數(shù)據(jù)區(qū)岗钩。結(jié)合1區(qū)和2區(qū)纽窟,再結(jié)合書(shū)本上的知識(shí),我們就可以進(jìn)行協(xié)議分析的研究和學(xué)習(xí)了兼吓。圖23中臂港,顯示的詳細(xì)信息分別為:

1)Frame:物理層的數(shù)據(jù)幀概況

2)Ethernet?II:數(shù)據(jù)鏈路層以太網(wǎng)幀頭部信息

3)Internet Protocol Version 4:互聯(lián)網(wǎng)層IP包頭部信息

4)Transmission Control Protocol:傳輸層T的數(shù)據(jù)段頭部信息,此處是TCP

5)Hypertext Transfer Protocol:應(yīng)用層的信息视搏,此處是HTTP協(xié)議

當(dāng)我們點(diǎn)擊1區(qū)的字段的時(shí)候审孽,可以看到在2區(qū)對(duì)應(yīng)的數(shù)據(jù)項(xiàng),如圖24浑娜。

圖24

是時(shí)候把教科書(shū)搬出來(lái)了佑力,在圖25中,看到OSI七層模型和Wireshark數(shù)據(jù)包分析的對(duì)應(yīng)情況筋遭。

圖25(來(lái)源于網(wǎng)絡(luò))

再拿TCP數(shù)據(jù)包來(lái)舉例打颤,如圖26。

圖26(來(lái)源于網(wǎng)絡(luò))

用這樣的方法來(lái)學(xué)習(xí)網(wǎng)絡(luò)協(xié)議漓滔,是不是既簡(jiǎn)單又直觀呢编饺?還等什么,開(kāi)始動(dòng)手吧响驴。

1.5.5實(shí)例:分析TCP三次握手過(guò)程

(以下內(nèi)容透且,部分來(lái)自http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html,做了一些修改踏施,作者感謝原作者石蔗。)

圖27(來(lái)源于網(wǎng)絡(luò))

圖27就是經(jīng)典的TCP三次握手,看它千百遍也不許厭煩畅形,這是我大學(xué)時(shí)的必考題养距。

下面我們具體分析下實(shí)際三次握手的過(guò)程,打開(kāi)Wireshark啟動(dòng)抓包日熬,然后在瀏覽器打開(kāi)我的博客http://www.cnblogs.com/xuanhun棍厌。

停止抓包后輸入過(guò)濾表達(dá)式

ip.src == 192.168.1.38

過(guò)濾出連接到www.cnblogs.com的所有數(shù)據(jù)包。

圖28

選中一個(gè)竖席,右鍵然后點(diǎn)擊"追蹤流"——>TCP流耘纱。

圖29

點(diǎn)擊TCP流之后,會(huì)根據(jù)tcp.stream字段生成過(guò)濾表達(dá)式毕荐,我們可以看到這次HTTP請(qǐng)求基于的TCP三次握手的數(shù)據(jù)包束析,如圖30所示。

圖30

下面我們依次分析下序號(hào)為69憎亚、79员寇、80的三個(gè)數(shù)據(jù)包弄慰。

圖31

69號(hào)數(shù)據(jù)的TCP數(shù)據(jù)字段如圖31所示,我們可以看到序列號(hào)為0蝶锋,標(biāo)志位為SYN陆爽。

圖32

79號(hào)數(shù)據(jù)包的TCP字段如圖32所示,序列號(hào)為0扳缕,Ack序號(hào)加1為1慌闭,標(biāo)志位為(SYN,ACK)。

圖33

80號(hào)數(shù)據(jù)包TCP字段如圖32所示躯舔,客戶(hù)端再次發(fā)送確認(rèn)包(ACK) SYN標(biāo)志位為0,ACK標(biāo)志位為1.并且把服務(wù)器發(fā)來(lái)ACK的序號(hào)字段+1,放在確定字段中發(fā)送給對(duì)方驴剔。

這樣就完成了TCP的三次握手。

1.5.6小結(jié)

網(wǎng)絡(luò)分析是網(wǎng)絡(luò)編程的前置基本技能庸毫,本節(jié)課對(duì)網(wǎng)絡(luò)協(xié)議分析工具Wireshark做了一個(gè)快速入門(mén)仔拟,希望同學(xué)們多多練習(xí)衫樊,增強(qiáng)這方面的能力飒赃。

Wireshark在數(shù)據(jù)包捕獲和分析方面具有超強(qiáng)的能力,但是它不能修改和發(fā)送數(shù)據(jù)包科侈,在Python里很容易實(shí)現(xiàn)數(shù)據(jù)包的修改和發(fā)送载佳。從下一節(jié)開(kāi)始,我們正式進(jìn)入第二章——Python編程基礎(chǔ)臀栈。

1.5.7本節(jié)對(duì)應(yīng)視頻教程獲取方法

在微信訂閱號(hào)(xuanhun521)依次打開(kāi)“網(wǎng)絡(luò)安全”—>”P(pán)ython黑客編程”蔫慧,找到對(duì)應(yīng)的本篇文章的1.5.7節(jié),有具體獲取視頻教程的方法权薯。

由于教程仍在創(chuàng)作過(guò)程中姑躲,在整套教程完結(jié)前,感興趣的同學(xué)請(qǐng)關(guān)注我的微信訂閱號(hào)(xuanhun521盟蚣,下方二維碼)黍析,我會(huì)第一時(shí)間在訂閱號(hào)推送圖文教程和視頻教程。問(wèn)題討論請(qǐng)加qq群:Hacking(1群):303242737?? Hacking(2群):147098303屎开。

關(guān)注之后阐枣,回復(fù)請(qǐng)回復(fù)“Python”,獲取更多內(nèi)容奄抽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蔼两,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子逞度,更是在濱河造成了極大的恐慌额划,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件档泽,死亡現(xiàn)場(chǎng)離奇詭異俊戳,居然都是意外死亡彬祖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)品抽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)储笑,“玉大人,你說(shuō)我怎么就攤上這事圆恤⊥槐叮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵盆昙,是天一觀的道長(zhǎng)羽历。 經(jīng)常有香客問(wèn)我,道長(zhǎng)淡喜,這世上最難降的妖魔是什么秕磷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮炼团,結(jié)果婚禮上澎嚣,老公的妹妹穿的比我還像新娘。我一直安慰自己瘟芝,他們只是感情好易桃,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锌俱,像睡著了一般晤郑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贸宏,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天造寝,我揣著相機(jī)與錄音,去河邊找鬼吭练。 笑死诫龙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的线脚。 我是一名探鬼主播赐稽,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼浑侥!你這毒婦竟也來(lái)了姊舵?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤寓落,失蹤者是張志新(化名)和其女友劉穎括丁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伶选,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡史飞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年尖昏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片构资。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抽诉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吐绵,到底是詐尸還是另有隱情迹淌,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布己单,位于F島的核電站唉窃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纹笼。R本人自食惡果不足惜纹份,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望廷痘。 院中可真熱鬧蔓涧,春花似錦、人聲如沸牍疏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鳞陨。三九已至,卻和暖如春瞻惋,著一層夾襖步出監(jiān)牢的瞬間厦滤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工歼狼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掏导,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓羽峰,卻偏偏與公主長(zhǎng)得像趟咆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梅屉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容