我是靠谱客的博主 强健薯片,最近开发中收集的这篇文章主要介绍shell 提取sql 的字段名表名_渗透测试之SQL注入(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章原载于公众号:猪猪谈安全

作者:随风kali

前文一篇渗透测试之SQL注入(一)给大家讲了SQL注入的产生原理,SQL注入的种类和一些防御SQL注入的手段。接下来的篇章呢都是从实例去分析SQL注入。

首先我们先分析一下DVWA靶场low等级的SQL注入。

1c4d822ede6347f9ac4026322116822e.png

这里有一个user id需要我们填写,那我们先填写一个1看看会发生什么。

da71dece1935d00f67ae39f865de38d5.png

这里查询到了user id为1号的信息,还记得我们前文说的验证SQL注入的方法吧,在1后面加个单引号,那我们输入1‘在试一试。

可以看到我们输入1'导致SQL语句不能正常解析最终导致程序报错

cac24ad25d6f2271d8295a9d8d8369ee.png

那我们初步判断这里是存在注入点的,那么我们可以去查看一下源代码来分析分析。

5c65dd0e97da634cdc0849c684212ccb.png

可以看到这里的SQL语句,然后可以看到后文代码没有对我们的id参数进行任何的过滤处理,这里就满足了我们的注入要求,有可控变量id且没有做任何过滤,语句被带入到数据库进行查询。知道了此处存在SQL

注入,那么我们该如何进行利用呢。

以下以MYSQL数据库为例子

首先呢在学习SQL注入之前我们需要知道的几个函数

database():当前网站使用的数据库

version():当前MYSQL使用的版本

user():当前MYSQL的用户

当我们不知道任何条件时,我们就要如下查询

select 要查询的字段名 from 库名.表名

那再根据我们看到的SQL语句,这里我们就可以利用一下联合查询

1' union select 1,database()#

这里有几个需要注意的地方

1.我们的1后面需要单引号进行闭合

2.运用union select联合查询我们后面所要查询的字段个数要和之前一致,这里有两个字段,一个是1,还一个是database()

3.最后一个注意点就是最后我们要用#注释掉后面的内容,因为在MYSQL语句种#是注释的意思

4fec58fec3fd382641411d704188ca44.png

输入后可以看到爆出我们的当前数据库名字

在知道一条数据后我们就可以通过如下语句进行查询

select 要查询的字段名 from 库名.表名 where 已知条件字段名字=已知条件的值

又因为mysql 5.0以上版本自带数据库,information_schema记录有当前mysql下所有数据库名,表名,列名信息。下列是存放各信息的名字

information_schema.schemata:记录数据库信息的表
information_schema.tables:记录表名信息的表
information_schema.columns:记录列名信息的表
schema_name 数据库名
table_name 表名
column_name 列名
table_schema 数据库名

其中的' . '是为下一级的意思,知道了这些我们就可以构造一下SQL语句

上面我们已经知道了数据库名字为dvwa所以我们就可以爆出dvwa里面的表名

1'union select 1,table_name from information_schema.tables where table_schema="dvwa"#

a70458da77813c2f59c2d8e896a39e11.png

有看到users表,users里面一般存放的是用户的信息,所以我们再爆一下users表下面的列名信息

1' union select 1,column_name from information_schema.columns where table_name='users'#

8885e111fb0917a1ba55190f9f50a9d3.png

这里可以看到一些user、password字段估计就是存放用户和用户密码了,那我们再查看一下这些字段里面的内容。

1' union select 1,concat(user,password) from users#

bf51465e0b4f00038ab42b7dc91bff04.png

这里就爆出了账号和密码的MD5值,然后我们可以把MD5值解密就可以查看到用户密码了

5b83fc88a6777c811e409f6e1cde854f.png

这一般就是SQL注入的一般步骤了,当然这只是SQL注入的一小部分,还有一些高级注入技巧会在后续文章写出。

最后

以上就是强健薯片为你收集整理的shell 提取sql 的字段名表名_渗透测试之SQL注入(二)的全部内容,希望文章能够帮你解决shell 提取sql 的字段名表名_渗透测试之SQL注入(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部