Access注入详细笔记

ACCESS 注入

01 漏洞产生原理

注入 是针对数据库语句注入(所以识别数据库类型很重要),注入漏洞产生于脚本

注入产生于数据交互的地方

1.网站分类
  • 静态网页

    html或者htm,是一种静态的页面格式,不需要服务器解析其中的脚本。由浏览器如(IE、Chrome等)解析。

    • 不依赖数据库
    • 灵活性差,制作、更新、维护麻烦
    • 交互性较差,在功能方面有较大的限制
    • 安全,不存在SQL注入漏洞
  • 动态网页

    asp、aspx、php、jsp等,由相应的脚本引擎来解释执行,根据指令生成静态网页。

    • 依赖数据库
    • 灵活性好,维护简便
    • 交互性好,功能强大
    • 存在安全风险,可能存在SQL注入漏洞
  • 伪静态

    • 比如index.jsp 地址栏加载成index.html
    • 可以尝试更换后缀为脚本类型后缀,看解析是否正常;观察是否有传参点
    • 如果各种脚本后缀都能正常解析,是做了容错处理,再根据中间件判断;apache/nginx默认搭php,iis的话八成的asp/aspx;系统为linux的九成会搭php/jsp;多方面综合分析
    • 伪静态伪的比较全面的话,是扫不出来什么漏洞的;可以通过爬行链接,如果存在搜索、注册、登录等页面这种存在数据交互的,那肯定就是非静态
2.数据库与脚本类型常见搭配
  • 根据脚本对数据库做基本判断

    • asp + accesss 一般小型的企业网站,规模小,没有太多数据交互;有些会用sqlserver比如学校网站需要大量存储数据
    • aspx + sqlserver
    • php + mysql
    • jsp + mysql /sqlserver /oracle oracle数据库大
  • 常测脚本:jsp > php > aspx >asp

    一般大型的会用到jsp比较多,而且jsp语言相对安全漏洞少,用asp的话漏洞多

3.Access数据库

单库,规模小,不需要搭载服务(其他的需要账号密码登录才能访问数据)

作为独立的文件,可以直接放在源码下

image-20220927205352871

  • 如果要进行拖库

    • 下载网站目录下.mdb文件,然后本地用工具打开就可以(比如数据管理–DatabaseBrowser)
    • 源文件一般存放在data/data.mdb,但是管理员可能对名称进行修改,下载后自己改后缀为mdb
  • 下载的数据库文件被加密

    • 如果能下载网站的源码,源码中会记录调用数据库使用的明文密码
    • 用破解工具(数据管理–Access密码读取)尝试破解出密码
4.漏洞成因

image-20220927164554985

02 ACCESS 手工注入

1.漏洞挖掘
  • access数据库判断

    • exists(select*from msysobjects) #如果这条语句正确,说明是Access数据库
  • 漏洞出现的位置

    • 手工挖掘:有参数传递、与数据库交互、我们可以控制
    • 工具扫描:Awvs、burp、appscan
  • 判断是否有注入点

    • 如果合法语句和非法语句返回页面一样,说明做过防御;如果直接跳转主页或者404则是存在检测,无法注入;否则可能存在
    • 数值型:/ 和 -0
    • 字符型:单引号 ’
2.注入准备语句
  • sqlmap定义的几种注入类型

    • union联合查询、布尔盲注、时间盲注、报错注入、多语句查询、内联注入
    • access只存在前两种,其他的高阶数据库才有
  • 猜解字段长度

    • order by 9 页面返回正常,说明当前注入点字段总数为9
    • union select 1,2,3,4 form [表名](安装hackbar插件,用工具指定字段数就行)
  • 猜解表名\列名

    • and exists(select * from [表名]) and exists (select [列名] from admin)
    • 表名:admin \manager \admin_name \admin_user \user ;admin拼接域名;扫出来的后台目录等等
    • 列名:后台页面查一下网页源码,看源码中表单所用参数
  • 根据猜解的表明和列名,在回显点爆出用户名和密码

  • 布尔盲注逐字猜解

    • 通过判断ascii码来判断(这里用到二分法提高效率)
      and (select top 1 asc(mid(admin,1,1)) from admin)>100 返回正常说明大于,不正常说明不大于
      and (select top 1 asc(mid(admin,1,1)) from admin)>50 返回正常说明大于
      and (select top 1 asc(mid(admin,1,1)) from admin)=97 返回正常说明等于97 97对应的字母为a
    • 以此类推

联合查询和布尔盲注是独立的两种方式,能用联合就用联合效率更快,union被过滤、没有回显点等情况才考虑用布尔盲注

  • 假如爆出的用户密码登录不进后台

    • 查询的表名不对,比如查到admin表,其实后台登录验证的是admin_manager表
    • 后台地址不对,可能存在多个后台
    • 用户名密码错位:如果用户名和密码不是同时爆出来的,比如只有一个回显点,就很可能出现这样的情况,这时候用where语句绑定

    image-20220928003455709

03 工具使用

1.burpsuite爆破
  • intruder加载字典跑(不用字典也可以布尔逐字猜),速度默认5个阿里云不会拦截

1

2.sqlmap
  • –tables 列出表名,假如扫出来了100张表 --columns 爆列名
  • 判断哪个表是管理员表
    • –count 统计每个表的列数,列数较少的可能是管理员表
    • –search -C pass 查询表内是否存在pass列名,同时存在用户和密码列的比较可能是
3.穿山甲

​ 如果没有waf扫access的话,穿山甲好用(漏洞利用–pangolin)

  • 漏洞利用–panggolin,直接把url放进去跑

  • win10用不了,可以放到虚拟机;字典小,可以把sqlmap的字典拿过来用

04 ACCESS偏移注入

用在猜出来表名,但没有猜出列名的时候

  • 这里讲的不是非常清楚,access偏移注入原理

  • 跨库查询

    • 步骤是一样的,只是在表名前面加上另一个站的绝对路径
    • 必须有查询其他站的权限
    • from [D:\wwwroot\1\Databases\xycms.mdb].admin
    • 情景:a网站存在注入,但拿不到数据,同时通过目录遍历查到了其他网站的路径下的mdb

05 拦截绕过

看图识WAF-搜集常见WAF拦截页面

1.通用弹框拦截

image-20220928162911859

方法:变换提交方式,get改为post提交;抓包在cookie处注入也可以

2.安全狗

image-20220928163300988

方法:加入无关参数进行干扰

image-20220928163408035

3.360拦截

image-20220928164122205

方法:%0a代替空格就可以

4.WTS西部数码

image-20220928163544802

方法:+号代替空格,多个%%%%截断关键字

image-20220928163654788

5.其他

%26%26代替and,%截断关键字、大小写、url编码、复写等等组合使用

方法:%0a代替空格就可以

4.WTS西部数码

[外链图片转存中…(img-CNyqItPd-1665394023312)]

方法:+号代替空格,多个%%%%截断关键字

[外链图片转存中…(img-rjxX8Dvh-1665394023313)]

5.其他

%26%26代替and,%截断关键字、大小写、url编码、复写等等组合使用

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值