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数据库
单库,规模小,不需要搭载服务(其他的需要账号密码登录才能访问数据)
作为独立的文件,可以直接放在源码下
如果要进行拖库
- 下载网站目录下.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 - 以此类推
- 通过判断ascii码来判断(这里用到二分法提高效率)
联合查询和布尔盲注是独立的两种方式,能用联合就用联合效率更快,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注入详细笔记相关推荐
- ACCESS手工注入学习笔记
ACCESS注入 一:判断注入点 ' 报错 and 1=1 正确 and 1=2 报错 or 1=1 报错 or 1=2 正确 a ...
- Spring5学习详细笔记
学习链接 Spring5学习详细笔记 Spring学习总结 - 工厂 第一章 :引言 1. 什么是spring 2. 设计模式 3. 工厂设计模式 3.1 什么是工厂设计模式 3.2 简单工厂的设计 ...
- 尚硅谷-康师傅-MySQL详细笔记(1-9章)
mysq详细笔记 第1章 数据库概述 1.1. 为什么要使用数据库 1.2. 数据库与数据库管理系统 1.2.1 数据库的相关概念 1.2.2 数据库与数据库管理系统的关系 1.2.3 常见的数据库管 ...
- SPRING注解驱动开发-雷神课程超详细笔记
SPRING注解驱动开发-雷神课程超详细笔记 时间:2021-03-21 2022-04-06更新:最近翻起一年多前写的笔记复习,还是收获颇多,很多当时无法理解的知识现在慢慢能理解了,可能是工作一年的 ...
- 尚硅谷-康师傅-MySQL详细笔记(10-18章)
mysq详细笔记10-18章 第10章 创建和管理表 10.1 基础知识 10.1.1 一条数据存储的过程 10.1.2 标识符命名规则 10.1.3 MySQL中的数据类型 10.2 创建和管理数据 ...
- access注入大全
access注入 access偏移注入 access搜索型注入 access登陆框注入 1.判断注入. and 1=1 and 1=2 或者 -0 -1 看页面的变化 2. access注入. 联合查 ...
- oracle registers,【案例】Oracle RAC强制删除node节点过程的详细笔记
天萃荷净 Oracle研究中心案例分析:分享一篇关于Oracle RAC节点间操作的笔记,详细介绍如何强制删除Oracle RAC中的节点. 本站文章除注明转载外,均为本站原创: 转载自love wi ...
- 学习javascript这一篇就够了超详细笔记(建议收藏)上
学习javascript这一篇就够了超详细笔记(建议收藏)上 1.初识 计算机基础导读 编程语言 计算机基础 初识js 浏览器执行 js组成 js初体验-三种书写位置 js注释 js输入输出语句 2. ...
- IEEE access投稿详细步骤
IEEE access投稿详细步骤 第一步:创建一个IEEE access账户 1.打开网址:https://mc.manuscriptcentral.com/ieee-access,点击create ...
最新文章
- 跨平台PHP调试器设计及使用方法——高阶封装
- jdk环境变量配置极速版
- Redis3:持久化
- python网络编程—Socket
- 数学中各种矩阵收集(转至其他博主)
- 【2016年第2期】大数据背景下的治理现代化:何以可能与何以可为(下)
- 字符串处理的基本方法
- Git-根据tag创建分支
- OpenCV图像处理(2)——形态学操作
- NIST:制定Cybersecurity的框架进行时
- 力扣题目系列:121. 买卖股票的最佳时机
- IDEA连接服务器执行python程序
- 因用了NeatUpload大文件上传控件而导致Nonfile portion 4194304 bytes错误的解决方法...
- his服务器数据修改工具,某三甲医院基于HIS系统升级改造项目的实战分享
- python中复数类型虚部为零时表示为_关于 Python 的复数类型,以下选项中描述错误的是...
- Instrument API介绍
- tpshop index.php,第三讲、TPshop linux安装
- 拷机测试需要多久_软件测试培训多久能学会?这六个阶段是要有的
- Jm 18.4 MVC 报告一
- 护士计算机怎么报名,(湘潭财经)湘潭财经职业技术学校报名计算机|航空|护士护理...