Django - フォームを作成する (初歩)

概要 ドキュメントのコードを参考に初歩的なフォームを作成する チュートリアルで作成した polls アプリケーションを改造していく方針で (Djangoのドキュメントはドキュメントであって、チュートリアルではありませんという声が聞こえた気がした) 低勾配の私…

平滑化 (移動平均) フィルタ

概要 画素の色の違いを滑らかにする (周囲の画素と平均する) イメージ 黒板の文字を黒板消しで消そうとしたが、完全には消えていない状態 (= チョークの粉を引き延ばした状態?) 分かった部分 カーネル適用部分の中心部分を注目画素という。畳み込みを行った…

VeryFitProの歩数データをヒストグラムでプロットする

概要 Fitbitは高くて買えない 安価なウェアラブル端末で歩数をカウントした ヒストグラムでプロットしたい 苦労した点 plt.hist()のrangeパラメータを指定しておらず、バーの幅がまちまちになった 基本的にデータを採取すること自体を忘れていることがある …

決定木 (離散データ用)

概要 エントロピーを最も下げる、データ集合の分割方法を (再帰的に) 得たい 特徴値が連続値の場合は大小比較 (気温が25℃以上とか) 、離散値の場合はそのままカウント が、連続値の場合は前処理によって離散値に変換し直すことができる (離散値) の場合、値…

graphvizを使ってツリー構造をpng画像化できる基本ノードクラス

概要 ツリーを構築でき、構造をpng画像として出力できるノードクラスが欲しい 存在するかもしれないが、作ってみる graphviz、pydotplusを使用した DOMへの敬意を込めてappend_child()というメソッド名をjsから拝借した 良かった点 print_labels()、print_ed…

Fuzzy C-means法

概要 クラスタ中心との距離の逆数に応じた所属確率を用いる K-means法では最近傍のクラスタのみに所属させていた イメージ 自宅が吉祥寺駅と三鷹駅の間にあるとき、吉祥寺駅との距離をk、三鷹駅との距離をmとすると k 吉祥寺駅の近くに住んでいると自慢して…

k-means法をpythonで実装してみる

概要 実装してみた k-means法を実装してみたくなる一番の理由は「実装できそうな気がするから」 fit()、fit_predict()という2メソッドの名前だけsklearnを参考にした 実装 import numpy as np class MyKMeans(object): """クラスタリングを行うためのクラス"…

ADFGVX暗号の暗号化/解読用モジュールを書いてみた

8946|ハッキングチャレンジサイトさんの#34でADFGVX形式の暗号が出てきた 自分の手で書けそうだと思ったので書いてみたが、以外と面倒だった ADFGVXの文字で変換後、文字行列を縦に読むのか横に読むのか仕様が分からず、両方を実装するのに苦労した(NumPy.a…

Time-based SQLインジェクションをRubyで(2) (Mechanizeバージョン)

Mechanizeでも書いておく メールアドレスの長さまでは分からないので、何回ループさせればよいか分からないと思っていた(終了判定の条件が分からず結果が~.comzzzzzzz...とかになる) あらかじめ調べればよいことに気づいた メールアドレスの長さをあらかじめ…

(備忘録/Rails)作業ログから今日の作業時間(合計)を求める

弊社(笑)のTimelogという作業管理アプリについて.. 今日の0:00~現在までの作業時間計を得たい ログイン中のユーザーをcurrent_userで取得しており、 Logモデル(テーブル)にminutes(作業時間)カラムがある きれいに書けたので # ログイン中のユーザーのログ(…

Time-based SQLインジェクションをRubyで(二分探索バージョン)

Blind SQLインジェクションは1文字を確定させるためのリクエスト回数が多い 二分探索でASCIIコードの範囲を絞り込む、ということをする MySQLのSLEEP(n)は該当するレコードが複数存在すると、その1件毎にスリープしてしまうので時間の比較がしづらい 従って…

Time-based SQL injectionなるものを知った

(今更かよというツッコミはさておき) Blind SQL injectionの発展形 SQLの結果をレスポンス画面から取得できない場合、値の埋め込みの成否が判定できない 成否の判定にSLEEP(5)などを用いる(SQL実行結果がレスポンスとして返らずとも、レスポンスが遅いこと自…

規則性のある10x10の行列の和を求める(Rubyで)

以下のような行列の要素の和を求めます 暗算でできる(よね?)という趣旨 法則性をつかみやすくするために、一度数値を並べて表示させたのが良かった(本来ならこれを頭の中でやりたい) むしろ想定できる事柄を手作業で列挙していく途中で、(遅かれ早かれ)法則…

(続)懲りずに橋渡り問題をRubyで解く

懲りずにやる 4人の人間が橋を渡りたい 一度に橋を渡れるのは2人まで 橋を渡るのに懐中電灯が必要で、一つしかない(=>誰かが持って帰ってくる必要がある) 4人はそれぞれ橋を1, 3, 5, 10分で渡る 橋を2人で渡る場合は遅いほうのペースに合わせる 全員が17分以…

行と列の入れ替え問題をRubyを使って考える

行列の行と列を入れ替えて任意の行列を作りたい(が可能か?) 要素数が16なのでコードがあったほうが助かる コードのアイデアとしては、列の入れ替えは行の入れ替えの前後で転置(transpose)するかどうかが異なるだけ 以下のような行列を、 a = [ [1, 2, 3, 4],…

懲りもせず兵士の輸送問題をRubyで解く(考える)

この手の問題は手続きというより制約条件から自然に解ける 川渡り問題と同種の問題で、 兵士25人と子供が2人こちら側にいる(とボートが存在する) 兵士を対岸に全員移動させたい 子供はボートに2人乗れるが、兵士は1人しか乗ることができない 何手かかる?とい…

Digest認証の仕組みを検証してみた

ksnctfさんの#9 Digest is secure!という問題を解きたく、Digest認証を実装レベルで理解する必要があった やはり、中の値を自分の手で確認するとよく分かる 最終的に何(クライアント側の)と何(サーバ側の)をチェックすることになるのかを理解するのが重要だ…

手袋選択問題をRubyで[未完]

手袋選択問題 黒の手袋5組(10枚)、茶3組、灰2組の手袋 ランダムに選ぶ 同色の組が出来上がるまでの確実な枚数を求める 最悪な(意地悪な)パターンを想定する必要がある(発想の転換)→なるだけ組を揃わないように手袋を渡していく (!)19枚の手袋の順列を求めた…

SQLインジェクション用のPHPコードを書いた

気兼ねなくテストしたく。 setAttribute(PDO::ATTR_EMULATE_PREPARES,…

RubyからBasic認証をともなうアクセス

当然ですが、認証が必要なので普通にGETするだけでは無理で、 require "net/http" require "uri" url = "http://localhost:4002/a/a.php" uri = URI.parse url =begin # 普通にアクセスするだけではだめ res = Net::HTTP.start(uri.host, uri.port) do |http…

xor演算で遊んでみた

xor演算を暗号に使う場合 参考URL(CTF): http://natas11.natas.labs.overthewire.orgもともと内部的にはバイトの羅列なのに、一体何をやってんだろうと 少し思った。 # ※xorメソッドしか作っていない class Byte def initialize(bstr) if bstr.length != 8 r…

画像のマジックナンバーを眺めてみた

マジックナンバー=画像識別のための共通文字列 参考URL: マジックナンバーまとめ - Qiita (他に、音声動画、実行ファイルもあり参考になりました) ファイルの先頭に存在する。バイナリエディタでも確認できるが、

rot13を復号するスクリプトを書いてみた

class Rot def initialize(cipher) @cipher = cipher @chars = "abcdefghijklmnopqrstuvwxyz" end # 文字をn文字ズラす(加算) def rotate_c(c, n) ind = @chars.index(c) new_ind = ind + n if new_ind > @chars.length - 1 new_ind = new_ind % @chars.leng…

16-09-08

本日のコード(1)[PHP] ~CTFの続き 参考URL: PHP Object Injection - OWASP上記のサイトを参考に、少し変化を加えてを書いてみる。 '); } } /* シリアライズデータを生成しておく */ /* fil…

16-09-07

本日のコード(1)[Mongodb,PHP] MMA CTF 2nd 2016 : get-the-admin-password-100 のWrite-upを読んでいて、自分で環境を作って試したくなった。 が、この問題に関しては少なくとも(?)データベースがMongodb(or NoSQLの類)である ことが分からないので、' OR 1…

16-09-06

本日のコード(1)[Python] # 何もimportする必要がない table_name = "my_name_is_table" enc = table_name.encode("hex") print(enc) print(enc.decode("hex")) phrase = "this_phrase_is_yours" cip = phrase.encode("rot_13") print(cip.decode("rot_13"))…

16-09-05

Write-upを読んだ InternetWache CTF 2016 : Mess of Hash require "digest/md5" ans = "0e408306536730731920197920342119" for i in 0..999999999 do s = Digest::MD5.hexdigest( Digest::MD5.hexdigest(i.to_s) + "SALT" ) if s === ans puts "#{i} ---> …

16-09-02

本日のコード(1)[Ruby] class A; end # クラスAはClassクラスのインスタンスなので puts A.instance_of? Class # true # 以下はクラスメソッド定義となる A.instance_exec do def class_method() :class_method_of_A end end puts A.class_method # 以下はク…

16-08-31

本日のコード(1) フィボナッチ数(列)を求めるコードをjsで書いてみた。 function Fib() { this.memo = [0, 1, 1]; this.calcCount = 0; this.mCount = 0; } /* メモ化無し */ Fib.prototype.calc = function (n) { this.calcCount++; if (n === 0) return 0;…

16-08-30

本日のコード(1) 参考URL: http://blog.hash-c.co.jp/2013/12/Content-Security-Policy-CSP.html <body onload="alert(document.cookie)"> </body> リソースの種類やドメインを指定して、 htmlのイベント属性を禁止したりしてくれるが、紹介されている スライドによれば実際…