首页 > 数据库 >sql漏洞

sql漏洞

时间:2024-06-06 13:34:43浏览次数:18  
标签:语句 查询 漏洞 过滤 sql 绕过 注入

sql注入原理:Web 应用程序对用户输入的数据合法性没有过滤或者是判断,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

注入类型:按照注入点类型:数字型,字符型
按照提交方式:GET注入,COOKIE注入,POST注入
二次注入的原理:攻击者构造恶意的数据并存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。
堆叠注入原理:利用在一条查询语句结束之后,在语句末尾加入分号之后再插入恶意的SQL语句,就可以达到攻击者的意图。
sql注入防御:1.对查询的关键字select,union等字符进行过滤
2.最小权限特权,用户应该被授最小必须特权,不能够访问整个数据库
3.使用预编译语句,更安全执行数据库查询
4.使用参数化查询,将用户输入视为参数的值,而不是sql命令的一部分
5.使用ORM工具,这些工具内置了防止SQL注入的机制

盲注(时间盲注,布尔盲注)常用函数:length(判断字符串的长度),if(判断的条件,正确执行,错误执行),ascii(将字符转化为ascii码),substr(字符串,起始位置,终止位置),limit(从这个开始,取几个)

Sql常见函数:database():当前数据库名;concat():拼接字符串;
group_concat()将()中的内容以逗号显示出来
逻辑运算符被过滤:双写逻辑运算符或使用||和&&替换
空格被过滤:使用()绕过或%a0(空格)或%0B(TAB健)绕过,%0a(新建一行)绕过,%0d(return功能)
注释被过滤:可以使用引号闭合绕过。
关键字被过滤,可以使用混合大小写绕过(SELEct、UNIon),可以用重写绕过

标签:语句,查询,漏洞,过滤,sql,绕过,注入
From: https://www.cnblogs.com/wwwangpen/p/18234970

相关文章

  • mysql数据备份和还原知识点
    MySQL数据备份和还原是数据库管理的关键操作,确保数据的安全性和可恢复性。以下是关于MySQL备份和还原的一些关键知识点:1、数据备份    1.1、mysqldump工具:                mysqldump是MySQL提供的一个命令行实用程序,用于创建数据库或表的结构以......
  • 「漏洞复现」Apache OFBiz 路径遍历漏洞(CVE-2024-36104)
    0x01 免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需......
  • Mysql基础教程(14):UNION
    MySQLUNION的用法与实例在本文中,我们讨论在MySQL中对两个结果集进行UNION运算,以及UNION运算的规则。在MySQL中,UNION操作符是一个集合操作符,它用于合并【2个结果集】中的所有的行。SQL标准中定义了3个集合操作符:UNION,INTERSECT和MINUS。目前MySQL......
  • 如何识别 SQL 中的重复值
    我正试图查找特定数据集中生成的重复数据我最初的查询是SELECTb.admidate,a.token_person_id、COUNT(DISTINCT(a.token_person_id))ASpatientCountFROMnew_alzheimers_agegroup2aLEFTJOIN住院病人映射bONb.token_person_id=a.token_perso......
  • Python - Django - MySQL #need to add distinct() after select_related().distinct(
    所以这是ads/views.py还有ads/models.py、ads/forms、ads/urls.py和其他文件,但评分器抱怨的是这个views.py...检索到3806个HTML字符测试已完成:在页面顶部发现菜单栏搜索"HHGTTG_421717639962"时发现多个广告。您可能需要在views.py中的select_related().di......
  • clickhouse 同步mysql数据
    1、mysql端1.1、配置mysql启动二进制复制vim/etc/my.conf在[mysqld]下添加[mysqld]server-id=1log-bin=mysql-binbinlog_format=ROWgtid_mode=ONenforce_gtid_consistency=ONdefault_authentication_plugin=mysql_native_password 修改配置需要重启mysql服务 ......
  • 003基于SSM+Jsp+Mysql的美好生活日志网
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示前台首页用户注册用户登录日记信息管理员登录用户管理日记信息管理美食信息管理景点信息管......
  • MySQL查询数据库响应时长的方法
    要查询MySQL数据库的响应时长,通常我们需要测量查询执行的时间。MySQL本身并不直接提供一个查询来显示每个查询的响应时长历史记录,但我们可以使用MySQL的内置函数和工具来测量和记录查询的执行时间。以下是一些方法,我们可以用来测量MySQL查询的响应时长:1.使用SHOWPROFILES(......
  • MySQL Shell 的简单使用
    util.dumpTables():导出表util.dumpSchemas():导出单个或多个schemautil.dumpInstance():导出整个实例 util.dumpTables()的使用语法:util.dumpTables(schema,tables,outputUrl[,options])其中:·schema:是表所在的schema·tables:是一个数组,表示要导出的表的列表·outp......
  • MySQL清空所有表的数据的方法
    1.MySQL清空所有表的数据的方法要清空MySQL数据库中所有表的数据,但保留表结构,我们可以采取以下几种方法。这里,我将提供几种常用的方法,并给出相应的SQL代码示例。1.1方法一:使用TRUNCATETABLE命令(针对每个表)TRUNCATETABLE命令会删除表中的所有数据,但不会重置表的自增计数器(AUTO......