首页 > 数据库 >sql注入

sql注入

时间:2023-02-28 12:45:18浏览次数:40  
标签:原值 sql 测试 SQL select 注入

sql注入测试规范

注入漏洞,只要证明可以读取数据就行,严禁读取表内数据。对于UPDATE、DELETE、 INSERT 等注入类型,不允许使用自动化工具进行测试。

SRC行业安全测试规范 https://security.tencent.com/announcement/msg/180

sql注入原理

SQL注入(英语:SQL injection),也称SQL注入或SQL注码,是发生于应用程序与 数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良 的程序当中 忽略了字符检查,那么这些注入进去的恶意指令就会被数据库服务器误认 为是正常的SQL指令而执行,因此遭到破坏或是入侵。

普通测试: 整型:id=111-0与id=111-1

字符型: username=zhangsan' and 1=1# 与username=zhangsan' and 1=1#

搜索型:word=a%' and 1=1# 与 word=a%' and 1=2#

万能密码: 用户名填写 'or 1=1# 密码随意填

image-20230228122819418

非常见位置测试:
order by [注入点]: 常见参数(orderby) //预编译对该位置sql注入无效
原值,if((1=1),1,(select 1 union select 2))
原值,if((1=2),1,(select 1 union select 2))
order by 列名 [注入点]: 常见默认值(desc、asc) //预编译对该位置sql注入无效
,if((1=1),1,(select 1 union select 2))
,if((1=2),1,(select 1 union select 2))


非常见位置测试:
in (注入点): 常见参数(ids或值中包含,的其他参数)
原值) and 1=1# 字符型:原值') and 1=1#
原值) and 1=2# 字符型:原值') and 1=2


base64参数的测试:
优势:绝大部分扫描器不会识别
参数经过base64转换后可以绕过waf
示例: http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D
利用:python sqlmap.py -u
"http://192.168.31.103/sql_base64.php?test_param=bGlsaQ%3D%3D" -p test_param --tamper
base64encode.py

标签:原值,sql,测试,SQL,select,注入
From: https://www.cnblogs.com/loayskt/p/17163603.html

相关文章

  • 问题[] 远程连接腾讯云服务器上的mysql
    困扰我两个月的问题终于解决啦.问题: 腾讯云服务上的mariadb,在本地win7连不上数据库...用户授权.GRANTALL PRIVILEGESON*.* TO 'aaa'@'%' IDENTIFIEDBY......
  • 基于jeecgboot复杂sql查询的列表自定义列实现
        一般简单的sql列表实现,可以通过系统自带的在线开发里的online表单开发实现,但一些复杂的混合多表的实现,同时对需要查询出来的结果进行数据更新,这种复杂的数据列表......
  • postgresql VACUUM 不会从表中删除死行的三个原因
    一、为什么是VACUUM?每当更新或删除PostgreSQL表中的行时,都会留下死元组。VACUUM摆脱了它们,以便空间可以重复使用。如果一个表没有被清理,它就会变得臃肿,这会浪费磁盘空间并......
  • Ubuntu下MySQL8.0报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost
    问题在Ubuntu下,想要登录mysql数据库root@lgl:~#mysql-uroot-p 报错ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)......
  • mybatis plus映射postgreSQL数组
    首先自定义一个数组处理器packagecom.ctsy.l3a1.handler;importorg.apache.ibatis.type.BaseTypeHandler;importorg.apache.ibatis.type.JdbcType;importorg.apa......
  • navicat从备份文件导入sql
    场景接别人的一个项目bilibili,只有​​.psc​​文件(navicat备份文件)。该如何导入呢?解决方案新建数据库bilibili,双击打开数据库。还原备份从这种直接把数据导入到库里。......
  • ASP.NET Core - 依赖注入(三)
    4.容器中的服务创建与释放我们使用了IoC容器之后,服务实例的创建和销毁的工作就交给了容器去处理,前面也讲到了服务的生命周期,那三种生命周期中对象的创建和销毁分别在......
  • pl/sql导出表结构的方法步骤
    转载:pl/sql怎么导出表结构-pl/sql导出表结构的方法步骤-下载吧(xiazaiba.com)PL/SQLDeveloper是一个专为Oracle数据库开发存储程序单元的集成开发环境,用户使用这款软件......
  • 关于 MySQL 中文排序问题
    在MySQL数据库中使用UTF-8的编码进行排序会出现不按照中文拼音的顺序排序,而UTF-8是数据库的默认字符集,而且该字符集忽略大小写。解决这个问题的方案有两种:1)把编码......
  • day06-动态SQL语句
    动态SQL语句1.基本介绍官方文档mybatis–MyBatis3|动态SQL为什么需要动态SQL?动态SQL是MyBatis的强大特性之一使用JDBC或其他类似的框架,根据不同条件拼......