Web安全学习笔记 SQL注入中

繁枝插云欣 ——ICML8


  1. 权限提升
  2. 数据库检测
  3. 绕过技巧

一.权限提升

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.相同功能替换

  1. 函数替换

substring / mid / sub

ascii / hex / bin

benchmark / sleep

  1. 变量替换

user() / @@user

  1. 符号和关键字

and/ &

or / |

5.HTTP参数

  1. HTTP参数污染

id=1&id=2&id=3

根据容器不同会有不同的结果

  1. HTTP分割注入

6.缓冲区溢出

一些C语言的WAF处理的字符串长度有限
超出某个长度后的payload可能不会被处理
二次注入有长度限制时
通过多句执行的方法
改掉数据库该字段的长度绕过

Web安全学习笔记 SQL注入中的更多相关文章

  1. Web安全学习笔记 SQL注入下

    Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...

  2. Web安全学习笔记 SQL注入上

    Web安全学习笔记 SQL注入上 繁枝插云欣 --ICML8 SQL注入分类 SQL注入检测 一.注入分类 1.简介 SQL注入是一种代码注入技术用于攻击数据驱动的应用程序在应用程序中,如果没有做恰当 ...

  3. Web安全学习笔记——SQL注入

    一.MySQL注入 1. 常用信息查询 常用信息: 当前数据库名称:database() 当前用户:user() current_user() system_user() 当前数据库版本号:@@ver ...

  4. Web安全测试学习笔记-SQL注入-利用concat和updatexml函数

    mysql数据库中有两个函数:concat和updatexml,在sql注入时经常组合使用,本文通过学习concat和updatexml函数的使用方法,结合实例来理解这种sql注入方式的原理. con ...

  5. Web安全攻防笔记-SQL注入

    information_schema(MySQL5.0版本之后,MySQL数据库默认存放一个information_schema数据库) information_schema的三个表: SCHEMAT ...

  6. CTFHub Web题学习笔记(SQL注入题解writeup)

    Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20orde ...

  7. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  8. ASP.NET MVC Web API 学习笔记---第一个Web API程序

    http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...

  9. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

随机推荐

  1. 打败算法 —— 环形链表 II

    本文参考 出自LeetCode上的题库 -- 环形链表II,哈希表和快慢指针两种解法都需要O(n)的时间,但快慢指针仅占用O(1)的空间 https://leetcode-cn.com/problem ...

  2. BootstrapBlazor 智能生成神器(一)AutoGenerateColumnAttribute 特性介绍

    原文连接:https://www.cnblogs.com/ysmc/p/16074645.html BootstrapBlazor 官网地址:https://www.blazor.zone 介绍 Bo ...

  3. Leetcode刷题之链表增加头结点的前缀节点

    链表之增加头结点的前缀节点 在许多链表题中往往需要在题目给的头结点之前增加一个前缀节点 通常在删除链表和头结点需要交换时需要用到这一操作 因为增加这个节点就避免了对删除头结点这种特殊情况的特殊处理 而 ...

  4. 攻防世界PHP2

    PHP2 进入环境就一个英文其他啥都没有,英文也没啥提示信息 我们使用dirsearch扫描一下,一开始确实没扫到什么东西,到最后看了wp发现原来源码是在index.phps中,这里只提供一个思路,不 ...

  5. css预编译--sass进阶篇

    基础篇中主要介绍了一些sass的基本特性,进阶篇中,主要是写一些我们常用的sass控制命令,函数和规则. 控制命令 可能看过基础篇的朋友会发现在有些代码中出现@if @else @each等,熟悉JS ...

  6. 用Python爬取斗鱼网站的一个小案例

    思路解析: 1.我们需要明确爬取数据的目的:为了按热度查看主播的在线观看人数 2.浏览网页源代码,查看我们需要的数据的定位标签 3.在代码中发送一个http请求,获取到网页返回的html(需要注意的是 ...

  7. Java将字符串的首字母转换大小写

    //首字母转小写public static String toLowerCaseFirstOne(String s){  if(Character.isLowerCase(s.charAt(0)))  ...

  8. 为什么HashMap使用红黑树而不使用AVL树

    为什么HashMap使用红黑树而不使用AVL树? 红黑树适用于大量插入和删除:因为它是非严格的平衡树:只要从根节点到叶子节点的最长路径不超过最短路径的2倍,就不用进行平衡调节 AVL 树是严格的平衡树 ...

  9. c++对c的拓展_引用的基本用法

    实质:取别名 格式:原类型&别名=原变量名: 注意:1.定义时必须初始化 2.初始化后不能够改变指向 3.不可对Null进行引用 4.可对任意类型取别名包括数组(int (&别名)[个 ...

  10. JS正则表达式学习记录

    JS:正则表达式学习记录 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...