👹
CTF Writeup
  • README
  • BUUCTF
    • [护网杯 2018]easy_tornado
    • [极客大挑战 2019]BuyFlag
    • [极客大挑战 2019]BabySQL
    • [ZJCTF 2019]NiZhuanSiWei
    • [BJDCTF2020]Easy MD5
    • [极客大挑战 2019]EasySQL
    • [HCTF 2018]admin
    • [极客大挑战 2019]Havefun
    • [极客大挑战 2019]Http
    • [极客大挑战 2019]HardSQL
    • [极客大挑战 2019]Knife
    • [SUCTF 2019]CheckIn
    • [极客大挑战 2019]LoveSQL
    • [极客大挑战 2019]PHP
    • [极客大挑战 2019]Secret File
    • [MRCTF2020]你传你🐎呢
    • [极客大挑战 2019]Upload
    • [网鼎杯 2020 青龙组]AreUSerialz
    • [极客大挑战 2020]Roamphp6-flagshop
    • [强网杯 2019]随便注
    • [ACTF2020 新生赛]BackupFile
    • [ACTF2020 新生赛]Exec
    • [MRCTF2020]Ez_bypass
    • [ACTF2020 新生赛]Include
    • [GXYCTF2019]Ping Ping Ping
    • [GXYCTF2019]BabySQli
    • [HCTF 2018]WarmUp
    • [RoarCTF 2019]Easy Calc
    • [GYCTF2020]Blacklist
    • [SUCTF 2019]EasySQL
    • [CISCN2019 华北赛区 Day2 Web1]Hack World
    • [网鼎杯 2018]Fakebook
  • RACTF
    • notrequired
    • madlib
    • git commit -m whatever
  • ByteCTF2021
    • double sqli
由 GitBook 提供支持
在本页

这有帮助吗?

  1. RACTF

git commit -m whatever

上一页madlib下一页ByteCTF2021

最后更新于3年前

这有帮助吗?

  1. 打开页面,得到一段加密的字符串和提示:

+M/pqMuo4pevO4qE7ETogLZjXSoiLhuqpmWh21pKXOpjftRMSq+ltAaloVOlwR3cGkaBeYxLQEb2kJ7FZg4UBxawjJvpcyKebpVoz6no
Only if you could see the source code.
  1. 尝试扫描路径,发现存在**/.git/**路径

利用.git源代码泄露利用工具 ,得到网站源代码

├── Crypt
│   ├── AES.php
│   ├── Base.php
│   ├── Blowfish.php
│   ├── DES.php
│   ├── Hash.php
│   ├── RC2.php
│   ├── RC4.php
│   ├── RSA.php
│   ├── Random.php
│   ├── Rijndael.php
│   ├── TripleDES.php
│   └── Twofish.php
├── File
│   ├── ANSI.php
│   ├── ASN1.php
│   └── X509.php
├── Math
│   └── BigInteger.php
├── Net
│   ├── SCP.php
│   ├── SFTP
│   │   └── Stream.php
│   ├── SFTP.php
│   ├── SSH1.php
│   └── SSH2.php
├── System
│   ├── SSH
│   │   └── Agent.php
│   └── SSH_Agent.php
├── bootstrap.php
├── index.php
├── openssl.cnf
└── tempCodeRunnerFile.py
  1. 审计代码,发现index.php里有个crypto类,存在两个方法encryp()和decrypt(),即加密和解密的方法

  2. 解密过程

  1. 调用decrypt()方法解密

$privatekey = "mRHpcEckKATdwDC/CwpRinDTiAYrn9lzWpTo277omKs=";
$encrypted = "rI6D6aK8m1HhT1oSfsP87trNCrLMMc0MoySGaVbku4H9A3WqS1CgEbhAdZ3VWMAoFuPr9WfG2s5szKfgUFnKnzqv7CieKQvyK/tplDZp ";
$dnc = crypto::decrypt($encrypted, $privatekey);
echo $dnc;
  1. 采坑

这里有个坑,解密代码中调用了sodium_crypto_secretbox_open()这个方法,而这个方法只有 (PHP 7 >= 7.2.0, PHP 8) 的版本才有,使用其它PHP版本运行会报错

  1. 运行解密代码,get flag!

image-20211009153345514
image-20211009153723628
image-20211009154036362
GitHack