はいはいparos、paros

オープンソースでダダで使えるセキュリティスキャナparosってどんな風にアタックしているのか知りたかったので、くぱぁって感じでソースコードを覗いてみた。えろす。

結論を言うと、ソースコードべた書きで力押しでやっているのかな、超かっこわるいなー

↓ここから、ソースが落とせるので、paros-3.2.13-src.zipをさくっとダウンロードして適当なディレクトに解凍。
http://sourceforge.net/projects/paros/files/

ここでは、c:\ においた。
c:\paros

そんで、以下のディレクトに移動。
C:\paros\src\org\parosproxy\paros\core\scanner\plugin

はい、みごとにテストパターンは java 中に埋め込みです。
本当にありがとうございました。

C:\paros\src\org\parosproxy\paros\core\scanner\plugin\TestInjectionSQL.java

    private static final String[] SQL_AND = {
        " AND 1=1",
        "' AND '1'='1",
        "\" AND \"1\"=\"1",
    };  // always true statement for comparison
    
    private static final String[] SQL_AND_ERR = {
        " AND 1=2",
        "' AND '1'='2",
        "\" AND \"1\"=\"2"
    }; // always false statement for comparison
    
    private static final String[] SQL_OR = {
        " OR 1=1",
        "' OR '1'='1",
        "\" OR \"1\"=\"1",
    };  // always true statement for comparison if no output is returned from AND

まさかソースコードに決めうちされていたとは、オラびっくりしちゃったぜ。
最初、C:\paros\src\db\parosdb.data っていかにもなファイルがあったから、この中にパターンが格納されているものかと思った。
このソースを追っていくとファイルは、HSQLらしい。

C:\paros\src\org\parosproxy\paros\db\DatabaseServer.java

    private void start(String dbname) throws ClassNotFoundException, Exception{
        // hsqldb only accept '/' as path;
        dbname = dbname.replaceAll("\\\\", "/");
        
        mUrl         = "jdbc:hsqldb:file:" + dbname;
        
        Class.forName("org.hsqldb.jdbcDriver");

        mConn = DriverManager.getConnection(mUrl, mUser, mPassword);
        

        
    }

javaとかまったく触ったことないので、HSQL の開き方がよくわかんないんだけど、バイナリエディタでくぱぁして見るとひたすら 0x00 で埋まっていたから空なんだろう。つーか、windowsにも strings コマンドがほしいね。 cygwinなんて入れたくないのでネイティブでほしい。

この手のデータを伴うオープンソースプロダクってデータの更新がネックになって開発がとまったりするよね。
企業でやっているところは、データを更新する専任がいたりするけど、オプソだと難しいよね。そーゆー仕事つまんないし。
やっぱ、データはwiki等の誰でも編集できるところにおいて、更新の敷居を下げて、暇なボンティアを呼び込む以外ないと思うんだ。もち、誰でもできると悪意をもった人がいるといやなので、誰でもできる板、ある程度検閲されている板、安定板って感じで分けないといけないけどね!! debian でいう、 sid testing stable みたいな。
それを判断する管理者が必要だけど、wikipediaの専門家気取りのような暇なやつらがいるんだから、なんとかなるんぢゃねーの?

余談1
scanner\plugin paros とかでぐぐったら↓のサイトにpluginディレクトリ以下について説明されていた。
http://pw1.atcms.jp/techrep/index.php?Paros

余談2
paros のビルド方法
http://d.hatena.ne.jp/tessy/20090405/1238937139