SQLインジェクションで埋め込まれる文字列
「2008年12月の緊急注意喚起の続報〜SQLインジェクション攻撃の変化について | LAC」で書かれている文字列を考えてみる。考えるというほど考えてないけど。
<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8 <raqmtr$r{c<jwpt<+.z1/absnd*bfm.iq*nu:=&sbpjtp8
という文字列が書きこまれるそうですが、データベースに書き込むのであればおそらく先頭部分は"<script src="を意味しているはず。ということで書き比べてみる。
<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8 <script src=***********************************
なんとなく何かのルールに従って変換してると言われると、合ってそうな気もする。英字は英字(srcの例外はある)、記号は記号に置き換えられているっぽい気がする。
ということでもう少しそれっぽい部分を埋めてみる。
<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8 <script src=http://******************></script>
やっぱり src の部分の例外をのぞき、英字は英字、記号は記号になるっぽい感じがするということで、もう少し埋めてみる。
<raqmtr$r{c<jwpt<+.z1/absnd*bfm.hs*nu:=&sbpjtp8 <script src=http://**.*****.***/**.js></script>
とりあえずこんな感じなのかな。
- 英字は英字に置き換わる
- 記号は記号に置き換わる
- 例外: r → {
- 例外: おそらく英字 → 1
- 例外: > → 8
(もうちょっとちゃんと考える時間があれば追記します)
回答出てた。
- 難しい カチッと答えが 決まらない - 交差点の猫
- a threadless kite - 糸の切れた凧(2009-01-16)
- SQLインジェクション文字列解読チャレンジ、とりあえず解読 - ニッチー・ブラックモア 「どうやら、'0123446419' の繰り返しパターンで xor を取る事で元に戻すことができるみたいです。」