南郵ctf部分 Writeup

常見的術(shù)語:

肉雞:被植入木馬的電腦或者是服務(wù)器等聯(lián)網(wǎng)設(shè)備。
軟件木馬:遠控軟件的被控端(exe文件)
腳本木馬:腳本語言編寫的被控端(asp沐飘、php...)
拿Webshell(有人也會說是:拿shell):拿到網(wǎng)站的最高權(quán)限足淆。
服務(wù)器:提供計算機服務(wù)的設(shè)備
{
物理服務(wù)器:實體的。
虛擬服務(wù)器:常見的,遠程連接的除呵。
}
后門:一棟房子有一扇大門跟一個洞。房子=服務(wù)器(個人電腦)爪喘、大IP=正常權(quán)限颜曾、洞=后門。
IP:代表計算機的一個網(wǎng)絡(luò)地址(例子:你在北京秉剑,這就是你的地址)
端口:設(shè)備與外界通訊交流的出門泛豪。(一棟大樓里面有幾個房間,房間有幾個門
大樓=IP侦鹏,房間的門=端口)
入侵:利用服務(wù)器方面漏洞的技術(shù)诡曙。
提權(quán):提升權(quán)限(拿到了Webshell-》通過Webshell提到服務(wù)器的權(quán)限,從腳本到服務(wù)器)
壓力測試(Ddos略水、CC攻擊):利用流量資源攻擊服務(wù)器价卤。

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

1簽到題

查看源代碼就可以找到flag

2簽到2

查看源代碼
image.png

讓我們輸入口令zhimakaimen11個字符,而maxlength=10聚请,通過burpsuite中的Reapeater對頁面數(shù)據(jù)進行修改發(fā)送荠雕。
maxlength 屬性規(guī)定輸入字段的最大長度稳其,以字符個數(shù)計。

maxlength 屬性與 <input type="text"> 或 <input type="password"> 配合使用炸卑。


image.png

這題不是WEB

打開有個貓的圖片既鞠,我直接用記事本打開搜索nctf,可以直接找到


丘比龍De女神
image.png

百度MD5:
“簡單地說來盖文,就是一種安全策略嘱蛋,在網(wǎng)絡(luò)上傳輸數(shù)據(jù)的時候,如果你是明文進行的話五续,那么容易受到截獲洒敏,所以這樣說來時很不安全的,所以引入了MD5機制疙驾,可以在傳輸數(shù)據(jù)的時候凶伙,將數(shù)據(jù)和密鑰進行hash生成一個MD5校驗值,附加在數(shù)據(jù)段的首部它碎,那么在對方收到數(shù)據(jù)是函荣,會將數(shù)據(jù)段重新用hash算法進行校驗,若兩個MD5的校驗值相同扳肛,那么表示數(shù)據(jù)在傳輸?shù)倪^程中沒有收到篡改傻挂!

flag是照片文件的MD5值,我們就下載MD5 Checksum Verifier軟件查看圖片的MD5值
image.png

34bc2f23725efa6128f2f3abc0368d92

AAencode

先百度AAencode:
什么是jjencode?
將JS代碼轉(zhuǎn)換成只有符號的字符串
什么是aaencode挖息?
將JS代碼轉(zhuǎn)換成常用的網(wǎng)絡(luò)表情金拒。

神器的JavaScript加密工具aaencode 把js轉(zhuǎn)為顏文字表情符號
aaencode 加密
aaencode 解密
把頁面代碼放到解密里面解密就可以找到flag

圖種

圖種是什么?通俗來講就是通過一些小技術(shù)將目標(biāo)文件隱藏于一張圖片里面套腹,表面上看起來是一張圖片绪抛,實際上里面含有其他文件。這種方式可以不受某些網(wǎng)站的限制沉迹,便于信息及文件的傳遞和共享睦疫。

將后綴名改為rar,然后用壓縮文件打開發(fā)現(xiàn)里面藏著一張gif動態(tài)圖鞭呕,打開可以發(fā)現(xiàn)一些文字:
QQ圖片20180112151140.png

最后一段文字是:都深深的出賣了我蛤育,首字母為dssdcmlw

nctf{dssdcmlw}

層層遞進

【304 Not Modified:客戶端有緩沖的文件并發(fā)出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶葫松,原來緩沖的文檔還可以繼續(xù)使用瓦糕。
一般的大的站點的圖片服務(wù)器都有實現(xiàn)HTTP 304 緩存功能。
這個 304 狀態(tài)一般主要在用戶刷新頁面(F5鍵)的時候觸發(fā)腋么,當(dāng)用戶在刷新頁面的時候咕娄,因為原來的頁面里的很多圖片已經(jīng)緩存過,客戶端的瀏覽器已經(jīng)記錄了圖片的最后更新時間(Last Mod)珊擂,所以在用戶刷新頁面的時候圣勒,會向服務(wù)器提交一個字段:If-Modified-Since: Wed, 08 Sep 2010 21:35:06 GMT
這個時候费变,服務(wù)器端的程序先取得這個字段的值,然后與服務(wù)器上的圖片最后修改時間對比圣贸,如果相同挚歧,就直接返回 304 Not Modified ,然后停止吁峻。這樣就不用把圖片重新傳輸?shù)娇蛻舳嘶海_到節(jié)省帶寬的目的∮煤】
打開題目中的網(wǎng)址發(fā)現(xiàn)是一個網(wǎng)站的主頁矮慕,沒有其他的提示信息。

查看源代碼:
image.png

iframe 元素會創(chuàng)建包含另外一個文檔的內(nèi)聯(lián)框架(即行內(nèi)框架)啄骇。
iframe中的marginwidth定義 iframe 的左側(cè)和右側(cè)的邊距痴鳄。
marginheight定義 iframe 的頂部和底部的邊距。
scrolling會設(shè)置是否在在iframe中顯示滾動條缸夹。
border=0會去掉邊框夏跷。

你從哪里來

HTTP Referer是header的一部分,當(dāng)瀏覽器向web服務(wù)器發(fā)送請求的時候明未,一般會帶上Referer,告訴服務(wù)器我是從哪個頁面鏈接過來的壹蔓,服務(wù)器基此可以獲得一些信息用于處理趟妥。
比如從我主頁上鏈接到一個朋友那里,他的服務(wù)器就能夠從HTTP Referer中統(tǒng)計出每天有多少用戶點擊我主頁上的鏈接訪問他的網(wǎng)站佣蓉。

單身一百年也沒用

當(dāng)我們直接點擊“到這里找KEY”然后再進行抓包時
image.png

找不到異常披摄,

當(dāng)我們先抓包再點擊接著再抓包時候會找到302重定向錯誤代碼:
image.png

這時候可以在響應(yīng)頭中找到flag。
百度302錯誤代碼:302重定向又稱之為302代表暫時性轉(zhuǎn)移(Temporarily Moved )勇凭,英文名稱:302 redirect疚膊。 也被認(rèn)為是暫時重定向temporary redirect),一條對網(wǎng)站瀏覽器的指令來顯示瀏覽器被要求顯示的不同的URL虾标,當(dāng)一個網(wǎng)頁經(jīng)歷過短期的URL的變化時使用寓盗。一個暫時重定向是一種服務(wù)器端的重定向,能夠被搜索引擎蜘蛛正確地處理璧函。

easy傀蚌!
image.png

直接base64解碼

BASE64是一種編碼方式,通常用于把二進制數(shù)據(jù)編碼為可寫的字符形式的數(shù)據(jù)蘸吓。
這是一種可逆的編碼方式善炫。
編碼后的數(shù)據(jù)是一個字符串,其中包含的字符為:A-Z库继、a-z箩艺、0-9窜醉、+、/
共64個字符:26 + 26 + 10 + 1 + 1 = 64艺谆。
【注:其實是65個字符榨惰,“=”是填充字符】。

Keybord

題目的意思就是鍵盤擂涛,題目也提示看鍵盤看鍵盤读串,那肯定跟鍵盤有關(guān)系。
直接按照題目給出的字母在鍵盤上畫出來圖案就會發(fā)現(xiàn)對應(yīng)的字母撒妈。
nctf{areuhack}

n次base64

由題目以及提示說編碼次數(shù)有點多得知flag被base64加密了數(shù)次恢暖,于是我用在線base64解密工具多次解密就能得到flag:
image.png

COOKIE

打開提示的網(wǎng)站后顯示please login first!
這個時候智能抓包,用Burpsuite抓包發(fā)現(xiàn)Cookie:login=0

因為上面有個first 我嘗試把login=1狰右;然后重新發(fā)送 就得到flag
image.png

文件包含

文件包含漏洞的利用
考察PHP封裝協(xié)議以及PHP文件包含杰捂。
在url中添加?file=php://filter/read=convert.base64-encode/resource=index.php,讀取到base64加密的index.php文件
注解:
1.php://filter/可用于處理打開的數(shù)據(jù)流棋蚌,起到過濾作用嫁佳。如果源文件為.php則很有可能在前臺顯示不出來。
2.此時我們采用的方法是谷暮,先讓文件轉(zhuǎn)化為base64格式(convert.base64-encode)然后再輸出蒿往,這樣不論是什么格式的文件都可以在前臺輸出。

Download~!

查看頁面源代碼
圖片.png

發(fā)現(xiàn)下載地址是base64編碼湿弦,需要解碼解碼后發(fā)現(xiàn)是兩首歌的名字
分析兩首歌的文件也沒有發(fā)現(xiàn)什么
再看看題目和tips


圖片.png

圖片.png

需要猜到需要下載download.php這個文件瓤漏,url要用base64編碼
圖片.png

在if條件里面看到4個或者有3個都已經(jīng)找到了,就差hereiskey.php颊埃。就需要對hereiskey.php進行base64編碼然后放到url里面就能找到flag蔬充。

MYSQL

Do you know robots.txt?在網(wǎng)址后面加上robots.txt

圖片.png

php intval()函數(shù)
獲取變量的整數(shù)值班利,允許以使用特定的進制返回饥漫。默認(rèn)10進制
注:如果參數(shù)為整數(shù),則不做任何處理罗标。

根據(jù)TIP和源代碼:在網(wǎng)址后輸入sql.php?id=1024.1(id只要是1024.后面任意數(shù)值都可以)就能找到flag
圖片.png

sql injection 3

SQL注入
寬字節(jié)注入庸队,雙字節(jié)繞過
MYSQl寬字節(jié)注入

/x00

圖片.png

非常重要的php正則表達式詳解
@的意思是忽略報錯信息
PHP ereg()函數(shù)
PHP strpos()函數(shù)
PHP中0、空闯割、null和false的總結(jié)

空字符串('')皿哨,false,NULL和0是值相等而類型不一樣!

第一種方法:ereg處理數(shù)組纽谒,所以這里nctf這里要用nctf[],構(gòu)造一個arr[]证膨,傳入之后,ereg是返回NULL的鼓黔,===判斷NULL和FALSE央勒,是不相等的不见,所以可以進入第二個判斷,strpos處理數(shù)組時崔步,也是返回NULL稳吮,注意這里的是!==,NULL!==FALSE,條件成立井濒,拿到flag
我們還是先說數(shù)組 ereg是處理字符串的灶似,所以,按照原理瑞你,我們將nctf構(gòu)造一個arr[]酪惭,傳入之后,ereg是返回NULL的者甲,===判斷NULL和FALSE春感,是不相等的,所以可以進入第二個判斷虏缸,而strpos處理數(shù)組鲫懒,直接返回NULL,注意這里的是!==刽辙,NULL!==FALSE,條件成立窥岩,拿到flag。
第二種:ereg的字符串截斷漏洞宰缤。遇到%00則默認(rèn)為字符串的結(jié)束谦秧。
傳nctf=1%00%23biubiubiu 接收到1后被截斷,后面也有所需要的#biubiubiu,條件成立撵溃,拿到flag!

html url編碼
為什么要進行URL編碼
URL中編碼URL特殊字符

bypass again

圖片.png

由代碼可以知道首先判斷a與b的值是否為空,如果不為空就比較a是否!=b锥累,注意這里的!=是弱類型的缘挑,如果不想等就繼續(xù)判斷a的MD5值是否等于b的MD5值,如果相等就給出flag

第一種方法:提交兩個加密后0e開頭的字符串

如果我們定義的相等是== 而不是===桶略,試下 字符串 240610708跟QNKCDZO
所有類似的字符串得到的md5如果是0e打頭的语淘,一些語言(PHP)會做隱式轉(zhuǎn)換,當(dāng)做int類型計算际歼,得到的結(jié)果是 0惶翻,最后導(dǎo)致0==0,判定為true

第二種方法:md5不能處理數(shù)組結(jié)構(gòu)的數(shù)據(jù)鹅心。出錯返回null吕粗,NULL==NULL。index.php?a[]=1&b[]=2

變量覆蓋

變量覆蓋漏洞
CTF之php變量覆蓋漏洞

圖片.png

點開顯眼的source.php文件旭愧,
圖片.png

發(fā)現(xiàn)if$pass==$thepassword_123就顯示flag颅筋。那么就讓它們兩個相等宙暇。
圖片.png

PHP是世界上最好的語言
圖片.png

PHP eregi函數(shù)
如果傳進去的id含有hackerDJ就exit(),并且之后會對idURL解碼一次再判斷與hackerDJ是否相等议泵,如果相等就給出flag占贫。
Url編碼,傳輸過去默認(rèn)會解碼一次先口,所以我們不能只加密一次型奥,需要加密兩次

圖片.png

圖片.png

偽裝者

WEB安全-偽造X-Forwarded-For繞過服務(wù)器IP地址過濾
$_SERVER[“HTTP_X_FORWARDED_FOR”] 獲得的值是HTTP中 X-Forwarded-For
$_SERVER[“HTTP_CLIENT_IP”] 獲得的值是HTTP中 Client-Ip( client-ip書寫測試結(jié)果:服務(wù)器為window環(huán)境,則client-ip可以大小寫混寫碉京。服務(wù)器環(huán)境為linux厢汹,則client-ip必須全部大寫)
$_SERVER[“REMOTE_ADDR”] 獲得的值為 最后一個跟你的服務(wù)器握手的IP,可能會是代理IP或者其他
$_SERVER[“HTTP_REFERER”] 獲得的值為 HTTP中的Referer

Headers

關(guān)于HTTP協(xié)議收夸,一篇就夠了

圖片.png

上傳繞過

要求上傳JPG PNG GIF后綴的文件坑匠,上傳了PNG圖片又要求PHP后綴文件

image.png

我們需要把上傳的PNG圖片讓他識別為PHP文件。
截斷上傳漏洞
典型漏洞歸納之上傳漏洞

用burp截斷上傳文件時候的包在uploads/后面加一個123.php然后發(fā)送
image.png

image.png

發(fā)現(xiàn)basename等于路徑后面的123.php加上了文件名卧惜,說明是通過basename判斷文件類型的厘灼。所以讓basename的后綴等于php就可以了。

所以在123.php后面加一個00截斷
image.png

在/uoloads/和123.php加個空格便于找到對應(yīng)的16進制編碼咽瓷,然后將其改為00
image.png
image.png

pass check

PHP strcmp函數(shù)
strcmp($pass,$pass1)
strcmp(array,string)=null=0
當(dāng)不同類型的變量進行比較的時候就會存在變量轉(zhuǎn)換的問題设凹,在轉(zhuǎn)換之后就有可能會存在問題。

圖片.png

HTTP常見Content-Type比較
圖片.png

用Burp添加POST參數(shù) 需要加Content-Type茅姜,hackbar應(yīng)該是會自動添加上去闪朱。
首先,只有使用POST方法的時候enctype才生效钻洒,GET方法默認(rèn)使用application/x-www-form-urlencoded編碼方法奋姿。

HTML meta 中的Content-Type定義的數(shù)據(jù)類型和編碼主要用于網(wǎng)頁內(nèi)容處理時,比如瀏覽器解析網(wǎng)頁內(nèi)容素标,或者搜索引擎的爬蟲称诗。

Form表單中的enctype 屬性規(guī)定在發(fā)送到服務(wù)器之前應(yīng)該如何對表單數(shù)據(jù)進行編碼。
默認(rèn)地头遭,表單數(shù)據(jù)會編碼為 "application/x-www-form-urlencoded"寓免。就是說,在發(fā)送到服務(wù)器之前计维,所有字符都會進行編碼(空格轉(zhuǎn)換為 "+" 加號袜香,特殊符號轉(zhuǎn)換為 ASCII HEX 值)。

起名字真難

圖片.png
因為if ( ($digit >= $one) && ($digit <= $nine) )所以輸進去的key不能是數(shù)字鲫惶,但是最后還得等于$number == '54975581388'
圖片.png

‘54975581388’的16進制是‘ccccccccc’
所以?key=0xccccccccc

密碼重置

url中user1=Y3RmdXNlcg%3D%3D蜈首,對他進行base64解碼發(fā)現(xiàn)是ctfuser,而題目要求的是admin。對admin編碼
圖片.png

然后用burp截斷改包
圖片.png

PHP反序列化

<?php
class just4fun {
    var $enter;
    var $secret;
}

if (isset($_GET['pass'])) {
    $pass = $_GET['pass'];

    if(get_magic_quotes_gpc()){
        $pass=stripslashes($pass);
    }

    $o = unserialize($pass);

    if ($o) {
        $o->secret = "*";
        if ($o->secret === $o->enter)
            echo "Congratulation! Here is my secret: ".$o->secret;
        else 
            echo "Oh no... You can't fool me";
    }
    else echo "are you trolling?";
}
?>

關(guān)于get_magic_quotes_gpc()函數(shù)
PHP stripslashes() 函數(shù)
PHP之:序列化和反序列化-serialize()和unserialize()
PHP引用(&)使用詳解
PHP 的引用允許你用兩個變量來指向同一個內(nèi)容
$a->enter=&$a->secret;

<?php   
class just4fun {  
    var $enter;  
    var $secret;  
    function just4fun()  
    {  
        $a->enter=&$a->secret;
    }  
}  
echo serialize(new just4fun());  
?>

代碼跑一下
圖片.png

?pass=O:8:"just4fun":2:{s:5:"enter";N;s:6:"secret";N;}

綜合題

把javascrip轉(zhuǎn)換為jsfuck代碼疾就,其中只包含六個不同的字符:!()+[]
轉(zhuǎn)換網(wǎng)址:http://jscrew.it/
把網(wǎng)頁中的jsfuck代碼轉(zhuǎn)換之后是1bc29b36f623ba82aaf6724fd3b16718.php

圖片.png
圖片.png

百度history of bash
history介紹及bash命令快速調(diào)用
命令記錄.bash_history
圖片.png
下載這個zip文件
圖片.png

密碼重置2

查看頁面源代碼可以找到郵箱:admin@nuptzj.cn
根據(jù)提示:linux下一般使用vi編輯器澜术,并且異常退出會留下備份文件。
可能會存在備份文件猬腰,一般情況下備份文件一般都是myfile.txt~或者是.myfile.txt.swp鸟废,經(jīng)過測試發(fā)現(xiàn)存在.submit.php.swp文件。
內(nèi)容:


........這一行是省略的代碼........

/*
如果登錄郵箱地址不是管理員則 die()
數(shù)據(jù)庫結(jié)構(gòu)

--
-- 表的結(jié)構(gòu) `user`
--

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `token` int(255) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- 轉(zhuǎn)存表中的數(shù)據(jù) `user`
--

INSERT INTO `user` (`id`, `username`, `email`, `token`) VALUES
(1, '****不可見***', '***不可見***', 0);
*/


........這一行是省略的代碼........

if(!empty($token)&&!empty($emailAddress)){
    if(strlen($token)!=10) die('fail');
    if($token!='0') die('fail');
    $sql = "SELECT count(*) as num from `user` where token='$token' AND email='$emailAddress'";
    $r = mysql_query($sql) or die('db error');
    $r = mysql_fetch_assoc($r);
    $r = $r['num'];
    if($r>0){
        echo $flag;
    }else{
        echo "失敗了呀";
    }
}
    

根據(jù)條件 只要token長度等于10姑荷,并且等于0就會給出flag盒延。
讓token=0000000000和郵箱一起提交


PHP代碼執(zhí)行函數(shù)總結(jié)
php 弱類型總結(jié)
PHP弱類型的安全問題詳細總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鼠冕,隨后出現(xiàn)的幾起案子添寺,更是在濱河造成了極大的恐慌,老刑警劉巖懈费,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件计露,死亡現(xiàn)場離奇詭異,居然都是意外死亡憎乙,警方通過查閱死者的電腦和手機票罐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泞边,“玉大人该押,你說我怎么就攤上這事≌笱瑁” “怎么了蚕礼?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梢什。 經(jīng)常有香客問我奠蹬,道長,這世上最難降的妖魔是什么嗡午? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任囤躁,我火速辦了婚禮,結(jié)果婚禮上翼馆,老公的妹妹穿的比我還像新娘。我一直安慰自己金度,他們只是感情好应媚,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猜极,像睡著了一般中姜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天丢胚,我揣著相機與錄音翩瓜,去河邊找鬼。 笑死携龟,一個胖子當(dāng)著我的面吹牛兔跌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峡蟋,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼坟桅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蕊蝗?” 一聲冷哼從身側(cè)響起仅乓,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蓬戚,沒想到半個月后夸楣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡子漩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年豫喧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痛单。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘿棘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旭绒,到底是詐尸還是另有隱情鸟妙,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布挥吵,位于F島的核電站重父,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忽匈。R本人自食惡果不足惜房午,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丹允。 院中可真熱鬧郭厌,春花似錦、人聲如沸雕蔽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽批狐。三九已至扇售,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背承冰。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工华弓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人困乒。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓寂屏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親顶燕。 傳聞我的和親對象是個殘疾皇子凑保,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351