网络安全实训Day17and18

news2025/3/12 8:37:49

写在前面

第17和18天都讲的sql注入,故合并

​​​​​​

网络空间安全实训-渗透测试

  • Web渗透

    • 定义

      • 针对Web站点的渗透攻击,以获取网站控制权限为目的

    • Web渗透的特点

      • Web技术学习门槛低,更容易实现

      • Web的普及性决定了Web渗透更容易找到目标

      • 网站程序开发者的技术参差不齐,更容易找到存在漏洞的网站

      • HTTP协议天然的安全缺陷,导致容易受到攻击

      • Web的身份识别技术存在天然的安全缺陷

      • 通过入侵网站可以获得丰富的经济利益

    • OWASP TOP 10

      • SQL注入攻击

      • XSS攻击

      • CSRF攻击

      • Web暴力破解

      • 文件包含攻击

      • 命令注入攻击

      • Webshell文件上传攻击

  • SQL注入攻击

    • 数据库基础

      • 定义

        • 数据库

          • 存储数据的仓库,包含了若干张数据表

        • 数据表

          • 存储和记录数据的容器单位

          • 描述一条数据

          • 数据的某一个属性,又称字段

      • 常见的数据库管理软件

        • MySQL

          • 搭配PHP网站使用

        • Oracle

          • 搭配Java应用使用

        • SQL Server

          • .NET开发的应用程序搭配使用

        • MariaDB

      • SQL

        • 结构化查询语言,用于操纵数据库的语言

    • SQL注入定义

      • 用户将自行构造的SQL查询代码插入或提交到系统执行的查询语言中,从而干扰和或影响到正常查询效果的攻击手段

    • SQL注入类型

      • 普通SQL注入

        • 手工注入

          • 1.寻找存在SQL注入漏洞的页面

            • 可以向系统后台提交信息的页面

            • 寻找URL中以?的方式向服务器传递信息的页面

          • 2.测试该页面是否存在SQL注入漏洞

            • 在URL传递的参数后加上单引号

              • 返回页面报错,则说明存在SQL注入漏洞

              • 不报错,则说明网站有防御措施

          • 3.验证漏洞是数字型还是字符型

            • 在URL后分别加上1 and 1=1 和 1 and 1 =2

              • 1 and 1=1 有结果返回,1 and 1 =2 无结果返回,则说明漏洞是数字型

            • 在URL后分别加上1' and 1=1# 和 1' and 1=2#

              • 1'and 1=1# 有结果返回, 1' and 1=2#无结果返回则说明漏洞是字符型

          • 4.验证该页面查询的内容共有几个字段

            • 在URL后加上order by 5

              • 有结果返回则说明该页面查询出的字段不小于5个,继续增加猜测的数字,直到页面报错为止.报错数字的上一个数字就是字段总数

          • 5.当前页面中显示了哪几个字段

            • 在URL后加上 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

              • 当前页面中显示的数字就说明哪几个字段是被输出的

          • 6.查询当前网站数据库的名称

            • 在上一步的URL中,把有出场的数字替换成database()

          • 7.查询当前数据库中所有的表名

            • 在上一步的URL中,把有出场的数字替换成group_concat(table_name) ,在URL的最后加上 from information_schema.tables where table_schema = '当前数据库名'

          • 8.查询表中字段名

            • 在上一步的URL中,把有出场的数字替换成group_concat(column_name) ,在URL的最后加上 from information_schema.columns where table_name = '表名'

          • 9.查询表中相应字段

            • 子主题 1

              • 在上一步的URL中,把有出场的数字替换成要查询的字段名 ,在URL的最后加上 from 表名

          • 10.查询出的内容有md5加密,使用md5密文查询工具进行查询

        • SQLmap

          • 1. sqlmap -u '存在漏洞的页面URL' --dbs

            • 查询所有数据库名

          • 2. sqlmap -u '存在漏洞的页面URL' -D 数据库名 --tables

            • 查询某个数据库下的所有表名

          • 3. sqlmap -u '存在漏洞的页面URL' -D 数据库名 -T表名 --columns

            • 查询表中的所有列名

          • 4. sqlmap -u '存在漏洞的页面URL' -D 数据库名 -T表名 -C字段名 --dump

            • 查询表中对应字段的内容

      • 盲注

        • 手工盲注

          • 1.寻找存在SQL注入漏洞的页面

            • 可以向系统后台提交信息的页面

            • 寻找URL中以?的方式向服务器传递信息的页面

          • 2.测试该页面是否存在SQL注入漏洞

            • 在URL传递的参数后加上单引号

              • 返回页面报错,则说明存在SQL注入漏洞

              • 不报错,则说明网站有防御措施

          • 3.猜解数据库名的长度

            • 在URL后加上'and length(database())=1',如果返回结果为假,说明数据库名的长度不止一位;继续增加猜解的数字,知道返回结果为真为止,此时的数字就是数据库名的长度

          • 4.猜借数据库名的第一个字符

            • 在URL后分别加上'and ascii(substr(database(),1,1))>97#,和 'and ascii(substr(database(),1,1))<122#,如果返回结果都为真,则说明第一个字符是小写字母

            • 继续增加数字,直到返回结果为假,说明猜借的数字asccii码对应的字母就是数据库名的第一个字符

          • 5.按照上一步的方法继续猜解数据库名的剩余字符

          • 6.猜解数据库中包含的数据表的数量

            • 在URL后加上'and (select count (table_name) from information_schema.tables where table where table_schema='dvwa' ) =1#

            • 若返回结果为假,则继续增大数字;若为真,则猜解正确

          • 7.在URL后加上'and length((select table_name form information_schema.tables where table_schema=database() limit0,1))=1# 若返回结果为missing,则继续增大数字直到返回exist,此时就是该表名的长度

          • 8.按照猜借数据库名同样的方法猜解表名的每个字符内容

          • 9.按照上述方法猜解表中字段名

          • 10.按照上述方法猜解数据表中的数据内容

      • 常见的SQL注入防范方法

        • 1.对用户输入和提交的内容进行安全检查和过滤

          • 单引号\双引号

          • 括号

          • and、or、union、order by

        • 2.在PHP中使用PDO技术

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

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

相关文章

JavaEE 初阶篇-深入了解 I/O 高级流(缓冲流、交换流、数据流和序列化流)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 缓冲流概述 1.1 缓冲流的工作原理 1.2 使用缓冲流的步骤 1.3 字节缓冲流于字符缓冲流的区别 1.4 字节缓冲流的实例 1.5 字符缓冲流的实例 2.0 转换流概述 2.1 字符…

MySQL函数之单行函数

1.前言 我们在使用 SQL 语言的时候&#xff0c;不是直接和这门语言打交道&#xff0c;而是通过它使用不同的数据库软件&#xff0c;即DBMS。DBMS 之间的差异性很大&#xff0c;远大于同一个语言不同版本之间的差异。实际上&#xff0c;只有很少的函数是被 DBMS 同时支持的。比…

MySQL基础知识——MySQL索引

深入浅出索引 索引的意义 索引的意义&#xff1a;在大量数据中&#xff0c;加速访问少量特定数据&#xff1b; 使用索引的前提条件&#xff1a; 1&#xff09;索引块数量小于数据块数量&#xff1b; 2&#xff09;索引键有序&#xff0c;故可以使用二分查找等高效的查找方式&…

go语言并发实战——日志收集系统(十) 重构tailfile模块实现同时监控多个日志文件

前言 在上一篇文章中&#xff0c;我们实现了通过etcd来同时指定多个不同的有关分区与日志文件的路径&#xff0c;但是锁着一次读取配置的增多&#xff0c;不可避免的出现了一个问题&#xff1a;我们如何来监控多个日志文件&#xff0c;这样原来的tailFile模块相对于当下场景就…

前端到全栈进阶之“前端框架”

从前端入门到全栈-系列介绍 你会学到什么&#xff1f; 可能学不到什么东西&#xff0c;该系列是作者本人工作和学习积累&#xff0c;用于复习 系列介绍 现在的 Web 前端已经离不开 Node.js&#xff0c;我们广泛使用的 Babel、Webpack、工程化都是基于 Node 的&#xff0c;各…

【Linux】驱动_2_字符驱动

1. Linux设备分类 字符设备: 指应用程序按字节/字符来读写数据的设备。通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务&#xff0c;通常不支持随机存取数据。字符设备在实现时大多不使用缓存器。系统直接从设备读/写每一个字符。块设备: 通常支持随机存取…

【程序分享1】LAMMPS + OVITO + 晶体缺陷识别 + 点缺陷 + 分子动力学模拟

分享2个分子动力学模拟相关的程序。 1. 一种识别体心立方晶体缺陷的新方法。 2. 无后处理的分子动力学模拟中的并行点缺陷识别: lammps的计算和转储方式 。 感谢论文的原作者&#xff01; 第1个程序 关键词&#xff1a; 1. Atomistic simulations, 2. Molecular dynamics…

让客服工作开挂的8个客服办公高效率神器

做客服工作&#xff0c;经常需要写文案&#xff0c;做图片做视频&#xff0c;还要能快捷回复客户&#xff0c;都需要有靠谱的客服办公软件支持&#xff0c;本文介绍了8个高效神器&#xff0c;希望能帮到做客服的亲 前言 做客服工作&#xff0c;在回答客户咨询的同时&#xff0…

2024.4.28 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、创新点 4、总体流程 5、网络结构 5.1、损失函数 5.2、Confidence Maps 5.3、Part Affinity Fields(PAFs) 5.4、多人的PAFs 6、实验 7、结论 深度学习 yolov8实现目标检测和人体姿态估计 Yolov8网络结构 yaml…

【亲测可用】配置镜像源

文章目录 配置镜像源1. 手动添加镜像源2. 永久配置&#xff08;推荐&#xff09;方法1&#xff1a;方法2 &#xff1a; 小结 配置镜像源 配置镜像源会让资源下载的更快一些 我实验了一下&#xff0c;都成功了的方法&#xff0c;推荐给你们 1.手动添加 2.永久配置 前提是你的…

好看到爆炸的弹窗公告源码

源码介绍 好看到爆炸的弹窗公告源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c; 源码截图 源码下载 好看到爆炸的弹窗公告源码

新标准日本语初下 课后练习作业

新版标准日本语初下 第二十五課 これは明日会議で使う資料です 第二十五課 これは明日会議で使う資料です &#xff12;&#xff14;&#xff0d;&#xff10;&#xff14;&#xff0d;&#xff12;&#xff16; 練習&#xff12;&#xff15;&#xff0d;1&#xff0d;1 例…

Vuforia AR篇(四)— AR虚拟按钮

目录 前言一、创建虚拟按钮二、创建脚本三、效果 前言 在当今互联网和移动设备普及的背景下&#xff0c;**增强现实&#xff08;AR&#xff09;**技术正迅速成为连接现实世界与数字信息的重要桥梁。AR虚拟按钮作为这一技术的创新应用&#xff0c;不仅提供了一种全新的用户交互…

[极客大挑战 2019]Upload、[ACTF2020 新生赛]Upload、[MRCTF2020]你传你呢

[极客大挑战 2019]Upload 打开环境&#xff0c;是上传一句话木马的题 先上传1.php试试&#xff0c;发现不可以 试试改后缀为phtml&#xff0c;提示语句中不能包含<?&#xff0c;只能改木马&#xff1a; <script language"php">eval($_POST[line]);</sc…

ListView、RecycleView、动画、单位、ViewPager

ListView列表 老版本 public View oldGetView(int position, View convertView, ViewGroup parent) {//返回每一个item//拿到布局if (convertViewnull)convertView LayoutInflater.from(context).inflate(R.layout.my_list_view, parent, false);//find会耗时需要优化TextVi…

YOLOv8核心原理深度解析

YOLOv8源码地址: https://github.com/ultralytics/ultralytics 一、简介: 根据官方描述,Yolov8是一个SOTA模型,它建立在Yolo系列历史版本的基础上,并引入了新的功能和改进点,以进一步提升性能和灵活性,使其成为实现目标检测、图像分割、姿态估计等任务的最佳选择。其具体…

Rancher-Longhorn-新增磁盘以及卷创建原理和卷副本调度规则

一、添加磁盘-官网指引 重点在于&#xff1a; 1、比如你新增了一块盘&#xff0c;你需要做一下事情&#xff1a; 1、执行 lsblk 能找到你的盘。 2、然后执行 fdisk /dev/sdxx 分区你的盘。 3、然后对于分区部署文件系统&#xff0c; mkfs.xfs 4、然后执行 mount /dev/sdxxx 你…

项目管理中常用的三个工具:甘特图、看板、燃尽图

在日常项目管理的实践中&#xff0c;为了更有效地追踪项目进度、优化资源配置和提高团队协作效率&#xff0c;管理者常常会借助一些工具来辅助工作。这些工具的本质在于将抽象复杂的项目管理任务具象化、简单化&#xff0c;以更直观、方便的方式呈现出来。 以下介绍项目管理中…

Git--基础学习--面向企业--持续更新

一、基础学习 1.1基本命令 //查询基础信息 git config --global --list //选取合适位置创建 mkdir 文件名 //创建文件夹 //全局配置 git config --global user.email "****e***i" git config --global user.name "*** K****"//--------------------进入…

Linux系统编程---线程同步

一、同步概念 同步即协同步调&#xff0c;按预定的先后次序运行。 协同步调&#xff0c;对公共区域数据【按序】访问&#xff0c;防止数据混乱&#xff0c;产生与时间有关的错误。 数据混乱的原因&#xff1a; 资源共享(独享资源则不会)调度随机(意味着数据访问会出现竞争)线…