ギークな思考

CTFのWiteUpを書きます。

Web問題の攻撃手法

request headerの変更

・http methodの変更

HTTP リクエストメソッド - HTTP | MDN

 

ファイルを送信する

・マジックハッシュの衝突

PHPではハッシュ関数で暗号化した2つの値を比較すると一致するものが存在する。

PHPのmd5でハッシュ化して==で比較すると一致する2つの文字列 - @peccul is peccu

pwnでの攻撃手法

format string attack

printf関数のフォーマット文字列が指定されていない場合に、外部から指定するような文字列を挿入することでスタックなどのメモリ内容を読み出す攻撃手法。

printf関数は呼ばれる際に、フォーマット文字列をスタックに積む。しかしprintf関数にフォーマット文字列が指定されていないとき、その部分を任意の文字列で置き換えられてしまうため、%p, %x などのフォーマット文字列を挿入することでメモリ内容を読み取ることができる。

 

・フォーマット文字列

「%p」や「%x」が使われる

C言語 printfのフォーマット指定子 - Qiita

 

・参考

fsbの資料 · GitHub

 

その他

・コインやお金を増やそう系のゲームが与えられたとき

とりあえず、負の数を指定してみる

CTFlearn - Tone dialing

DTMF暗号を使った問題

↓を使ってデコードできる

http://dialabc.com/sound/detect/index.html

 

デコードすると以下のようになる

67 84 70 108 101 97 110 123 67 82 89 80 84 79 71 82 65 80 72 89 125

 

ASCIIコードで変換して

ASCIIコード変換機

 

CTFlean{CRYPTOGRAPHY}

git直前のaddに戻す

ローカルの変更取り消し

 
$ git checkout .

変更はこれで全部ないことにしてくれるが、
新規追加したファイルに関しては削除されないので
完全に元に戻したいのなら別途削除する必要がある

 
$ git clean -df .