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

hamayanhamayan's blog

2021-03-01から1ヶ月間の記事一覧

JWT [VolgaCTF 2021 Qualifier]

調査 Sign InとSign Upができる。 アカウントを作って、ログインすると、挨拶できるページがある。 /say-hi -> You are simple user. adminユーザーで挨拶すればよさそう。 Proxy履歴を見てみよう。 それほど気になる部分もない。 タイトルにもあるようにJWT…

notes [UMassCTF 2021]

Volatility 解析してみよう。 $ python2 vol.py -f /mnt/c/Users/ctf/Downloads/umassctf2021/notes/image.mem imageinfo Volatility Foundation Volatility Framework 2.6.1 INFO : volatility.debug : Determining profile based on KDBG search... Sugges…

Hermit - Part 1 [UMassCTF 2021]

調査 ファイルがアップロードできるようだ。 shellが何とか言ってるし、ファイルアップロードだし、phpだし。 phpのwebshellをアップロードしてみよう。 ファイル名はもちろんshell.php%00.png webshell webshellが成立するので、色々探す。 $ ls index.php …

Traveler [AtCoder Beginner Contest 197(Sponsored by Panasonic) E]

https://atcoder.jp/contests/abc197/tasks/abc197_e 解説 https://atcoder.jp/contests/abc197/submissions/21324848 貪欲法で解く。 回収順 ボールは色が広義単調増加となるように回収する必要があるので、 同じ色のボールについては回収順番はどうなるか…

Opposite [AtCoder Beginner Contest 197(Sponsored by Panasonic) D]

https://atcoder.jp/contests/abc197/tasks/abc197_d 前提知識 幾何 解説 https://atcoder.jp/contests/abc197/submissions/21324773 幾何問題ではあるが、幾何ライブラリが無くてもギリギリ解けるラインをABCで狙ってきた感じがしますね… 幾何的な考察 これ…

ORXOR [AtCoder Beginner Contest 197(Sponsored by Panasonic) C]

https://atcoder.jp/contests/abc197/tasks/abc197_c 解説 https://atcoder.jp/contests/abc197/submissions/21324728 全探索できそうか? まず、分割方法の全てを全探索して、その最小値が取れないかを考えてみる。 分割の方法は、分割する箇所が数列Aの要…

Visibility [AtCoder Beginner Contest 197(Sponsored by Panasonic) B]

https://atcoder.jp/contests/abc197/tasks/abc197_b 解説 https://atcoder.jp/contests/abc197/submissions/21324614 宗教上の理由により、縦は長さHで変数yを、横は長さWで変数xを使うと決めているので、 それに従って問題の解釈を変えている。 つまり、X…

Rotate [AtCoder Beginner Contest 197(Sponsored by Panasonic) A]

https://atcoder.jp/contests/abc197/tasks/abc197_a 解説 https://atcoder.jp/contests/abc197/submissions/21324500 文字列操作を頑張る問題。 c+であればsubstrを使うと、部分文字列を取り出せる。 string S; //----------------------------------------…

Substring 2 [AtCoder Beginner Contest 196 F]

https://atcoder.jp/contests/abc196/tasks/abc196_f 解説 https://atcoder.jp/contests/abc196/submissions/21122079 えー、どれだけ考えても分からなかったのですが、FFTを使うということで、なるほどという感じでした。 公式解説 AtCoderの解説から解説動…

Filters [AtCoder Beginner Contest 196 E]

https://atcoder.jp/contests/abc196/tasks/abc196_e 解説 https://atcoder.jp/contests/abc196/submissions/21120300 公式解説では関数合成を行うやり方が紹介されている。 関数合成か…よくわかってないのよね… 半環問題でやったことはあるけど… ということ…

Hanjo [AtCoder Beginner Contest 196 D]

https://atcoder.jp/contests/abc196/tasks/abc196_d 解説 https://atcoder.jp/contests/abc196/submissions/21119163 恐らく初見だと何から手を付けようかという気持ちになると思う。 制約条件を見るとかなり値が少ないようなので、まずは愚直解を考えてみ…

Doubled [AtCoder Beginner Contest 196 C]

https://atcoder.jp/contests/abc196/tasks/abc196_c 解説 https://atcoder.jp/contests/abc196/submissions/21118718 全探索をすると1012通りあるので、これは難しい。 余談、経験則 1012通りというのは中途半端な気がしないだろうか。 これの平方根を取る…

Round Down [AtCoder Beginner Contest 196 B]

https://atcoder.jp/contests/abc196/tasks/abc196_b 解説 https://atcoder.jp/contests/abc196/submissions/21118594 プログラムは小数を扱うのがあまり得意ではなく、プログラム内部で小数を表現するときは誤差に注意する必要がある。 その辺りの知識を問…

Difference Max [AtCoder Beginner Contest 196 A]

https://atcoder.jp/contests/abc196/tasks/abc196_a 解説 https://atcoder.jp/contests/abc196/submissions/21118526 全組合せを考えると200×200通りくらいなので、大体4*104通りで全探索できる。 なお、全探索できるかラインは大体106くらい。 全ての組み…

Source it! [UTCTF 2021]

ソースを見ろとタイトルから言われているので、動かす前にソースを確認する。 javascriptで認証確認を行っているパスワードがハッシュ化されていて読めないが、 textという変数を認証後に出力しているようだ。 ということは、どこかでこの変数を定義している…

Oinker [UTCTF 2021]

謎のサイト。 aがoinkに変換される。 通信を見ると、/oink/[id]が発行されている。 IDORかな? /oink/2を見ると、フラグが書いてある。 utflag{traversal_bad_dude}

Cutest Cookie Clicker Rip-Off [UTCTF 2021]

Cookieをクリックしまくって106回を目指すというもの。 とりあえず、一周遊んで、Proxy履歴を確認してみる。 ふーむ、最後にPOST /でscoreを送信してるのね。 ここで108くらいを出してみるが、ダメ。 ふーむ。応答でhighScoreが設定されている。 これは送信…

Homeward Bound [NahamCon 2021 CTF]

これは死ぬほどHackeroneレポートを見てきた自分からするとやることは1つだった。 HTTP Requestのヘッダーに身元を申告する拡張ヘッダーを死ぬほど入れる。 X-Forwarded-For: 127.0.0.1を入れると内部情報を見ることができた。 Your internal access key is: <code></code>…

$Echo [NahamCon 2021 CTF]

何かを書くとそれを即座にEchoしてくれる。 Echoコマンドだろうのでコマンドインジェクションかな? $([command])を試してみると、 Hey mate, you seem to be using some characters that makes me wanna throw it back in your face >:( 怒られた。 使えな…

Obfuscation [DaVinciCTF]

secretを送ってほしそうな画面が出てくる。 難読化されているとタイトルに書いてあるので、Chrome Developer Toolを開いて適当な所でブレークしながら、 変数・関数の応答を確認していく。 _0x14130d == unescape(_0x3ee8ed)という怪しい部分があるので、Con…

Authentication [DaVinciCTF]

ログイン画面が出てくる。 Usernameがadminの状態でログイン失敗すると、煽られる以外は特に気にならない。 特にソースコードを見ても気になるところがない。 SQLiしてみるか。 Usernameに'を入れると500応答となる。 Usernameにadmin' or 1=1 --を入れると…

Never gonna give you flag [Break The Syntax CTF]

http://never-gonna-give-you-flag-bd0aa9d.ch.btsctf.pl/ いつものあの人が死ぬほどいじられているサイト。 コードを見ると/Never_gonna_give_you_up.htmlでflagが取得できそうな感じがする。 しかし、Chrome Developer ToolのConsoleを見てみると、処理に…

Cheated lottery [Break The Syntax CTF]

クーポンサイトが与えられる。 情報が少ないが、とソースコードにある。 from flask import Flask, render_template, request from dotenv import load_dotenv import mysql.connector import os load_dotenv() def get_coupons(form): coupons = list() myd…

Coprime Present [パナソニックプログラミングコンテスト(AtCoder Beginner Contest 195) F]

https://atcoder.jp/contests/abc195/tasks/abc195_f 前提知識 bitDP 解説 https://atcoder.jp/contests/abc195/submissions/20909698 多分初見だと何も手につかないような気がするが、色々な部分から解法を持ってくる。 bitDPが分からないと最終的な答えに…

Lucky 7 Battle [パナソニックプログラミングコンテスト(AtCoder Beginner Contest 195) E]

https://atcoder.jp/contests/abc195/tasks/abc195_e 前提知識 バックトラック 解説 https://atcoder.jp/contests/abc195/submissions/20908954 ゲーム問題には解法は多くないが、今回はその中でバックトラックを使った方法で解く。 状態の圧縮 ゲーム問題の…

Shipping Center [パナソニックプログラミングコンテスト(AtCoder Beginner Contest 195) D]

https://atcoder.jp/contests/abc195/tasks/abc195_d 前提知識 最小費用流 解説 https://atcoder.jp/contests/abc195/submissions/20908448 この解法は非想定解です。 想定解は貪欲法であるが、貪欲法を確信的に行うのはやや難しい。 自分は、アルゴリズムの…

Comma [パナソニックプログラミングコンテスト(AtCoder Beginner Contest 195) C]

https://atcoder.jp/contests/abc195/tasks/abc195_c 解説 https://atcoder.jp/contests/abc195/submissions/20908056 状況が同じものをまとめながら数え上げる問題。 基本考察 1からNに順番に数え上げていくと、 1~999はコンマ0個 1000~999999はコンマ1個…

Many Oranges [パナソニックプログラミングコンテスト(AtCoder Beginner Contest 195) B]

https://atcoder.jp/contests/abc195/tasks/abc195_b 解説 https://atcoder.jp/contests/abc195/submissions/20907660 パッと見て、O(1)で判定ができそうな感じがするが、 結構注意しないと境界条件が怪しくなりそうな感じもする。 本番はそれもあって飛ばし…

Health M Death [パナソニックプログラミングコンテスト(AtCoder Beginner Contest 195) A]

https://atcoder.jp/contests/abc195/tasks/abc195_a 解説 https://atcoder.jp/contests/abc195/submissions/20907485 モンスターを倒せる条件はHがMの倍数であるかである。 それを判定して、答えを出力する。 三項演算子を使って実装した。 昔は嫌いで否定…

Digits Paradise in Hexadecimal [AtCoder Beginner Contest 194 F]

https://atcoder.jp/contests/abc194/tasks/abc194_f 前提知識 桁DP 解説 https://atcoder.jp/contests/abc194/submissions/20736872 この問題は桁DPで解く。 なお、桁DPが初見という人は他のオーソドックスな問題を先に解くことをお勧めする。 桁DP 以下の…