有关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注入是影响企业运营且最具破坏 ...
随机推荐
- buu SimpleRev
一.发现是elf文件,拖入ida,然后直接找到了关键函数 点击那个Decry()函数 二.逻辑还是很清晰的,而我是卡在这里v1的逆算法,感觉学到了很多,其实爆破就足够了 这里大小写可以一起写上 tex ...
- C++ 11 智能指针(shared_ptr)类成员函数详解
C++ 11 模板库的 <memory> 头文件中定义的智能指针,即 shared_ptr 模板类,用来管理指针的存储,提供有限的内存回收函数,可同时与其他对象共享该管理功能. share ...
- Docker搭建Redis5.0并挂载数据
记录 Docker 搭建 Redis5.0 并挂载数据过程,搭建参考自 Docker Hub 系列文章欢迎访问:https://www.itwxe.com/posts/9e76db89/ 一.简单挂载 ...
- 全面了解Nginx到底能做什么
最近做项目需要动静分离,便用nginx的反向代理来实现.后来看到一篇好文,记录下. 来自https://www.jianshu.com/p/8bf73d1a758c 前言 本文只针对Nginx在不加载 ...
- 常用js代码积累
1,js判断进入可视区,参考(亲测不行):https://www.cnblogs.com/Marydon20170307/p/8830069.html 重点学习的话,可参考: js计算元素距离顶部的高 ...
- 【Uva1025 A Spy in the Metro】动态规划
题目描述 某城市地铁是线性的,有n(2≤n≤50)个车站,从左到右编号1~n.有M1辆列车从第1站开始往右开,还有M2辆列车从第n站开始往左开.列车在相邻站台间所需的运行时间是固定的,因为所有列车的运 ...
- odoo14里面的用户登录log记录
一.继承userlog,添加字段 # -*- coding: utf-8 -*- from odoo import models, fields, api from odoo.http import ...
- python开发,注意事项
提高python代码运行效率 1.使用生成器,节约内存.[一边循环一边计算的机制,称为生成器:generator] 例: .如何创建生成器 1.只要把一个列表生成式的[]改成(),就创建了一个gene ...
- 第三篇 -- IDEA 创建Springboot Web项目并用Jmeter测试
上一节使用Django写的一个接口程序,这一节讲用IDEA配合Springboot创建web项目.一个是python,一个是java. 参考链接:http://www.uxys.com/html/Ja ...
- 在LinuxMint 17 MATE中安装NVIDIA显卡驱动
第一步:在Linux系统中安装Nvidia显卡驱动需要关闭X Server. 打开终端,进入ROOT权限,执行以下命令 $ sudo service mdm stop 此时将会把X Server关闭, ...