SQL注入原理与防御姿势(问答方式 描述)
SQL注入原理?
通过把SQL命令插入到Web表单提交或者输入域名或者页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
SQL注入危害?
数据库层面
- 非法读取、篡改、添加、删除数据库中数据
- 盗取用户的各类敏感信息,获取利益·
- 通过修改数据库修改网页上的内容
- 私自添加或者删除账号
操作系统层面
- 网页篡改
- 网络挂马
- 服务器远程控制
SQL注入有哪些分类?
基于注入点值
- 数值型 sql=“select * from admin where id=1”
- 字符串型 sql=”select * from 表 where id =“xxx””
基于从服务器返回的内容
- 有回显(基于错误的)
- 无回显(盲注)
- 布尔盲注
- 时间盲注
按照注入的程度和顺序
- 一阶注入
- 二阶注入
MySQL注入中常用的函数?
user();查看当前Mysql登录用户名
database():查看当前Mysql数据库名
version():查看当前Mysql版本
@@version
@@basedir
length() 字符串长度
substring()截取字符串
ord 返回ASCII码值
concat 连接字符串
sleep(4) 睡眠指定描述
group_concat() 查询结果放同一行
limit m,n 从m行开始,到m+n行。
mid()需要截取的字符串
group_concat() 查询结果放同一行
盲注有哪些优化手段?
1、普通字符加正则表达式联合优化猜解
2、二分查找算法
3、按位方法
盲注有哪些常用语句?
?id=1’ and if(ascii(substr(database(),1,1))>95,sleep(6),1)%23
select length(databse());
select substr(databse(),1,1);
select ascii(substr(database(),1,1));
select ascii(substr(database(),1,1))>N;
select ascii(substr(database(),1,1))=N;
select ascii(substr(database(),1,1))<N;
HTTP头中有哪些信息?
User-Agent、Referer、Cookies等
宽字节注入原理?
mysql使用GBK编码的时候,会认为两个字符是一个汉字。
数据库使用的是GBK编码,PHP编码为UTF8就可能出现宽字节注入,网站为了防止发生SQL注入,会调用addslashes()等一些特殊函数,将单引号或双引号进行转义操作,即在单或双引号前加上斜杠(\)。当数据库使用的是宽字节编码会将两个连在一起的字符会被当做是一个汉字,而在PHP使用的UF8编码则认为是两个独立的字符。
什么是二阶注入?
二次注入是指已存储(数据库、文件)的用户输入被读取后再次进入到 SQL 查询语句中导致的注入。
二阶注入与普通注入的区别?
普通注入:
- 在http后面构造语句,是立即直接生效的
- 一次注入很容易被扫描工具扫描到
二次注入:
- 先构造语句(有被转义字符的语句)
- 我们构造的恶意语句存入数据库
- 第二次构造语句(结合前面已经存入数据库的语句,成功。因为系统没有对已经存入数据库的数据做检查)
- 二次注入更加难以被发现
SQL注入绕过方式?
常用绕过方式
- 大小写绕过
- 双写绕过
- 编码绕过
- 内联注释绕过
怎么绕过去除注释符的sql注入?
- 利用or ‘1’='1闭合单引号
- 配合联合查询
怎么绕过去除and和or的SQL注入
1、大小写变形,Or,OR,oR,OR,And,ANd,aND等 -代码中大小写不敏感都被剔除
2、在这两个敏感词汇中添加注释,例如: a/**/nd 双写绕过oorr
3、利用符号替代–and --&& --or–||
怎么绕过去除空格的sql注入
编码绕过: hex,urlencode
空格URL编码%20
%09 TAB键(水平)
%0a新建一行
%0c新的一页
%0d return功能
%0b TAB键(垂直)
怎么绕过去除union和select的sql注入
大小写
双写
SQL注入的防御
预编译
限制输入长度
过滤关键词
SQL注入原理与防御姿势(问答方式 描述)相关推荐
- mysql 绕过select报错_Web安全之SQL注入(原理,绕过,防御)
首先了解下Mysql表结构 mysql内置的information_schema数据库中有三个表非常重要 1 schemata:表里包含所有数据库的名字 2 tables:表里包含所有数据库的所有的表 ...
- 安全测试-安装 sqli-labs 靶场及Sql注入原理、手动、自动注入、检测及防御
安装 sqli-labs 靶场 sqli-labs 是一款用于学习 SQL 注入的靶场平台,覆盖了各种类型的 SQL 注入,题目共 75 道,按难度划分为 4 页.sqli-labs 靶场的项目开源地 ...
- sql注入原理及防范方式
前言 sql注入是一种危险系数较高的攻击方式,现在由于我们持久层框架越来越多,大部分框架会处理这个问题,因此导致我们对它的关注度越来越少了.最近部门在整理安全漏洞时,提到了一些关于sql注入的修改点, ...
- SQL注入原理、过程、防御方案、RASP概念
一.sql注入原理 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的语句上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此 ...
- SQL注入原理与解决方法
一.什么是sql注入? 1.什么是sql注入呢? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网 ...
- Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解
前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...
- sql注入原理及解决办法
sql注入概括 SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB ...
- Web网络安全漏洞分析,SQL注入原理详解
本文主要为大家介绍了Web网络安全漏洞分析SQL注入的原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 一.SQL注入的基础 1.1 介绍SQL注入 SQL注入就是 ...
- SQL注入原理及预防SQL注入的方法
网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,担心网上的信息以及个人隐私遭到泄露.下面要为大家介绍的是SQL注入,对于sql注入,相信程序员都知道或者使用过,如果没有了解或完全没有听 ...
最新文章
- 产品设计体会(1011)少做就是多做
- 小胖机器人能刷碗吗_小胖机器人好不好?透过真相看本质
- taylor+swift纽约公寓_豪宅控!Taylor Swift究竟有多喜欢买豪宅!
- wpf datagrid 表格内容自动计算_施工测绘20套测量自动计算表格,无脑输入数据出结果...
- C#解析json和xml数据
- 从0开始学习 GitHub 系列之「Git 进阶」
- python购物车代码_(Python基础)简单购物车代码
- Linux下修复U盘坏块,快速修复U盘坏块的方法
- Yandex安装插件实现百度网盘不需要会员就能倍速播放
- C# 判断字符串中文汉字
- HTML制作个简单的网页
- Reflex WMS入门系列七:收货(Receipt)
- 计算机视觉行业博客和代码汇总
- 深入解析内存原理:DRAM的基本原理
- 分享几个找论文参考文献的网站
- Linux应急响应排查
- BFS 寻找矩阵中两点之间的最短距离
- 猿创征文|计算机学生必须掌握的学习工具
- 从事资本运作的人应该具备的操守
- MySQL——单行函数的介绍和使用