web-dev-qa-db-ja.com

ModSecurity WAFでのSQLインジェクションのためのユーザーエージェントと入力の使用

WAFとしてModSecurityを使用してチャレンジWebサイトをテストしようとしています。 'ユーザーエージェントで、MySQLからエラーが発生しました。

SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、1行目の '' '') '付近で使用する正しい構文を確認してください

今私はこのヘッダーでそれを悪用しようとしています:

User-Agent: brick') order by 15 --+

結果は次のとおりです。

SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、1行目で '') 'の近くで使用する正しい構文を確認してください

sQLインジェクションに対して脆弱な別の入力も見つけたので、悪用される方が簡単かもしれません...

' order by 15 --+

私はこの例のように注入しようとしました、そしてそれは結果を動かします

Unknown column '15' in 'order clause'など.

しかし私が試したときorder by 2

私はこの結果を得ました:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by 2 --  ', '', '', '', '5', 'Lbs', '', 'Mozilla/5.0')' at line 1

活用する方法についてのアイデアはありますか?

1
user3771906

表示されるエラーは、modsecurityからではなく、MySQLからのものです。サーバーが作成したSQLステートメントが無効であることを通知します。

たとえば、SQLクエリは次のように構成されている可能性があります。

UPDATE clients SET useragent='$useragent'

あなたの例では、これは

UPDATE clients SET useragent='brick') order by 15 --+'

括弧があるため、これは明らかに無効です。

これを利用するには、正確なクエリを知るか、クエリを推測していくつかの異なる値を試す必要があります。

3
Sjoerd