有关SQL注入的一些小知识点
1.判断注入点:
本质原理是找一个需要后台处理后,提交给数据库的点,我理解为用户可以控制并输入后台数据库的变量,比如我们DVWA SQL injection 的ID ,我们可以通过闭合单引号,#注释掉后面限制语句,16进制转换等方法进行绕过,将我们本应输入的变量变成一条查询语句获取数据库的信息。
一般分为三大类:
Get参数触发SQL注入
POST参数触发SQL注入
Cookie触发SQL注入
判断是数字型还是字符型注入方法
数字型注入:
1.修改参数为 id = 1’出错,无法正常从数据库查出数据
2.修改参数为 id = 1 and 1=1 语句执行正常
3.修改参数为 id = 1 and 1=2 出错,无法正常从数据库查出数据
通过上面三次输入 可以判断出是否为数字型注入 (如果有回显页面在第一次输入id=1’报错,报错页面为 '1''之类的多个单引号包含1,可以猜测大概率是字符型注入)
字符型注入:
1.修改参数为:id = 1’报错
2.修改参数为:id = 1' and '1' = '1 正常
3.修改参数为 id = 1' and '1' = '2 报错
这时可以判断为字符型注入,注意字符型注入后面有单引号 可以用#等符号注释掉
常用函数:
@@datadir 获取数据库的存储目录
@@version_compile_os 查看服务器的操作系统
user()查看当前连接数据库的用户
database() 获取当前所连接数据库名函数
version()查看数据库的版本
concat(str1,str2) 函数 合并两个字符串 实现无间隔连接str1和str2
concat_ws(separator,str1,str2) 函数 用分隔符separator连接两个字符串str1和str2,例如 分隔符为- 就实现了str1-str2
group_concat(str1,str2) 函数 将多行查询结果以逗号分隔全部输出
group_concat(concat_ws(seperator,str1,str2)) 函数
将多行查询结果以逗号分隔全部输出,每一行的结果可用设置的分隔符作字段的间隔
mysql中的information_schema 结构用来存储数据库系统信息:
1.schemata 存储数据库名
2.schema_name,表示数据库名称
3.tables 存储表名
4.table_schema 表示表所属的数据库名称;
5.table_name 表示表的名称
6.columns 存储字段名的
7.table_schema表示表所属的数据库名称;
8.table_name表示所属的表的名称
9.column_name表示字段名
得到当前库的所有表
select group_concat(table_name) from information_schema.tables where table_schema=database()
得到表中的字段名
select group_concat(column_name) from information_schema.columns where table_name=users
得到用户,密码
select group_concat(usernam,password) from users
不定期更新
最后更新于:2020.3.3 10:03
有关SQL注入的一些小知识点的更多相关文章
- sql注入原理+mysql相关知识点
什么是SQL注入 sql就是经常说的数据库,而sql注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入是比较常见的网络攻击 ...
- 关于防止sql注入的几个知识点
1.PDO预处理是首选. 你可以把他看成是要运行的sql的已经编译过的模板,它可以用变量参数进行定制 它有两个显著优点: 1.1:查询仅需解析一次,但可以用相同或者不同参数执行多次.换句话说如果要以不 ...
- sql注入的基本小知识
load_fie('') into outfile '' into dumpfile('') 堆叠注入 ;insert into liunx密码读取 /etc/passwd /etc/shadow W ...
- SQL注入攻防入门详解
=============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...
- SQL注入攻防入门详解(2)
SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱 ...
- [转]SQL注入攻防入门详解
原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============ ...
- 【渗透课程】第五篇-SQL注入的原理
哈哈哈,讲到注入了.我想给大家讲注入的原理.这个我们前面的前言篇就说过,所谓的SQL注入就是,绕过数据库验证机制直接执行SQL语句.怎么说呢,我们先讲一个概念吧! 网站和网页的区别 单纯的网页是静态的 ...
- 【数据库】软件安全测试之SQL注入
这些年我们发现越来越多的公司开始注重安全测试了,为什么?因为安全测试可以在某种程度上可以排查掉你项目的一些安全漏洞,这样你的系统上线后才会相对安全,才有可能尽量避免来自外部的攻击.每一年互联网都会发生 ...
- SQL注入不简单?那是你没有懂它的原理~
我们真的了解SQL注入吗? 不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏 ...
随机推荐
- NSDate小结
dateFormat用法: y - 年 2013年,yyyy=2013,yy=13 M - 月 3月,M=3,MM=03,MMM=Mar,MMMM=March D - 一年中的第几天 d - 一月中的 ...
- 获取操作系统OS等相关信息
问题一:Windows SDK 8.1版本中的VersionHelper.h文件当中没有IsWindows10ORGreater,所以当你用IsWindows8Point1ORGreater判断出版本 ...
- JUnit5依赖注入与测试接口
依赖注入 以前的JUnit的类构造方法和测试方法都是不能有参数的,JUnit Jupiter有一个颠覆性的改进,就是允许它们有入参,这样就能做依赖注入了. 如果你对pytest的fixture有了解的 ...
- adb bat 改进
@REM 生成随机数@echo off@REM 设置延迟变量setlocal enabledelayedexpansionset min=9set max=17set /a mod=!max!-!mi ...
- PYTHON 得到光标处的句柄
import win32api import win32gui import time if __name__ == '__main__': while True: point = win32api. ...
- MapReduce学习总结之架构
一.MapReduce1.x架构 1)jobTracker:JT 作业的管理者 将作业分解成一堆任务:Task(MapTask和ReduceTask) 将任务分派给TaskTracker(TT)运行 ...
- groff编写man页
groff 是大多数 Unix 系统上所提供的流行的文本格式化工具 nroff/troff 的 GNU 版本.它一般用于编写手册页,即命令.编程接口等的在线文档.在本文中,我们将给你展示如何使用 gr ...
- C++ Primer Plus 第四章 复合类型 学习笔记
第四章 复合类型 1. 数组概述 1.1 数组的定义 数组(array)是一种数据格式,能够存储多个同类型的值.每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素. 数组声明的三 ...
- tomcat日志及logback相关日志框架
一.重点问题整理 1.1 关于logback.xml中的路径设置问题 准备金系统的logback.xml中设置的路径是: <!-- 定义日志文件 输出位置 --> <property ...
- vulnhub-DC:2靶机渗透记录
准备工作 在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-2,311/ 导入到vmware 打开kali准备进行渗透(ip:192.168.200 ...