tips
502 Bad Gateway
HTTPのエラーコードの1つ.
400番台がクライアント側のエラー(File not found とか)であるのに対し,500番台はサーバ側のエラーを示す.
今回は,ゲートウェイやプロキシが不正なリクエストを受け取ったことを示している.
参考:HTTP502(Bad Gateway)の原因と対処法
SQLインジェクションの1つの解
管理者でのログインを試みる際,ユーザ名がadmin
で決め打ちだった場合,
admin'--
と入力すればパスワードが何であれログインに成功する.
調べた知識
Base64
英数字と「+」「-」「=」のみを使って,マルチバイト文字等をエンコードする方式.これによって,英数字+@しか使えない通信環境でもマルチバイト文字等を扱うことができる.
エンコード・デコードには以下のサイトが便利である.
ヴィジュネル暗号
換字式暗号の1つ.
アルファベットの対応表をもとに平文を暗号化する.
1つ1つ目で追って解読しても解けるが,スクリプトを書いて楽にしたい.
import sys
class MyVigenere:
def encode(text, key):
ret = ''
for i in range(len(text)):
offset = (ord(text[i]) + ord(key[i]) - 2 * ord('a')) % 26
ret += chr(ord('a') + offset)
return ret
def decode(text, key):
ret = ''
for i in range(len(text)):
offset = (ord(text[i]) - ord(key[i])) % 26
ret += chr(ord('a') + offset)
return ret
if __name__ == '__main__':
plaintext = sys.argv[1]
key = sys.argv[2]
flag = MyVigenere.decode(plaintext, key)
print(flag)
John The Ripper
パスワードクラッキングツール.
以下,Ubuntuでの実行例を示す.
// ツールのインストール
# apt install john
// パスワードファイルとシャドウファイルを結合する
$ unshadow passwd shadow > tmp
// johnコマンドに渡す
$ john --show tmp
robots.txt
検索エンジンのクローラーのアクセスを制限するためのファイル.
見せたくないページはここに記述するらしい.
picoCTF
きなこ(@kinako_software)さんのブログ(こちら)を拝見して,cpawCTFの次はこれをやるといいよと書いてあったので取り組んでみる.
ヒントが書かれているので,もしわからなかったとしても調べればなんとかなりそう.
Logon
ユーザ名とパスワードを入力してログインする.
何を入力してもログインに成功するが,adminでログインしたい.
Cookieを見ると,ログイン成功後にadmin
という変数がFalse
で格納されている事がわかる.
これをTrue
に書き換えてリロードするとログイン成功.
Recovering From the Snap
ディスクイメージファイルが渡される.
file
で見てみると,FATであることがわかる.
Ubuntuで,以下のコマンドを実行してマウントする.
# mount -t vfat animals.dd /mnt/animal/
これで/mnt/animal/
以下に4つの画像が現れた.
Linuxでは,jpgファイルはeog
コマンドで開くことができる.
しかし,どの画像を見てもフラグに関係するようには思えない.
ヒントを見てみると,いくつかのファイルが削除されてしまっているらしい.
FTK Imagerというツールを使うと,ディスクイメージをマウントしたときに削除済みのファイルにもアクセスできるらしい.
MacやLinuxではコマンドラインツールしか利用できず使い方が難しかったので,Windows版をダウンロードした.
与えられたイメージを開くと,フラグが書かれている画像が削除されていることがわかる.
そのファイルを開けばフラグを獲得できる.
admin panel
与えられたpcapファイルをWiresharkで開く.
/login
にPOSTしている部分があるので,そのパケットを見ると,パスワードのところにフラグが書かれている.
hertz
換字暗号だったので,便利そうなツールを調べたところ,quipqiupというのを見つけた.
「Puzzle:」の部分に暗号化されたテキストを貼り付けて「Solve」を押すだけ.