0x1のソースを表示
(1)キーコード
もちろん、コードは3つのシンボルのうち、フィルタリングされた[「」、/]正規と一致します
0x2のワイド文字注入
(1)はじめに
MySQLでは、関数は状況magic_quote_gpcがある、などをmysql_escape_string、mysql_real_escape_stringのをにaddslashesをエスケープするために使用されているが、より高いPHPのバージョンは、この機能を削除します、射出バイト幅のHTMLページのコードは無関係です。
(2)の概念を
文字、文字セットと文字列
文字(文字)の文字セット(文字セット)で構成される基本単位です。文字セット内の文字の位置を決定する文字の数(符号化)を割り当てます。
UTF8
ASCII文字が表されているためだけで128、したがって、オンラインの世界は、UNICODEコーディングを使用することで調整するが、ASCII表現でUNICODE文字を使用することは効率的ではありません。このように、中間キャラクタ・セット形式があった、ユニバーサルフォーマット変換と呼ばれています。
バイト幅
GB2312、GBK、GB18030、BIG5は、このようなシフトJISは、多くの場合、実際には、バイトが広いだけで2バイトを言われています。バイト幅の潜在的な安全性の問題は、ASCII文字(1バイト)現象を食べています。
(3)注意点
一般的に言えば、文字エンコーディングのGBKは、2つのバイトを占有します。UTF-8でエンコードされた文字は、3つのバイトを占めます。PHPで、我々ができる出力エコーSTRLEN( "中"); 2 GBKページ入力を符号化するとき入力3 UTF-8。
(4)原理
MySQLのGBKエンコーディングを使用する場合、我々は、2つの漢字を考慮し、例えば%のAAの%5cは、文字(より大きい128文字の範囲に前ASCIIコード)です。私たちは、フィルタリングコンバート\ '「彼らはしばしばアイデアがあるに使います」 。
0x3の実用的なアイデア
(1)思考:
でurlencode(\「)=%5Cの27%は、我々が追加特にので、単一引用符ので、濾過し、私たちは%DF \食べる使用される以前%DF%5C%27、%DF%5C%27に形成され、また、私たちに会っている間とMySQL上記のようにして、2バイト文字を符号化する際に、問題%DF%5cは外側に単一の記号として漢字、27%であるGBKます目的。
(2)2つのアイデア
濾過\で\」は、例えば、ここ%**%5C%5C%27設定することができ、後者は、コメントに先行%5C%5Cのであろう。これはまた、迂回する方法です。
注射の0x4の実用的な操作
0X01閉じた構成
「私の日コメントアウトされることがわかっ入会
Baiduはあなたがバイパス教えます
php会针对URL编码进行decode decode后,url参数为 ?id=10 0xD6 ‘ 0×20 AND 0×20 1=2 0×23 magic_quotes_gpc处理时会自动转义,即在‘前面加一个\ 处理后url参数变成: ?id=10 0xD6 0x5c ‘ 0×20 AND 0×20 1=2 0×23 可以看到,在‘前面PHP会自动加一个0x5c(注:0x5c为\),也就是会自动转义成\’ 由于汉字是双字节的,所以0xD6 0x5c被转为謀这个汉字,’之前的\就这样消失了 最后的%23为#,在sql中#是注释,所以后面的’就没用了 最终sql中projectid = ’10謀’在sql执行的时候,由于projectid为int类型字段,mysql会自动intval()处理一下 详情见这里
?id=-1%df%27%20%20union%20select%201,database(),3%23
第二种思路
思路二没有试验成功
切 记 学习之路 少就是多 慢就是快