SQL注入及Pangolin(穿山甲)学习(第一次接触并了解,内容缘自百度,未实践)

2023-05-16

1.什么是SQL注入

就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句.

2.SQL注入原理

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。

3.SQL注入攻击

当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。

4.如何防护

归纳一下,主要有以下几点:

1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和

"-"进行转换等。

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。


5.Pangolin

Pangolin能够通过一系列非常简单的操作,达到最大化的攻击测试效果。它从检测注入开始到最后控制目标系统都给出了测试步骤。Pangolin是目前国内使用率最高的SQL注入测试的安全软件,可以说是网站安全测试人员的必备工具之一。




1.URL输入框

在这里输入待测试目标的URL地址,注意,该URL地址必须是携带参数的格式,例如 http://www.zlatan.com/index.jsp?id=100 这样的格式。
 
2.注入方式选择框
如果服务器端代码处理GET和POST参数的操作是一致的话(JSP编程中经常可以见到),那么通过GET和POST传递参数的效果是一样的。这时使用POST试可以避免服务端日志的产生。
如果待测参数是通过表单传递,那么您需要进行地址拼接。假设参数传递的目标地址为http://www.zlatan.com/index.jsp,参数分别为username和password,那么测试时,您需要在URL输入框中输入http://www.zlatan.com/index.jsp?username=123&password=123这样的格式,并且将注入方式设置成POST。
 
3.数据库类型选择框
顺便提及一点:SQL注入是跟数据库强相关的,而不是页面的代码语言,这一点许多文章都误导了读者。我们看到什么asp注入,php注入,jsp注入之类的概念都是不正确的。而应当说是MSSQL注入,Mysql注入或者Oracle注入等等。
在这个选择框中指明了目标Web连接的数据库类型。在扫描到注入点以后,该选择框将自动选择对应的数据库类型。
在注入前,如果我们已知了目标的数据库类型,那么我们可以先从该下拉框中选择合适的值,这样能够缩短注入扫描的时间。

4.关键字输入框
什么叫关键字呢?在自动化工具的测试过程中,如果目标针对不同的注入语句进行了错误提示的话那么程序能够知道这是一个典型的错误,然后就能够提取信息。但是如果页面返回的结果中并没有带有明确的错误提示信息的话,那么程序将无法判断哪一种情况下是正常页面哪一种情况下是错误页面。因为,测试人员需要手动的告之程序一个正常的页面或者错误的页面有什么特殊字符串能够标明,这时候您就需要在这里输入这个字符串了。

5.自动分析关键字

在其他的一些注入工具中,如果测试人员没有输入关键字的话是无法进行测试的,但是在Pangolin中我独创了自动分析关键字的功能,它能够让你在不干预的情况下自动的分析关键字从而更扫描出漏洞。






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL注入及Pangolin(穿山甲)学习(第一次接触并了解,内容缘自百度,未实践) 的相关文章

  • L6-Numpy中的随机函数

    文章目录 1 rand 2 randn 3 randint 4 random 5 choice 6 随机种子seed 本文汇总了Numpy中常见的取随机数的函数 xff0c 介绍了基本用法 1 rand 指定的输出的二维数组的型 xff0c
  • L7-Python字符串格式化小结

    文章目录 一 百分号 1 直接使用2 表达式赋值3 绑定变量名4 格式符汇总说明5 更精细化的控制 二 format控制基本语法1 绑定变量名2 绑定对象属性3 通过下标取元素来赋值4 填充与对齐5 精度与类型6 千位分隔符 本篇汇总了Py
  • L8-Flatten拍平多维数组的元素

    文章目录 案例说明1 最平凡 xff1a 数组索引访问2 最伤脑 xff1a 二次遍历 列表生成器3 最灵巧 xff1a 活用函数sum 为什么sum 还可以这样玩 xff1f 4 最省心 xff1a 一步到位 xff0c Numpy fl
  • L9-Python内部变量的作用域问题

    文章目录 写在开头一 连续等式判断二 函数内部变量作用域的变更1 对外部变量不进行运算 xff0c 直接访问2 直接对外部变量进行操作运算3 新增global声明 xff0c 再操作 写在开头 分享 记录两个有意思的案例 xff0c 平时碰
  • L10-简谈正则表达式中几个函数的使用

    文章目录 概述1 match 2 search 3 sub 4 compile 5 findall 6 finditer 7 split 8 subn 9 groups 10 贪婪模式与惰性模式注意事项 概述 正则表达式本身是一种小型的 高
  • L11-Python中的高阶函数的使用

    Python中的函数是一个对象 xff0c 既可以作为输入参数 xff0c 也可以作为返回结果 在这里聊聊几个常用的高阶函数 xff0c 来看看函数是如何被作为输入参数 返回结果来使用的 1 map 映射函数 语法 xff1a map fu
  • L12-聊聊Python的装饰器

    文章目录 1 基本介绍2 理解函数2 1 函数也是对象2 2 嵌套函数2 3 返回结果为函数2 4 函数作为输入参数 3 创建装饰器4 带参数的装饰器5 装饰器的应用 监控日志 1 基本介绍 定义 在函数调用前后自动打印日志 xff0c 称
  • L13-理解Python中的特殊的返回值-函数

    文章目录 说明1 初识返回值 函数2 辨识函数对象3 闭包的注意事项谨记如何避免 xff1f 说明 在Python中 xff0c 一切函数即对象 函数同时也可视作变量 xff0c 作为一个返回值 下面通过实际案例来说明下 xff0c 当函数
  • c语言将两个递增的顺序表合并为一个递减的顺序表

    eg xff1a 顺序表A xff1a 1 3 5 7 顺序表B xff1a 2 4 6 8 合并后的表C xff1a 8 7 6 5 4 3 2 1 思路 xff1a 从后往前遍历顺序表A和B xff0c 如果当前A表的数大于等于B表的数
  • L15-Python cookbook 数据结构与算法练习题

    文章目录 1 解压赋值给多个变量2 解压可迭代对象赋值给多个变量3 查找集合中最大 最小的N个元素 heap4 处理字典中的多值映射的两种方式 defaultdict 5 排序字典的键值对元素 OreredDict6 查找字典的相同点7 命
  • 理解递归,从递归的本质说起

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net allenchenhh133 arti
  • 靠写作能挣100万吗

    不要被标题吓到 xff0c 今天说的就是关于写作 Fenng大说 xff0c 同等能力的人绝对要文字写得好的 帅张说编程 英语 写作是程序员的3大底层能力 写作能给我带来什么 xff1f 王朔曾说 xff0c 写作是一条狗 xff0c 只要
  • “老赖”罗永浩被群嘲:莫欺少年穷,莫笑中年败,莫嘲梦想狂

    原文链接 xff1a https mp weixin qq com s x0fIynaA2hPi7blUoeYGxA 作者 l 粥左罗 来源 l 粥左罗的好奇心 xff08 ID xff1a fangdushe007 xff09 转载请联系
  • L16-分析数据库中的左连接

    许久以来 xff0c 在写表的左联接条件的时候 xff0c 似乎已彻底习惯了在右表上设置联接条件 今天意外发现居然也可以在左表上设置 xff0c 而且顺势借用到了需求实践中 重新翻看下官方文档的说明 xff0c 暂且也算温故而知新了 联接类
  • 高知的程序员必须甩脱穷人思维

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net mogoweb article det
  • L19-将多表分批次从数据库导出到Excel

    文章目录 1 应用场景2 功能事项3 主要实现概览主要方法 4 使用示例5 总结 1 应用场景 最近经常需要手工从后台数据库导出某些数据表到Excel文件 xff0c 而且源数据表的数据量大小不一 xff0c 导致在导出到本地文件这个过程中
  • L18-利用Pandas清洗与可视化时序数据

    获取时序数据并进行数据清洗与可视化分析 文章目录 获取时序数据并进行数据清洗与可视化分析1 准备工作2 加载数据3 数据处理 转化与合并4 可视化展现5 小结 1 准备工作 tushare是一个第三方财经数据接口包 xff0c 需要安装包并
  • L17-利用Pandas解析日志数据

    利用Pandas 分析日志数据 文章目录 利用Pandas 分析日志数据1 简介2 获取数据3 数据解析4 简单可视化5 小结 1 简介 app程序在日常运行中会生成多种非结构化的日志数据 xff0c 由于可读性差通常仅仅用于排错 若能将数
  • SQL Server 缓存清除与内存释放

    Sql Server系统内存管理在没有配置内存最大值 xff0c 很多时候我们会发现运行SqlServer的系统内存往往居高不下 这是由于他对于内存使用的策略是有多少闲置的内存就占用多少 xff0c 直到内存使用虑达到系统峰值时 xff08
  • 1178C C. Tiles

    C Tiles time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Bob is

随机推荐

  • L27-计算连续N天的人流量

    文章目录 写在前面1 题目2 谈谈方法3 关键词4 样例分析4 注意项 写在前面 碰到LeetCode上的一个有意思的数据库题 xff0c 看了很多解法 xff0c 但都过于复杂 经过思索后 xff0c 另辟溪径 xff0c 分享一个崭新的
  • T-SQL查询:CTE - with as 子句的特殊应用

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net kk185800961 article
  • SQL Server 缓存清除与内存释放

    Sql Server系统内存管理在没有配置内存最大值 xff0c 很多时候我们会发现运行SqlServer的系统内存往往居高不下 这是由于他对于内存使用的策略是有多少闲置的内存就占用多少 xff0c 直到内存使用虑达到系统峰值时 xff08
  • 彻底理解递归,从递归的本质说起!

    版权声明 xff1a 本文为博主原创文章 xff0c 遵循 CC 4 0 BY SA 版权协议 xff0c 转载请附上原文出处链接和本声明 本文链接 xff1a https blog csdn net allenchenhh133 arti
  • 程序员是不是青春饭

    本文转载 原创作者 志军100 Python之禅 有人问到程序员是不是吃 34 青春饭 34 xff0c 回答是肯定的 xff0c 没有哪个行业可以像互联网一样 xff0c 不需要背景 不需要关系 xff0c 只需要才华就有舞台 看看国内国
  • PCA 原理:为什么用协方差矩阵

    PCA的理论知识以及与K L变换的关系 PCA是主成分分析 Principal Components Analysis 的简称 这是一种数据降维技术 xff0c 用于数据预处理 一般我们获取的原始数据维度都很高 xff0c 那么我们可以运用
  • 编程语言思考系列:为什么会有这么多的编程语言?

    一 为什么会有这么多的编程语言 xff1f 不同的cpu有着不同的指令集 xff0c 这些指令集都是二进制的0和1 xff1b 后来有了汇编语言 xff0c 可以认为是二进制指令的助记符表示 xff1b 再后来有了高级编程语言 xff0c
  • 搞懂ASCII,Unicode字符集和UTF-8编码

    熟悉html等知识的都知道 xff0c html中有一个重要的字段叫 content type xff0c 一般中文网站都是设置为 utf 8 编码 xff0c 可能你还知道之所以设置为utf 8是为了正常的显示中文 xff0c 但为什么u
  • 通俗理解 - 梯度下降

    本文将从一个下山的场景开始 xff0c 先提出梯度下降算法的基本思想 xff0c 进而从数学上解释梯度下降算法的原理 xff0c 最后实现一个简单的梯度下降算法的实例 xff01 梯度下降的场景假设 梯度下降法的基本思想可以类比为一个下山的
  • Python使用requests提交HTTP表单

    立志做国内自动化 AI测试领域最好的原创公众号 欢迎微信关注公号 34 测试不将就 34 ID awesometest xff0c 更多原创文章在路上 我们的口号是 xff1a 插上自动化 AI的翅膀 xff0c 软件测试也能高大上 Pyt
  • Python---元组---字典---集合

    4 3 元组 4 3 1 概念 xff1a 在大型的商业网站或游戏设计中 xff0c 列表是一种非常重要的数据类型 xff0c 因为其记录了各种等级客 户 游戏角色 xff0c 列表数据可以随时变动更新 xff0c python还提供另一组
  • C#实现远程桌面自动登录

    问题 xff1a A电脑登录B电脑 1 xff0c 设置B电脑允许远程登录 2 xff0c 用A手动通过 远程登录软件 登录B 生成Default rdp文件 3 C 编程实现自动登录 具体操作 1 设置B电脑允许远程登录 http jin
  • Shell基础——位置参数

    位置参数是用一位或多位数字 除了0 表示的参数 xff0c 位置参数N可以引用为 N xff0c 或者当N由单个数字组成时 xff0c 引用为 N 位置参数是在调用shell时从shell参数中分配的 span class token fu
  • 1.基于Microsoft.Owin.Security.OAuth实现OAuth 2.0所有应用场景,可集成单点登录功能

    学习目标 xff1a 提示 xff1a OAuth2 0是目前使用非常广泛的授权机制 xff0c 用于授权第三方应用获取用户的数据 例如 xff1a 用户可以通过选择其他登录方式来使用gitee xff0c 这里就使用到了第三方认证 来自R
  • arm架构版本下误删apt,apt-get的解决方案(例如tx2)

    最近装东西装不上 xff0c 误打误撞装了aptitute xff0c 结果装的时候把apt get给卸载了 然后用aptitute装 xff0c 发现也没解决问题 然后顺手就把aptitute也给删了 顺手删完了 xff0c 发现这下糟了
  • Python图片修复项目 —— Bringing-Old-Photos-Back-to-Life

    目录 一 项目地址 二 下载预训练模型 2 1 下载步骤 三 下载Python包 四 图片修复 4 1 裂痕修复 4 2 模糊图片高清化 一 项目地址 https github com microsoft Bringing Old Phot
  • (自定义)二维数组的转置-C语言

    自定义 二维数组的转置 解题思路 xff1a 1 首先要输入一个33的二维数组 xff0c 用for的双层循环来实现 xff1b 2 数组转置的特点 xff1a 由分析可知 xff0c 数组转置的实际表现为数组的下标进行交换即可 xff0c
  • 【已解决】win下cmd命令行conda activate 不能使用

    运行命令conda activate报错如下 xff1a CommandNotFoundError Your shell has not been properly configured to use 39 conda activate 3
  • Linux将某个文件夹下的所有内容复制到另一个文件夹里

    1 将一个文件夹下的所有内容复制到另一个文件夹下 cp r home packageA home cp packageB 或 cp r home packageA home cp packageB 这两种方法效果是一样的 方法示例 xff1
  • SQL注入及Pangolin(穿山甲)学习(第一次接触并了解,内容缘自百度,未实践)

    1 什么是SQL注入 就是通过把 SQL命令插入到 Web 表单提交或输入域名或页面请求的查询字符串 xff0c 最终达到欺骗服务器执行恶意的 SQL 命令 具体来说 xff0c 它是利用现有应用程序 xff0c 将 xff08 恶意 xf