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数据库

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

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

  • 如果要进行拖库

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

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

4.漏洞成因

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语句绑定

03 工具使用

1.burpsuite爆破

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

  • 关于burpsuite Intruder爆破模块使用:burpsuite爆破用户名密码例子 Burp Suite Intruder四种密码爆破模式简析 BurpSuite-Intruder-Payloads和Options介绍

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.通用弹框拦截

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

2.安全狗

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

3.360拦截

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

4.WTS西部数码

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

5.其他

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

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

4.WTS西部数码

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

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

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

5.其他

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

Access注入详细笔记相关推荐

  1. ACCESS手工注入学习笔记

                      ACCESS注入 一:判断注入点 '        报错 and 1=1   正确 and 1=2   报错 or 1=1    报错 or 1=2    正确 a ...

  2. Spring5学习详细笔记

    学习链接 Spring5学习详细笔记 Spring学习总结 - 工厂 第一章 :引言 1. 什么是spring 2. 设计模式 3. 工厂设计模式 3.1 什么是工厂设计模式 3.2 简单工厂的设计 ...

  3. 尚硅谷-康师傅-MySQL详细笔记(1-9章)

    mysq详细笔记 第1章 数据库概述 1.1. 为什么要使用数据库 1.2. 数据库与数据库管理系统 1.2.1 数据库的相关概念 1.2.2 数据库与数据库管理系统的关系 1.2.3 常见的数据库管 ...

  4. SPRING注解驱动开发-雷神课程超详细笔记

    SPRING注解驱动开发-雷神课程超详细笔记 时间:2021-03-21 2022-04-06更新:最近翻起一年多前写的笔记复习,还是收获颇多,很多当时无法理解的知识现在慢慢能理解了,可能是工作一年的 ...

  5. 尚硅谷-康师傅-MySQL详细笔记(10-18章)

    mysq详细笔记10-18章 第10章 创建和管理表 10.1 基础知识 10.1.1 一条数据存储的过程 10.1.2 标识符命名规则 10.1.3 MySQL中的数据类型 10.2 创建和管理数据 ...

  6. access注入大全

    access注入 access偏移注入 access搜索型注入 access登陆框注入 1.判断注入. and 1=1 and 1=2 或者 -0 -1 看页面的变化 2. access注入. 联合查 ...

  7. oracle registers,【案例】Oracle RAC强制删除node节点过程的详细笔记

    天萃荷净 Oracle研究中心案例分析:分享一篇关于Oracle RAC节点间操作的笔记,详细介绍如何强制删除Oracle RAC中的节点. 本站文章除注明转载外,均为本站原创: 转载自love wi ...

  8. 学习javascript这一篇就够了超详细笔记(建议收藏)上

    学习javascript这一篇就够了超详细笔记(建议收藏)上 1.初识 计算机基础导读 编程语言 计算机基础 初识js 浏览器执行 js组成 js初体验-三种书写位置 js注释 js输入输出语句 2. ...

  9. IEEE access投稿详细步骤

    IEEE access投稿详细步骤 第一步:创建一个IEEE access账户 1.打开网址:https://mc.manuscriptcentral.com/ieee-access,点击create ...

最新文章

  1. 跨平台PHP调试器设计及使用方法——高阶封装
  2. jdk环境变量配置极速版
  3. Redis3:持久化
  4. python网络编程—Socket
  5. 数学中各种矩阵收集(转至其他博主)
  6. 【2016年第2期】大数据背景下的治理现代化:何以可能与何以可为(下)
  7. 字符串处理的基本方法
  8. Git-根据tag创建分支
  9. OpenCV图像处理(2)——形态学操作
  10. NIST:制定Cybersecurity的框架进行时
  11. 力扣题目系列:121. 买卖股票的最佳时机
  12. IDEA连接服务器执行python程序
  13. 因用了NeatUpload大文件上传控件而导致Nonfile portion 4194304 bytes错误的解决方法...
  14. his服务器数据修改工具,某三甲医院基于HIS系统升级改造项目的实战分享
  15. python中复数类型虚部为零时表示为_关于 Python 的复数类型,以下选项中描述错误的是...
  16. Instrument API介绍
  17. tpshop index.php,第三讲、TPshop linux安装
  18. 拷机测试需要多久_软件测试培训多久能学会?这六个阶段是要有的
  19. Jm 18.4 MVC 报告一
  20. 护士计算机怎么报名,(湘潭财经)湘潭财经职业技术学校报名计算机|航空|护士护理...

热门文章

  1. 地质灾害监测的主要内容
  2. 目前最强性能的人脸检测算法(Wider Face Dataset)
  3. 下三角矩阵线性方程的求解
  4. 交通标志识别 java_交通标志识别项目 putsi/tsaraisa · GitHub
  5. LR(0)、SLR、LR、LALR的区别
  6. 51单片机 | 直流电机实验
  7. 在Win10系统中使用labelme制作图像分割标签数据
  8. table th、td设置最大高,超高度出现滚动条
  9. CATIA软件如何在实体零件上提取面体?
  10. js实现图片拖拽效果