-
3)猜解数据
-
4)猜解脚本
========================================================================
简单分析一下网站的功能,大致如下:
需要用户在地址栏中提交参数,根据参数中的id查询对应的用户信息。
如果id存在,则显示查询成功,比如 输入?id=1
如果id不存在,则页面空显示,比如输入 ?id=0(用户id不能是0或负数,id为0时,查询结果为空,会导致页面空显示)
如果数据库报错,页面也是空显示,比如输入?id=1’ 或 ?id=1"(参数中携带引号会导致数据库报错,前提是后台代码未过滤单引号)
========================================================================
页面没有显示位,不适合联合注入。
没有数据库的报错信息,不适合使用报错注入。
只有正确和错误两种情况,推荐使用布尔盲注。
网站没有过滤参数,不需要绕过,盲注的时间复杂度较高,文末提供Python脚本。
========================================================================
输入参数 ?id=1’,页面空显示,说明单引号被数据库识别,导致数据库报错。
输入参数 ?id=1",页面正常显示查询成功,说明双引号未被数据库识别;1" 被数据库识别成了 1,实际查询了id为1的用户。
单引号可以识别,双引号不被识别,初步判断:网站的注入点是单引号,下面使用万能账号进一步验证。
输入 ?id=1’ and 1 – a,页面正常显示,查询成功。
输入 ?id=1’ and 0 – a,页面空显示,未查询到。
人为构造参数可以使页面产生对应的变化,由此判断,网站存在注入,注入点为单引号字符型注入。
输入参数 ?id=1’ and length(“abc”)>1 – a,页面正常显示查询成功。
length(“abc”)可以计算出字符串“abc”的长度,长度为3。
length(“abc”)>1 结果为 true,因此,参数等价于 ?id=1’ and 1 – a。
输入参数 ?id=1’ and length(“abc”)<1 – a,页面空显示。
length(“abc”)<1 结果为 false,参数等价于 ?id=1’ and 0 – a。
由此可以推断出,长度函数未被过滤,可以正常使用,接下来我们开始猜解数据库管理员密码的长度。
mysql.user表用来存放数据库的用户名和密码等信息,我们查询这个表即可。
输入以下payload:
?id=1’ and length(
(select group_concat(user,password)
from mysql.user)
)=1 – a
我们先假设用户名和密码的总长度为1,结果肯定是空显示,我们将测试长度依次递增,测试2到n,当测试长度递增到42时,页面正常显示,由此可判断用户名和密码的总长度为42,payload如下:
?id=1’ and length(
(select group_concat(user,password)
from mysql.user)
)=42 – a
长度确定后,我们从第一个字符开始,猜解出完整的数据。
ASCLL码表中包含了字符的所有可能性(字母、数字或特殊符号),ASCLL总共127个字符,其中可输入的字符只有32~126,我们穷举每一种可能性,即可猜解出完整的数据。
我们先假设第一个字符的ASCLL码是32,payload如下:
?id=1’ and ascii(substr(
(select group_concat(user,password)
from mysql.user)
,1,1))=32 – a
页面空显示说明错误,我们从32开始递增至126,当页面正常显示时(出现 You are in……),说明猜解正确。
使用盲注时,手动猜解时间成本太大,推荐使用Python猜解,脚本如下:
import requests
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
6129f47b8a67243c1008edf79.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)