Web安全学习笔记 SQL注入中
Web安全学习笔记 SQL注入中
繁枝插云欣 ——ICML8
- 权限提升
- 数据库检测
- 绕过技巧
一.权限提升
1. UDF提权
UDF
User Defined Function,用户自定义函数
是MySQL提供的一个功能
可以通过编写DLL扩展为MySQL添加新函数
扩充其功能
当获得MySQL权限之后
即可通过这种方式上传自定义的扩展文件
从MySQL中执行系统命令
二.数据库检测
1. MySQL
sleep sleep(1)
benchmark BENCHMARK(5000000, MD5('test'))
字符串连接
SELECT 'a' 'b'
SELECT CONCAT('some','string')
version
SELECT @@version
SELECT version()
识别用函数
connection_id()
last_insert_id()
row_count()
2. Oracle
字符串连接
'a'||'oracle' --
SELECT CONCAT('some','string')
version
SELECT banner FROM v$version
SELECT banner FROM v$version WHERE rownum=1
3. SQLServer
WAITFOR WAITFOR DELAY '00:00:10';
SERVERNAME SELECT @@SERVERNAME
version SELECT @@version
字符串连接
SELECT 'some'+'string'
常量
@@pack_received
@@rowcount
4. PostgreSQL
sleep pg_sleep(1)
三. 绕过技巧
1.编码绕过
大小写
url编码
html编码
十六进制编码
unicode编码
2.注释
// -- -- + -- - # /**/ ;%00
内联注释用的更多
它有一个特性 /!**/
只有MySQL能识别
e.g. index.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,2,3
3.只过滤了一次时
union => ununionion
4.相同功能替换
- 函数替换
substring / mid / sub
ascii / hex / bin
benchmark / sleep
- 变量替换
user() / @@user
- 符号和关键字
and/ &
or / |
5.HTTP参数
- HTTP参数污染
id=1&id=2&id=3
根据容器不同会有不同的结果
- HTTP分割注入
6.缓冲区溢出
一些C语言的WAF处理的字符串长度有限
超出某个长度后的payload可能不会被处理
二次注入有长度限制时
通过多句执行的方法
改掉数据库该字段的长度绕过
Web安全学习笔记 SQL注入中的更多相关文章
- Web安全学习笔记 SQL注入下
Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...
- Web安全学习笔记 SQL注入上
Web安全学习笔记 SQL注入上 繁枝插云欣 --ICML8 SQL注入分类 SQL注入检测 一.注入分类 1.简介 SQL注入是一种代码注入技术用于攻击数据驱动的应用程序在应用程序中,如果没有做恰当 ...
- Web安全学习笔记——SQL注入
一.MySQL注入 1. 常用信息查询 常用信息: 当前数据库名称:database() 当前用户:user() current_user() system_user() 当前数据库版本号:@@ver ...
- Web安全测试学习笔记-SQL注入-利用concat和updatexml函数
mysql数据库中有两个函数:concat和updatexml,在sql注入时经常组合使用,本文通过学习concat和updatexml函数的使用方法,结合实例来理解这种sql注入方式的原理. con ...
- Web安全攻防笔记-SQL注入
information_schema(MySQL5.0版本之后,MySQL数据库默认存放一个information_schema数据库) information_schema的三个表: SCHEMAT ...
- CTFHub Web题学习笔记(SQL注入题解writeup)
Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20orde ...
- CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
随机推荐
- 哪些是重要的 bean 生命周期方法?你能重载它们吗?
有两个重要的 bean 生命周期方法,第一个是 setup , 它是在容器加载 bean 的时候被调用.第二个方法是 teardown 它是在容器卸载类的时候被调用. The bean 标签有两个重要 ...
- 创建POJO
创建一个名为student.java的POJO. 第一步,在包里面创建一个student类,右键点击包,点击新建,再点击创建一个类. 第二步,输入类名,点击完成. 第三步,输入数据类型和主键名,再写一 ...
- Canvas 核心技术
最近项目需求中要写较多H5小游戏,游戏本身体量不是很复杂,主要是承载较多业务逻辑,所以决定用canvas来完成游戏部分.之前只是知道H5中有canvas这个东西,也知道它大概是画图的,但具体怎么用,还 ...
- Java/C++实现解释器模式---机器人控制程序
某机器人控制程序包含一些简单的英文指令,其文法规则如下: expression ::= direction action distance | composite composite ::= expr ...
- Python窗口学习之浅尝按键触发事件
一.窗口上敲键盘触发事件(以Enter键为例) 二.点击窗口按钮触发事件(以鼠标左键双击为例) 代码: import tkinter as tk root = tk.Tk() root.geometr ...
- mint-ui中messagebox的使用
效果图: 代码: // 安装 # Vue 1.x npm install mint-ui@1 -S # Vue 2.0 npm install mint-ui -S // 引入全部组件 import ...
- Promise原理实现(一):前置知识点
实现promise首先需要了解如下知识点: 1: 高阶函数 (一个函数作为另外一个函数的参数,这个包含的函数就是高阶函数): outer是一个高阶函数,inner函数作为一个参数传递:此处也是闭包 ...
- c++对c的拓展_命名空间_简单使用
名字的控制:c可使用static关键字使该关键字在本单元内可见,c++则使用命名空间对名字的可见性及产生进行控制 命名空间:控制标识符的作用域(本质上就是一个作用域) 使用特点:1.必须定义在全局范围 ...
- MySQL---什么是事务
什么是事务 一个数据库事务通常包含对数据库进行读或写的一个操作序列.它的存在包含有以下两个目的: 为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方 ...
- python关于变量介绍
python变量 一.变量分为两种解释 1.随时可以变化的量 称之为变量 (变化多端嘛) 2.不会被变化的量 称之为常量 (常常不动嘛) #我们学习的python中没有真正定义的常量 #只有在绑定一个 ...