sql注入漏洞 危害是最大得

Sql注入

数据库注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄露的一种漏洞。

Sql注入攻击流程:

1.  注入点探测

自动方式:使用web漏洞扫描工具,自动进行注入点发现

手动方式:手工构造sql inject测试语句进行注入点发现

2.  信息获取

通过注入点取得期望得到的数据

      1.  环境信息:数据库类型,数据库版本,操作系统版本,用户信息等

      2.  数据库信息:数据库名称,数据库表,表字段,字段内容(加密内容破解)

      3.  获取权限       获取操作系统权限:通过数据库执行shell,上传木马

3.sql注入类型:   数字型  user_id=$id

           字符型 user_id='$id'

           搜索型  text like '%{$_GET['search']}'  "

select  字段1     from table  where  id=1  会显示表中第一行信息

select  字段1     from table  where  id=1 or 1=1  会显示表中所有信息

Get方式中使用url提交注入数据;

post方式中使用抓包工具修改post数据部分提交注入

注入方法可参考sqli-labs实验方法:https://www.cnblogs.com/199904-04/p/12296733.html

一、SQL数字型注入(post)

选择1,查询;

进行抓包,并发送到repeater;

修改id为1 or 1=1 ,可以看到id全部列出;

查看源码,这里post请求直接把id带到SQL·语句中,没有做任何处理,所以id这里存在sql注入漏洞;

二、SQL字符型注入(get)

输入kobe,查询;

因为是字符型的注入,我们可以使用做sqli-labs方法进行尝试,加单引号、双引号、括号、以及他们的组合,这里需要注意闭合后面注释,我们输入 kobe’ or 1=1#’

我们查看源码,发现这里的变量是字符型,需要构造闭合;

三、SQL搜索型注入

查看源码,可以发现需要构造闭合,且闭合需要有’%

在数据库中查询语句为 select username,id,email from member where username like '%$name%'

所以在这我们使用xxx% or 1=1#进行查询;闭合成功,遍历用户所有信息;

 

四、SQLxx型注入

数据库中查询语句为select id,email from member where username=('$name')

则闭合为xx) or 1=1# 可遍历用户所有信息;

五、Insert/updata/delete注入(使用报错注入)

基于insert/undata下的报错

Ztt’or updatexml(1,concat(0x7e,database()),0)or ‘

基于delete下的报错

1 or updatexml(1,concat(0x7e,database()),0)

基于floor()

Kobe’ and (select 2 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema,tables group by x)a)#

基于delete下的报错

1 or updatexml(1,concat(0x7e,database()),0)

先删除一个留言,抓包,然后 发送到repeater;

看源码可知id是一个数字型;

在repeater中修改id并转码;

在右边的界面拉到最后就会有报错信息的显示

六、http头注入

有时候后台开发人员为了验证客户信息(比如cookie验证)或者通过http header头信息获取客户端的一些信息,比如useragent、accept字段等 会对客户端的http header信息进行获取并使用sql进行处理,如果此时没有足够的安全考虑则可能会导致基于http header 的sql inject漏洞。

 

admin 123456 登录;

进行抓包,并发送到repeater,修改user-agent   

  firefox’or updatexml(1,concat(0x7e,database()),0)or ‘

七、盲注

在有些情况下,后台使用了错误消息屏蔽方法(比如@)屏蔽了报错,此时无法在根据报错信息来进行注入的判断,这种情况下的注入,称为“盲注”;

盲注分为:based boolean

Based time

based  boolean

表现:

1.没有报错信息

2.结果都只显示两种情况(0或1)

3.在正确的输入下,输入and 1=1/and 1=2可以判断

 

输入  Kobe’ and ascii(substr(database(),1,1))>113#

输入 kobe' and ascii(substr(database(),1,1,))=112#  输出正确;

将database()换成

Select  table_name from information_schema.tables where table_schema=database() limit 0, 1

 

kobe' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0, 1)

,1,1,))>112#   也是可以的

 

 

 

 

Based time

kobe’ and sleep(5)#   页面会停顿5秒

通过这个可以判断构造语句是否正确

 

kobe’ and if((substr(database(),1,1))=‘a’,sleep(5),null)#

猜测第一个字符是否是a (a-z)

我们可以将database()换成select  table_name from information_schema.tables where table_schema=database() limit 0, 1 也是可以的。

pikaqiu练习平台(SQL注入 )的更多相关文章

  1. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击

    第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...

  2. DVWA漏洞演练平台 - SQL注入

    SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...

  3. SQL注入测试平台 SQLol -1. 简介与安装

    最近下载了SQLol测试了一下,感觉挺好玩的,做一下记录. SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句,SQLol还是比较有创意的项目. ...

  4. SQL注入之DVWA平台测试mysql注入

    今天主要针对mysql常用注入语句进行测试. 测试环境与工具: 测试平台:DVWA,下载地址:http://down.51cto.com/data/875088,也可下载metaspolit-tabl ...

  5. Pikachu漏洞练习平台实验——SQL注入(四)

    1.概述 1.1发生原因 SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄 ...

  6. Sqli-labs 搭建SQL注入平台

    sqli-labs是一款学习sql注入的开源平台,共有75种不同类型的注入. 搭建步骤: 1.在Windows系统中安装WAMP 下载地址:https://pan.baidu.com/s/1HY0hF ...

  7. DAY5 php + mysql 写一个简单的sql注入平台

    php mysql 在浏览器输入用户名,去数据库查询.查到则显示在浏览器,查不到则显示空. sql 里面三个字段 id username password create table t1 (id in ...

  8. SQL注入测试平台 SQLol -6.CHALLENGES挑战

    SQLol上面的挑战共有14关,接下来我们一关一关来突破. Challenge 0 目的是让查询返回所有的用户名,而不是只有一个. SELECT username FROM users WHERE u ...

  9. SQL注入测试平台 SQLol -2.SELECT注入测试

    前面,我们已经安装好了SQLol,打开http://localhost/sql/,首先跳转到http://localhost/sql/select.php,我们先从select模块进行测试. 一条完成 ...

随机推荐

  1. python生日贺卡制作以及细节问题的解决最后把python项目发布为exe可执行程序过程

    自己今天第一次做一个python生日贺卡: 效果图 参考之前有位大佬的作品,自己稍微的改造了一下下  首先:上程序 Birthday.py """ ----------- ...

  2. 函数的默认值与动态参数arguments的总结

    在js函数与作用域,了解函数基本概念中,我们发现当函数的实参有一个没有上传的时候,对应的形参time展示的值就是undefined,如下代码所示: <!DOCTYPE html> < ...

  3. 纪中20日c组T2 2122. 【2016-12-31普及组模拟】幸运票

    2122. 幸运票 (File IO): input:tickets.in output:tickets.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto P ...

  4. 疑问:Iterator 遍历器和数据集合各种遍历方法的区别

    https://es6.ruanyifeng.com/#docs/iterator Iterator(遍历器)的概念 Iterator 接口主要供for...of消费 Iterator 的遍历过程是: ...

  5. java网页程序采用 spring 防止 csrf 攻击 转

    银行项目开发过程中,基本都会采用 spring 框架,所以完全可以不用自己开发 filter 去拦截 csrf 攻击的请求,而直接采用实现 spring 提供的 HandlerInterceptor ...

  6. spring boot中通用应用程序属性

    可以在application.properties文件内部application.yml,文件内部或命令行开关中指定各种属性.本附录提供了常见的Spring Boot属性列表以及对使用它们的基础类的引 ...

  7. webpack4从安装到使用入过的那些坑

    1.全局安装 安装 webpack 前要确保已经下载 node.js 最新版本(node.js官网地址) 目前使用命令行安装的 webpack 默认为最新版本(以下我使用了全局安装.官网建议本地安装, ...

  8. C# WPF 表单更改提示

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议,请网站留言: 如果您觉得Dotnet9对您有帮助,欢迎赞赏 C# WPF 表单更改提示 内容目录 实现效果 业务场景 编码实现 本文参考 ...

  9. Windows10开发环境搭建

    开发环境基本介绍:(是以刚重装过系统的电脑进行介绍的,电脑刚装完的操作见其他的文档) Eclipse环境搭建: 1. 下载JDK (本例以JDK13.0.1为例) 2. 配置环境变量(主要是JAVA_ ...

  10. adb -- cannot connect to x.x.x.x:5555“由于目标计算机积极拒绝,无法连接”

    原因 安卓系统未打开adb网络调试功能 通过USB方式连接到安卓系统设置即可 解决 先通过USB线连接 adb devices 能看到所连接的设备情况下 adb root 权限提权 adb shell ...