|
本帖最后由 gclome 于 2021-1-22 22:57 编辑
原文链接:利用手工注入破解网站管理员账号和密码
测试站点:http://www.sqlzhuru.com
首先判断该网站是否有注入点,那么我们怎么判断注入点呢,先随便点一张图片看看参数值,ID=xxx 这种就是参数值,接下来仔细看操作。
- and 1=1 看看页面显示是否正常,如果正常那么在接 and 1=2
-
-
- and 1=2 是错误的,证明存在有注入点,那么接下来,我们就猜解表名,看看数据库里面存在的表名是什么,一般情况下表名都是admin 要么就是user ,如果没有常见的表名那么久继续猜解。
- 猜表名 and exists (select * from admin) 如果数据库存在有admin这个表就页面显示正常。
-
- 我们既然知道数据库里存在有admin 这个表,那么接下来就猜admin表里面的列名,说明一点为什么要看admin表呢,因为数据库里面admin,user 这类表名是存有管理员账号密码信息,我们要网站管理员账号密码就是为了登录网站后台。
- 一般情况下admin 表里面的列名都是 username 和 password 这两个列名就是数据库的账号密码信息,猜列名 and exists (select username from admin )这条语句是查看数据库里面 列名 账号。and exists (select pasword from admin ) 这条语句是查看 数据库里面的密码列名。
-
-
- 以上两张图可以看出来有一条语句是成立的,而有一条是错误页面,页面显示正常的是查询密码的语句,证明这个网站里面的数据库是存在有password这个列名,而username这条语句不成立的原因应该是管理员修改过账号的列名,把数据库里面的username改成其他的列名,我们尝试猜一下其他列名,看看行不行
-
- 果然把账号里面的列名改成 admin ,现在两条语句成立了,我们接下来我们就要猜解长度 ,猜解长度语句是order by 后面随眠加数字,把数字调为页面显示正常为止,这里22页面显示正常,23页面显示错误,那么它的一个长度是22
-
-
知道它的一个长度 我们就用另一条语句查看爆出的数字,现在我们就用这条语句看它爆出的数字是什么,UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin 因为我们这里查它的长度是22,所以要输入1~22 ,爆出来的数字是3和15
接下来我们就要这个网站的数据库里面爆出账号和密码,关键时刻即将降临,有点心跳加速的感觉。
怎么爆出管理员账号和密码,接下来我们就用到上面那条语句,在按页面爆出的数字 换成我们要爆的账号密码 列名就可以了,
账号和密码都爆出来了,账号是:admin 密码是:49ba59abbe56e057 是16位,这是MD5加密的值,并非是真正的这个密码,我们直接把爆出来的密码拿去登录时登录不上去的,去解密MD5就可以了,现在去解密看看明文密码是什么。
看到没有密码是 123456 这个才是真正解密出来的登录密码,现在我们登录后台看看。
现在成功登录,大功告成了,这次用的是手工联合查询法,还有一种方法比较麻烦,我就不演示了,有什么问题不能解决可以联系我。
|
|