大哥带我们的mysql注入

Posted -zhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大哥带我们的mysql注入相关的知识,希望对你有一定的参考价值。

这是今天的任务
任务三个 : 第一个手工注入找出admin用户的密码,第二个读取我phpstudy中mysql的my.ini这个配置文件的内容,第三个是通过这个注入点写入一个webshell,  都是要求手工,具体方法自己百度mysql5注入相关内容

union select 1,2,3,4,5

技术图片

 

查询语句 第一步是先构造闭合 加入单引号报错 然后 更据and 1=1 and1=2看是字符型还是布尔型注入

http://www.萨达所大大所多t/index.php?id=1%20order%20by%205

 

技术图片

 

 

数据库test

查询所有数据库

网址+union select 1,2,3,4,schema_name from information_schema.schemata

 技术图片

要求是读取web端口的admin密码 那我们应该进入test数据库

爆表名

网站+union select 1,2,3,4,table_name from information_schema.tables where table_schema=test

这里原来的语句已经闭合 不需要你去闭合了

技术图片

看见有admin表之后继续爆列名

union select 1,2,3,4,column_name from information_schema.columns where table_name=admin

技术图片

看见有username 和password应该就是我们要爆破的字段名 来爆破吧

网站+union select username,password,3,4,5 from admin

技术图片

这个应该就是我们要爆破的数据 admin admin888

0X02读取靶机phpstudy里面mysql的my.ini这个文件

那有注入点 我们看看是否有读写文件的权限呐? 因为这里的user()是root那我们就有读取文件的权限了

1、必须有权限读取并且文件必须完全可读。

   and (select count(*) from mysql.user)>0 /*如果结果返回正常,说明具有读写权限.*/

   and (select count(*) from mysql.user)>0 /* 返回错误,应该是管理员给数据库账户降权了*/

2、欲读取文件必须在服务器上

3、必须指定文件完整的路径

4、欲读取文件必须小于max_allowed_packet

  如果该文件不存在,或因为上面的任一原因而不能被读出,函数返回空。比较难满足的就是权限。

在windows下,如果NTFS设置得当,是不能读取相关的文件的,当遇到administrators才能访问的文件,

users就不能实现用load_file读取文件了。

利用需要满足以下条件:

  1. 1.     root权限
  2. 2.     GPC关闭(能使用单引号)
  3. 3.     有绝对路径(读文件可以不用,写文件必须)
  4. 4.     没有配置—secure-file-priv

技术图片

那么权限够了 路径怎么办呐??????

两个函数的介绍

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

union select user(),2,3,@@datadir,@@basedir

技术图片

 

 好像找到路径了E:\\phpstudy\\MySQL\\data\\ 那我们看看mysql的my.ini文件一般在哪个文件夹下面 去百度一下

这里分享这个

https://blog.csdn.net/jiangyu1013/article/details/79792708

那更据他的理解路径应该是 E:\\phpstudy\\MySQL\\data\\my.ini

那我们就具备读文件的权限了

构造语句 这里第一次构造的路径是\\一个斜杠的 不知道为什么不行 网上说两个斜杠就好 我就去试了一下

网址+%20union%20select%20load_file(%27E:\\\\phpstudy\\\\MySQL\\\\my.ini%27),2,3,4,5

技术图片

成功读取文件

0X03写入自己的webshell

那么这个要满足的条件就更多了

没有配置—secure-file-priv 这个是什么东西呐?看看下面这个博客

https://blog.csdn.net/qq_41173457/article/details/81264564

好咯 回归正题

尝试一下嘛先 管他配没配置 但是一般这个网页的路径在哪里呐?

我们只是知道mysql的路径的啊 提示告诉我们是phpstudy 我们看看自己的phpstudy mysql和WWW同目录

技术图片

那我们来尝试一下吧

我的天 过滤了  那我们尝试一下16进制直接写入吧

技术图片

 

 而且好像还把目录报错出来了

我们的目录写错了应该是E:\\phpstudy\\WWW\\sqli-one\\

但是还是会报错

https://blog.csdn.net/qianduan520/article/details/52383214

这篇文章给大家解释的很清楚了

跟着改就行

然后就会成功

技术图片

 

 

致谢--- 卿哥

加油努力!!!

以上是关于大哥带我们的mysql注入的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis怎么防止SQL注入

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?

mysql 带外注入

刚刚,MySQL 战胜了老大哥 Memcached!

VsCode 代码片段-提升研发效率

mysql基本语句