私はsqlmapを使用してWebサイトのDBを取得していますが、このサイトには時間ベースのブール型の脆弱性があることがわかりました。しかし、ターゲットはSQLエラーを示しているため、注入エラーであると思いました。
気になったので、--parse-errors
一部のSQL予約語がフィルタリングされることを示すオプション。何かのようなもの:
AND became A_N_D, SELECT became S_E_LE_C_T ...
等々...
Sqlmapでこれをバイパスする方法はありますか?改ざんオプションはありますか?
テストで同様の状況がありました。アプリケーションはSQLサーバーを使用し、データ入力をフィルタリングするWAFがあり、予約語をブロックできたため、予約語を使用できませんでした。解決策は二重エンコーディングでした、たとえば1文字に二重エンコーディングを適用する必要があるだけです。たとえば、AND
を注入したい場合、URLエンコーディングを使用して文字A
をエンコードすると、次のようになります。これ:%41ND
; WAFはこれらの文字をA
として解釈し、機能しなくなります。次に、%
に2番目のエンコードを適用する必要があります。そうすると、次のようなものになります。%2541ND
; WAFは%25
を%
として解釈し、データベースは%41ND
を受け取り、正規化プロセスを実行してコマンドAND
を実行します。私はこのSQLインジェクションを手動で悪用しましたが、SQLmapにこのバイパステクニックがあるかどうかはわかりません。改ざんオプションを確認することをお勧めします。おそらく同じようなものがあります。
幸運を。
うーん...バイパスできるもののようですね。多分あなたはこのようなことを試すことができます:
replace( 'S_E_LE_C_T'、 '_'、 '')
replace( 'A_N_D'、 '_'、 '')
ワイルドな推測です...しかし、おそらくうまくいくかもしれません。最高は、試すことです!次に、この考えをsqlmapに適合させる必要があります。
sqlmap tampering について話しているページをいくつか見ました。多分nonrecursivereplacement
改ざんはあなたのために働くかもしれません。
幸運を