网络安全实训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.mzph.cn/bicheng/3936.shtml

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

相关文章

C++之,static成员函数,友元函数以及内部类

个人主页&#xff1a;救赎小恶魔 欢迎大家来到小恶魔频道 好久不见&#xff0c;甚是想念 今天我们要深入讲述类与对象的初始化列表以及隐式类型转换 目录 引言&#xff1a; static成员函数 1. 概念 2.特性 友元 1.友元函数 2 友元类 内部类 匿名对象 引言&#xff…

杰发科技AC7840——ADC简介(1)_双路ADC同时使用

0. 简介 1. 特性 2. 双路ADC Sample里面没有双路的&#xff0c;以为那个规则组只有一个通道&#xff0c;看了外设寄存器才发现&#xff0c;原来他的通道是双路的。 注意1: ADC硬件引脚的配置 注意2: 规则组长度设置和 RSEQ序列号和CH通道号组合应该就对应了转换顺序&#xff0…

C语言Linux vim shell命令

无论是在插入模式或者是其他模式下对于文件的修改都是对于内存缓冲区进行修改&#xff0c;只有当点击w进行保存以后才会将数据写入到一个新的文件中的&#xff0c;将源文件删除&#xff0c;并且新文件改为文件的名字 1. actionmotion dG删到文件尾 ggdG先到开头再删除到末尾…

html+css+js+jquery实现在网页端将手动输入用户的信息转化成表格

1.实现的效果图 2.css代码 ​<style>*{background-color: antiquewhite;}#ss{font-size:20px;text-align: center;}#inputForm { margin-bottom: 20px; } #userTable { width: 100%; border-collapse: collapse; } #userTable th, #userTable td { border: 1px …

【uniapp/ucharts】采用 uniapp 框架的 h5 应用使用 ucharts(没有 uni_modules)

这种情况无法直接从 dcloud 平台上一键下载导入&#xff0c;所以应该在官网推荐的 git 仓库去单独下载&#xff1a; https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6/qiun-data-charts(%E9%9D%9Euni_modules) 下载的文件是如图所示的路径&…

攻防世界 easyphp

本题主要利用的知识点是php绕过 一、PHP代码分析 首先先看一下代码 我们需要利用get方式上传3个参数a,b,c&#xff0c;这3个分别需要满足不同的条件: a&#xff1a;设置a值&#xff1b;值大于6000000&#xff1b;长度不超过3&#xff1b; b&#xff1a;设置b值&#xff1b;MD…

【Qt】信号与槽

1 &#x1f351;信号和槽概述&#x1f351; 在 Qt 中&#xff0c;用户和控件的每次交互过程称为⼀个事件。⽐如 “⽤⼾点击按钮” 是⼀个事件&#xff0c;“⽤⼾关闭窗⼝” 也是⼀个事件。每个事件都会发出⼀个信号&#xff0c;例如⽤⼾点击按钮会发出 “按钮被点击” 的信号&…

websocket爬虫

人群看板需求分析 先找到策略中心具体的数据。对应数据库中的数据 看看接口是否需要被逆向 点开消费者细分&#xff0c;可以找到人群包&#xff08;人群名称&#xff09; 点击查看透视 label字段分类: 在这里插入图片描述 预测年龄&#xff1a;tagTitle 苹果id&#x…

微信小程序webview和小程序通讯

1.背景介绍 1.1需要在小程序嵌入vr页面&#xff0c;同时在vr页面添加操作按钮与小程序进行通信交互 1.2 开发工具&#xff1a;uniapp开发小程序 1.3原型图 功能&#xff1a;.点击体验官带看跳转小程序的体验官带看页面 功能&#xff1a;点击立即咨询唤起小程序弹窗打电话 2.…

RPA机器人怎么操作知乎好物推荐自动点击【添加】商品按钮?

先看需要实现的效果&#xff08;启动机器人-点击收益&#xff08;打开商品卡片列表&#xff09;-点击添加&#xff08;自动添加商品卡片到文章&#xff09;&#xff09;&#xff1a; 学员提问&#xff1a; 知乎上点击好物推荐【添加】商品按钮&#xff0c;iframe的元素是动态的…

表情识别 | 卷积神经网络(CNN)人脸表情识别(Matlab)

表情识别 | 卷积神经网络(CNN)人脸表情识别&#xff08;Matlab&#xff09; 目录 表情识别 | 卷积神经网络(CNN)人脸表情识别&#xff08;Matlab&#xff09;预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab使用卷积神经网络(CNN)&#xff0c;进行人脸表情情绪识别…

数据结构(九)---并查集

目录 1.集合 2.集合的相关操作 (1)查(Find)&#xff1a; •Find操作的优化 (2)并(Union)&#xff1a; •Union操作的优化 1.集合 数据元素之间的逻辑关系可以为集合&#xff0c;树形关系&#xff0c;线性关系&#xff0c;图关系。对于集合而言&#xff0c;一个集合可以划…

【嵌入式AI部署神经网络】STM32CubeIDE上部署神经网络之指纹识别(Pytorch)——篇一|环境搭建与模型初步部署篇

前言:本篇主要讲解搭建所需环境,以及基于pytorch框架在stm32cubeide上部署神经网络,部署神经网络到STM32单片机,本篇实现初步部署模型,没有加入训练集与验证集,将在第二篇加入。篇二详细讲解STM32CubeIDE上部署神经网络之指纹识别(Pytorch)的数据准备和模型训练过程等,…

Chrome 网络调试程序 谷歌网络调试 network

目录 1.网络面板总览2.概况了解3.Waterfall接口排队等待时间4.关注请求接口的Size,可能是占据内存溢出的接口5.过滤器一栏 fetch/xhr 什么意思6. Stalled 什么意思7.Queueing 什么意思8.Queueing和Stalled之间什么关系9.为什么会有阻塞状态10.Time列是pending 什么意思 1.网络面…

宏基因组|使用MEGAHIT组装

简介 MEGAHIT 是一款超快速且内存高效的下一代测序&#xff08;NGS&#xff09;组装工具&#xff0c;专门针对宏基因组进行了优化&#xff0c;同时在处理常规单个基因组&#xff08;小型或哺乳动物规模&#xff09;以及单细胞组装任务时也有出色表现。 主要特点与功能&#x…

node.js egg.js

Egg 是 Node.js 社区广泛使用的框架&#xff0c;简洁且扩展性强&#xff0c;按照固定约定进行开发&#xff0c;低协作成本。 在Egg.js框架中&#xff0c;ctx 是一个非常核心且常用的对象&#xff0c;全称为 Context&#xff0c;它代表了当前 HTTP 请求的上下文。ctx 对象封装了…

数据库和表创建练习

一丶要求 1.创建一个数据库db_classes 2 创建一行表db_hero 3. 将四大名著中的常见人物插入这个英雄表 二丶创建db_classes一个数据库, 使用数据库默认的字符集 create database db_classes; 三丶创建一行表db_hero 1.先切换到我们创建的db_classes;数据库中 use db_class…

怎么从回收站恢复已删除的文件?(5种恢复方法)

回收站是电脑操作系统中的一个特殊目录&#xff0c;用于存储被删除但尚未完全清除的文件和文件夹。当用户删除文件或文件夹时&#xff0c;它们并不立即从硬盘驱动器中移除&#xff0c;而是被移动到回收站。这样设计的目的是为了给用户一个“第二次机会”&#xff0c;如果他们意…

nvm的下载与安装

nvm&#xff08;Node Version Manager&#xff09;是一个用于管理 Node.js 版本的工具&#xff0c;它允许您在同一台计算机上安装和切换不同的 Node.js 版本。 一、下载地址 https://github.com/coreybutler/nvm-windows/releases 二、安装nvm 三、设置环境变量 在命令提示…

linux系统-FTP服务配置

目录 一、FTP简介 1.什么是FTP&#xff1f;&#xff1f;&#xff1f; 2.FTP的两种模式 二、安装配置FTP服务 1.关闭防火墙和核心防护 2.安装VSFTPD 3.修改配置文件 4.黑白名单设置 一、FTP简介 1.什么是FTP&#xff1f;&…