前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql高级注入4--盲注1

mysql高级注入4--盲注1

作者头像
lonelyvaf
发布2018-06-07 14:39:24
7350
发布2018-06-07 14:39:24
举报
文章被收录于专栏:晨星先生的自留地

所谓盲注就是在正常页面没有输入点,或者无法影响页面输出的内容~ 然后我们无法借助页面来返回数据库中我们想要注出的数据,这时候就要构造sql语句让它报错,或者进行一系列的判断。 这一篇讲的基于布尔的盲注。

科普文,给学弟妹的...大牛绕过绕过...

一、字符串返回字符函数

不得不提的是ord函数和ascii函数的用法一样,假如str为空字符串,则返回值为 0 。假如str 为NULL,则返回值为 NULL。 ASCII()用于带有从 0到255的数值的字符。

二、字符串截取三剑客

1、substr()函数

Substr和substring是一样的

用法:

substr(string, start, length);

string为字符串;

start为起始位置;

length为长度。mysql中的start是从1开始的

查看我当前的数据库是security

截取第一个字符串

第二个

2、mid()函数

mid()函数

此函数为截取字符串一部分。MID(column_name,start[,length])

参数

描述

column_name

必需。要提取字符的字段。

start

必需。规定开始位置(起始值是 1)。

length

可选。要返回的字符数。如果省略,则 MID() 函数返回剩余文本。

其实和substr大同小异…..

3、left()和right()函数

用法:

Left()得到字符串左部指定个数的字符

Left ( string, n) string为要截取的字符串,n为长度。

同理可知,right也是这样子的。有时候碰到奇葩的环境可能left用不了,right就可以用了。

同样一件事….我们习惯性的都用left,左撇子们可能用right,比如我。

那么介绍完一大堆有的没得是时候该介绍重头戏了。

所谓的盲注就是没有输出点。就是你和数据库产生了交互,但是在页面上去没有显示数据库的内容。具体可以参考sqli labs 基础练习5~

上面的代码虽然将id带入了数据库查询,但是没有echo在页面上。于是我们就要用到我们前面介绍的几个函数来注入了。

具体如下:

对比以下的ascii码表,我们发现注入出来的数据库名是无误的。

但是如果是传参的语句呢?

那么我们就没有办法像mysql客户端一样的回显了…不然怎么叫盲注。

输入:http://localhost/sqli-labs/Less-5/?id=1

可以看到这个是正常页面。

加上' 报错

加上' and 1--+

又返回正常了。这下我们可以用到我们上几篇学过的了。

http://localhost/sqli-labs/Less-5/?id=1' andascii(substr((select database()),1,1))=115--+

返回正常,说明数据库的第一位是ascii码115,对应—>s。

以此类推,但是一个个手注太过sb。我们可以用python实现自动化脚本来获取数据。

Sql注入工具就是这个原理的,哈哈。自己写的程序比不过sqlmap速度快,但是可控性强。有需要留言吧。代码贴上来太丑了,另一方面自己动手写也是一种提高。代码提示:用二分法。

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

本文分享自 晨星先生 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档