復習したので、まとめた。 CTFの復習をすると毎回学びがあるので、面白い。
coffee_break
- 解法
- 参考
- [1] https://qiita.com/FeLvi/items/2fe591a816899d7f901b
- [2] https://qiita.com/takdcloose/items/c761af8c62de8ee5b34c
- [3] https://blog.nhiroki.net/2019/10/20/seccon-2019-qual-write-up
- [4] https://falconctf.hatenablog.com/entry/2019/10/20/160749
- [5] https://n4o847.hatenablog.com/entry/2019/10/20/163748
- [6] https://qiita.com/kusano_k/items/6ad4c50dbfffb96e0fca
ZKPay
- クエリ改竄解法(想定解じゃない?) [1]
- Sendで生成されるQRコードをデコードすると、いくら送るかが書いてある
- 送る金額をいじることで目標を達成する
- しかし、自分の持っている金額以上はかけないので、負の値を書き込む(0より大きいかのチェックが抜けているバグを利用)
- こうすると、送った側はマイナスが引かれるので金額を得ることができる。要するに誰かに負債を押し付けられる
- ブルートフォース解法 [2]
- 2000人からお金を集めれば目標達成できるので、アカウント作成→送金を自動化して放置する
- 賢い。なるほどという感じ。
- 想定解かも [3]
- 難しくてほぼ引用です
- CVE-2019-7167、eprint/2019/119を利用した攻撃
- 仮想通貨zcashが採用していたBCTV14についての脆弱性
- 今はBCTV14じゃなくてGroth16
- SNARKはプロトコル?
- BCTV14はcurrent proving system? なんか近い記事があるぞ
- 確かに上の解法ではCrypto感がない。こっちが想定解かも
- 問題もQRコードでお金の送金っていう仮想通貨感あるし、最近の話で、たしかにこれかな感がある
- んーproofがF1が7つとG2が1つとあるが、なんのことかわからない…
- proofの例
MOyXJ3AH/jSeexXqnYzI13iKTjSLOcllHQmlB36UAGgnMSAwshH52/+erknD84KKAOpBN1w5NsklZnkPl6VZOSB0GwsxCjB08mGRbXSZbxQaBUBxl3sPLWc0egWiE/EaFTG360rmBC0+kNU8JjRRz1fikQ0g76fHvsjMv8XQ8nFJmeOISEQOMSAwO8vlV9L6J0tz/dfyl0hfGI8ikvt4Tz8Qru20GEKPWhQxCjB3x46m3RdXS11NYX94Cu3g3/FnTA2MubKJOLRbvBkCLjEgMOtpKln3UtNHLsY0vt8UlSdfh/FLRj19Wj0GQ0WxO/cvMQowK6lx87YdKwyppsFsvxq/W6xANzXBdBQ3addBHJAbvyowCjD/yudzlmY2cqNKAbJysLbfMTufpdjE3vdx8aRvHnoDKDEK
- hashの例
76982ecb713544dc1fe13a3dc44a05a54ed39360995ca419af27b9102ee893cc
- 参考
Crazy Repetition of Codes
- 全探索でループを探して計算する解法 [1] [2]
- 計算する解法 [3] [4]
- CRC32の計算は行列計算に帰着させることができ、変形させていくとシンプルな形になる
- 累乗部分は繰り返し二乗法による高速化をすることで、求められるので、最終的に求めることができる
- 競プロでもよく出てくる2元体とか環とかの話がベース
- 参考