网络安全实训Day17and18

写在前面

第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.mfbz.cn/a/576225.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python项目练习-1

获取无忧书城的小说内容&#xff01; import requests # 导入请求包 from lxml import etree # 导入处理xml数据包url https://www.51shucheng.net/wangluo/douluodalu/21750.html book_num 1 # 文章页数 download_urls [] # 定义一个空列表&#xff0c;表示我们下载过小…

提升你的C编程技能:使用cURL下载Kwai视频

概述 本文将介绍如何利用C语言以及cURL库来实现Kwai视频的下载。cURL作为一个功能强大的网络传输工具&#xff0c;能够在C语言环境下轻松地实现数据的传输。我们还将探讨如何运用代理IP技术&#xff0c;提升爬虫的匿名性和效率&#xff0c;以适应Kwai视频平台的发展趋势。 正…

《欢乐钓鱼大师》攻略,钓友入坑必备!

欢迎来到《欢乐钓鱼大师》&#xff01;在这个游戏里&#xff0c;你可以尽情享受垂钓的乐趣&#xff0c;通过不断更换和升级高阶鱼竿&#xff0c;轻松地钓到各种稀有鱼类。因为许多玩家在挑战关卡时遇到了一些困难&#xff0c;所以今天我给大家带来了《欢乐钓鱼大师攻略指南》&a…

自动化机器学习流水线:基于Spring Boot与AI机器学习技术的融合探索

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

【毕设绝技】基于 SpringCloud 的在线交易平台商城的设计与实现-数据库设计(三)

毕业设计是每个大学生的困扰&#xff0c;让毕设绝技带你走出低谷迎来希望&#xff01; 基于 SpringCloud 的在线交易平台商城的设计与实现 一、数据库设计原则 在系统中&#xff0c;数据库用来保存数据。数据库设计是整个系统的根基和起点&#xff0c;也是系统开发的重要环节…

静态链接lib库使用

lib库实际上分为两种&#xff0c;一种是静态链接lib库或者叫做静态lib库&#xff0c;另一种叫做动态链接库dll库的lib导入库或称为lib导入库。这两个库是不一样的&#xff0c;很多人都分不清楚&#xff0c;很容易混淆。 第一种是静态lib&#xff0c;包含了所有的代码实现的&am…

颠覆传统:机器人与AI大模型的结合,开启智能自动化的黄金时代!

引言&#xff1a;机器人技术与大模型的结合趋势 随着科技的迅速发展&#xff0c;机器人技术与大模型的结合已经成为必然趋势。这种结合不仅仅是技术的简单叠加&#xff0c;而是一种深层次的互补与融合&#xff0c;为机器人技术的应用开辟了新的可能性。大模型&#xff0c;能够…

02_c/c++开源库ZeroMQ

1.安装 C库 libzmq sudo apt install libzmq3-dev 实例: https://zeromq.org/get-started/?languagec&librarylibzmq# 编译依赖: pkg-config --cflags --libs libzmq or cat /usr/lib/x86_64-linux-gnu/pkgconfig/libzmq.pc -isystem /usr/include/mit-krb5 -I/usr/in…

[Android]引导页

使用Kotlin Jetpack Compose创建一个左右滑动的引导页, 效果如图. 1.添加依赖项 androidx.compose.ui最新版本查询:https://maven.google.com/web/index.html com.google.accompanist:accompanist-pager最新版本查询:https://central.sonatype.com/ 确保在 build.gradle (M…

无人机+集群组网:机载自组网电台技术详解

无人机与集群组网的结合为现代通信带来了独特的优势。在集群组网中&#xff0c;每个节点&#xff08;例如无人机&#xff09;都兼具路由器和主机的功能&#xff0c;它们不仅可以运行各种面向用户的应用程序&#xff0c;还可以执行路由协议&#xff0c;根据路由策略和路由表完成…

基于SpringBoot + Vue实现的校园(通知、投票)管理系统设计与实现+毕业论文(12000字)+答辩PPT+指导搭建视频

目录 项目介绍 运行环境 技术栈 效果展示 论文展示 总结 项目介绍 本系统包含管理员、用户、院校管理员三个角色。 管理员角色&#xff1a;用户管理、院校管理、单位类别管理、院校管理员管理、单位管理、通知推送管理、投票信息管理、通知回复管理等。 用户角色&#…

2款README.md生成器

&#x1f3f7;️ readme-md-generator 确保你已经安装了npx (npx从npm 5.2.0开始默认安装) 执行命令 只需在项目的根目录下运行以下命令并回答问题: npx readme-md-generator 在项目根目录执行上面bash命令&#xff0c;结果&#xff1a; # npx readme-md-generator D:\vinc…

上新啦!讯飞首个支持长文本、长图文、长语音的大模型发布

IDC预测&#xff0c;全球数据信息产生和复制量将在2025年达到175ZB&#xff08;1ZB相当于1万亿GB&#xff09;。假设每个人的大脑功能记忆容量约为1.25TB&#xff0c;那么需要超过280亿个人脑来处理这些信息&#xff0c;相当于全球人口的4倍。 4月26日&#xff0c;讯飞星火V3.…

安卓NetworkStatsManager使用及demo

目录 一、TrafficStats类简介二、demo示例 一、TrafficStats类简介 TrafficStats Android API 8提供了android.net.TrafficStats类。 通过此类能获取设备重启以来网络信息&#xff0c;部分函数如下所示&#xff1a; static long getMobileRxBytes() //获取通过移动数据网络…

[C++]STL---unordered_set与unordered_map的模拟实现

目录 前言 哈希桶的改造 哈希桶的初步改造 迭代器的模拟实现 operator() 类互相typedef时的前置声明 友元声明 迭代器的出口 插入Insert() 查找Find(&#xff09; 哈希表的最终改造 unordered_set的模拟实现 unordered_map的模拟实现 前言 unordered_set与set的区…

嵌入式系统中的实时操作系统(RTOS)深入应用与优化

引言 实时操作系统&#xff08;RTOS&#xff09;在嵌入式系统中扮演着至关重要的角色&#xff0c;特别是在需要快速响应和高度可靠性的应用中。 我将探讨如何在STM32单片机上实现RTOS&#xff0c;包括任务管理、内存管理以及中断处理&#xff0c;以提高系统的效率和响应速度。…

C++:const成员和取地址操作符

目录 一、const成员 二、取地址及const取地址操作符重载 一、const成员 将const修饰的“成员函数”称之为const成员函数&#xff0c;const修饰类成员函数&#xff0c;实际修饰该成员函数 隐含的this指针&#xff0c;表明在该成员函数中不能对类的任何成员进行修改。 注&…

JavaScript+B/S架构云LIS系统源码C# 6.0+MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示

JavaScriptB/S架构云LIS系统源码MVCSQLSugar医院版检验科云LIS系统源码 可提供演示随着医疗技术的不断发展&#xff0c;医疗机构对于信息化、智能化的需求也越来越高。特别是对于检验科这样的核心科室&#xff0c;如何提高工作效率、降低误差率、提高数据安全性成为了亟待解决的…

2024年【安全生产监管人员】考试技巧及安全生产监管人员模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【安全生产监管人员】考试技巧及安全生产监管人员模拟考试&#xff0c;包含安全生产监管人员考试技巧答案和解析及安全生产监管人员模拟考试练习。安全生产模拟考试一点通结合国家安全生产监管人员考试最新大纲…

Type-C接口取电IC6500:优势与应用场景的深度解析

Type-C接口PD芯片取电IC的优势 随着科技的不断进步和移动设备在日常生活中的广泛应用&#xff0c;充电技术的革新变得愈发重要。Type-C接口PD芯片取电IC作为现代充电技术的关键组件&#xff0c;其优势日益凸显&#xff0c;为移动设备充电带来了革命性的改变。本文将深入探讨Ty…
最新文章