waf

Webshell免杀绕过waf

耗尽温柔 提交于 2019-12-03 20:16:30
转自: https://www.cnblogs.com/-qing-/p/10631414.html 0x03 关于eval 于 assert # 关于eval函数在php给出的官方说明是 eval 是一个语言构造器而不是一个函数,不能被 可变函数 调用 可变函数:通过一个变量,获取其对应的变量值,然后通过给该值增加一个括号(),让系统认为该值是一个函数,从而当做函数来执行 通俗的说比如你 <?php $a=eval;$a() ?> 这样是不行的 也造就了用eval的话达不到assert的灵活,但是在php7.1以上assert已经不行 关于assert函数 assert() 回调函数在构建自动测试套件的时候尤其有用,因为它们允许你简易地捕获传入断言的代码,并包含断言的位置信息。 当信息能够被其他方法捕获,使用断言可以让它更快更方便! 0x04 字符串变形 # 字符串变形多数用于BYPASS安全狗,相当对于D盾,安全狗更加重视"形" 一个特殊的变形就能绕过安全狗,看看PHP手册,有着很多关于操作字符串的函数 ucwords() //函数把字符串中每个单词的首字符转换为大写。ucfirst() //函数把字符串中的首字符转换为大写。trim() //函数从字符串的两端删除空白字符和其他预定义字符。substr_replace() //函数把字符串的一部分替换为另一个字符串substr

Why has nobody created an open source build system for the brain dead? [closed]

匆匆过客 提交于 2019-12-03 11:05:07
I want to build a shared library. GNU/Linux is the development and target platform. C is the implementation language. I can't decide how I want to setup the build system and keep flitting around three options each of which have lots of reasons to dislike: hand crafted Makefiles - I've worked this way almost exclusively in the past GNU Autotools - I used autotools earlier this year to build a shared C library, but have forgotten how I did it and where all the many hundreds of tutorials were I used for pickings. waf - supposedly simple but not so easy I've got it working this afternoon. I can't

WAF学习记录

心已入冬 提交于 2019-12-03 10:22:04
国内外相关领域的研究现状   WAF作为网络安全保障体系的一道防线,自生产起,其应用愈来愈广泛,国内外对其研究也越来越多。国外做WAF产品的厂商有飞塔、Imperva和梭子鱼等。国内做WAF产品的也不少,硬件WAF主要有深信服、绿盟、安恒、启明星辰等厂商做的产品,软件WAF和云WAF有安全狗、安全宝、云锁、360主机卫士、D盾等。但国内关于WAF的学术界研究论文并不是很多,只有少数研究,比如特征匹配、自学习等。国外对WAF的研究论文相对较多,方法也比较丰富,比如研究WAF实体,使用自动分散多层缓冲系统,使用机器学习,量子神经网络分类器等。国内外对于WAF研究主要集中与对WAF配置规则的研究。 来源: https://www.cnblogs.com/--lr/p/11790812.html

应用安全技术趋势之 Top 5

流过昼夜 提交于 2019-12-03 08:45:41
而今,大多数应用都依赖于像入侵防护系统(Instrusion Prevention System)和 Web 应用防火墙(Web Application Firewall,以下全文简称 WAF)这样的外部防护。然而,许多这类安全功能都可以内置到应用程序中,实现应用程序运行的自我保护。 ##1. 实时应用自我保护 实时应用自我保护 (以下全文简称 RASP),是一个应用程序运行时环境的组成部分,它可以实现为 Java 调试界面的扩展。RASP 可以检测到应用程序在运行时试图往内存中写入大量数据的行为,或者是否存在未经授权的数据库访问。同时,它具有实时终止会话、和发出告警等功能。WAF 和 RASP 的合作相辅相成,WAF 可以检测到潜在的攻击,而 RASP 可以通过研究应用内部的实际响应数据来验证潜在的攻击是否具有威胁性。 毋庸置疑,内置于应用程序的RASP,比那些只能获取 App 有限的内部进程信息的外接设备更加强大。 ##2. 协同安全智能 说到协同安全智能,笔者认为协同安全的意义是不同应用安全技术间的协作或集成。 动态应用程序安全测试(以下全文简称 DAST) + 静态应用程序安全测试(以下全文简称 SAST):DAST 不需要访问代码并且易于实现。另一方面,SAST 需要访问代码,但是对应用程序的内部逻辑了解更为深入。这两种测试技术各有利弊,但是两种测试结果的关联和结合

一些 bypass WAF 技巧

∥☆過路亽.° 提交于 2019-12-03 02:56:33
也是之前讲课写的,现在搬运过来 --- WAF所处的位置 * 云WAF * 硬件WAF * 软件WAF * 代码级WAF WAF的绕过 1 架构层 1 对于云WAF,寻找真实ip 1 在子域名的ip段中找 2 信息泄漏 3 穷举ip 2 对于云WAF,利用同网段 3 WAF可能会进行两次URL解码 对输入进行两次url编码 4 编码问题 mysql默认的字符集是latin,因此在php代码里面设置的字符集为 utf-8,这只是客户端的字符集,因此存在字符集装换的问题utf-8—>latin,若传进来的字符集不是完整的字符,则会导致不完整的字符自动会忽略的问题,比如username=admin%c2 , 由于%c2不是一个完整的utf-8字符 因此传到Mysql 里面 自动忽略了,导致查出的是admin用户的数据,可以利用这个特性绕过。 为了便利性 牺牲安全性。(select * from admin where user=“Admin” 可以执行, mysql为了 使用的便利性 会允许一些 ‘错误’,比如 select * from admin where user=“Àdmin” 依然可移执行 2 资源限制角度 1 http请求body太大,WAF可能只检测前几k字节 3 协议层 1 协议未覆盖绕过 1 WAF没有实现对某种http协议的解析 2 文件包含,绝对路径绕过

SOAP in Node.js

匿名 (未验证) 提交于 2019-12-03 02:56:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Sure, you're gonna tell me that SOAP is deprecated and all, well I'm forced to use it. Now, I've tried with the douche module ( https://github.com/marcgreenstock/douche ) but it fails when I do this (the WSDL url is fine, in fact I'm trying the provided example at test/index.js ) Client.wsdl.parse(function(wsdl) { console.log(wsdl); }); The error is: /usr/local/lib/node_modules/douche/lib/douche/wsdl.js:74 attrs.forEach(function(url,index) { ^ TypeError: Object #<Object> has no method 'forEach' at [object Object]._read_namespaces (/usr/local

waf -how to add external library to wscript_build file

匿名 (未验证) 提交于 2019-12-03 01:41:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I tried to add an external library to my waf: the winmm.lib library it looks like this now: srcs = ['timers.cpp'] LIBS ='winmm.lib'; create_lib('timers', srcs,LIBS) it doesn't work. It says I vmp library 'winmm.lib.py' was not found in the current library. can someone help? 回答1: I have never heard of "create_lib" in waf, so I have no idea what that function is or does, but I'll try to answer your question anyway. Below I have a very basic wscript that is my typical way of setting up a simple project (on linux). If waf is as platform

我的WAF Bypass实战系列

匿名 (未验证) 提交于 2019-12-03 00:34:01
梳理了一下自己写过的WAF Bypass相关的文章,按照编写时间顺序,汇总成了一个WAF Bypass实战系列,如果你准备了解WAF攻防这一块的内容,可以来了解一下。 WAF Bypass 第一篇:《BypassD盾IIS防火墙SQL注入防御(多姿势)》 第二篇:《Bypass X-WAF SQL注入防御(多姿势)》 第三篇:《Bypass ngx_lua_waf SQL注入防御(多姿势)》 第四篇:《Bypass 360主机卫士SQL注入防御(多姿势)》 第五篇:《Bypass 护卫神SQL注入防御(多姿势)》 番外篇:《打破基于OpenResty的WEB安全防护(CVE-2018-9230)》 这些文章里面,包括了多种WAF Bypass的思路,主要利用了WAF层的逻辑问题,数据库层的特性,服务器层编码解析、参数获取的差异,在实战中一步步摸索总结,有一些思路让我至今觉得非常有意思。 下载地址: 链接: https://pan.baidu.com/s/1ol42TM8yYvhx1PeNmToErA 密码: ugiy 持续更新中,敬请期待。 关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。 转载请标明出处: 我的WAF Bypass实战系列 文章来源: 我的WAF Bypass实战系列

web应用防火墙如何检测并响应攻击

匿名 (未验证) 提交于 2019-12-03 00:32:02
WAF 不用于传统的防火墙,不止针对一些底层(网络层和传输层)的信息进行阻断,而是会深入到应用层,对所有信息进行保护。 web应用防火墙 是通过检测客户端和应用服务之间的请求和响应内容来实现的。所以说,防火墙什么时候能检测,如何检测以及检测什么就变得很重要。 检测什么将决定其响应能力,WAF应该能够检测请求/响应对象的所有组建,包括会话详细呢绒。如果应用有要求,例如限制用户会话数量,大多数WAF可以帮助实现。WAF应该提供可用的配置让管理员来轻松选择这些选项,如果企业对GET与POST如何使用有具体要求,或者对访问者进入网站的途径有特定要求,web应用防火墙应该提供支持。 检测异常或恶意流量主要是基于一下几个模型,了解每个模型也很重要。 第一,如果WAF采用黑名单做法,它只会阻止列表中包含已知攻击的请求。中所周知的攻击( 拒绝服务攻击 和跨站脚本)通常包含容易检测的某些字符。黑名单很好用,只要WAF支持这种攻击方法。并且,由于威胁经常变化,必须保持黑名单的更新。 其二,如果WAF使用白名单的做法,它只会允许满足列表或配置中标准呢的请求。这种检测方法需要部署期间前端的更多工作,但通常这是更安全的方法,因为它会阻止一切没有定义为可接收的事物。这两种方法都应该由企业的技术团队来配置。 另外,WAF如何响应攻击或异常也很关键。WAF提供多种响应选项,这些选项在配置界面容易变更。通常情况下

文件上传与 WAF 的攻与防

匿名 (未验证) 提交于 2019-12-03 00:29:01
文件上传与 WAF 的攻与防 转载自JoyChou@美丽联合 1 前言 本文的测试环境均为 nginx/1.10.3 PHP 5.5.34 有些特性和语言及webserver有关,有问题的地方,欢迎大家指正。 2 文件上传的特征 先来了解下文件上传的特征,抓包看看这段文件上传代码的HTTP请求。 upload.php <?php if ( isset ( $_POST [ 'submit_x' ])){ $upfile = $_FILES [ 'filename' ][ 'name' ]; $tempfile = $_FILES [ 'filename' ][ 'tmp_name' ]; $ext = trim (get_extension( $upfile )); // 判断文件后缀是否为数组里的值 if ( in_array ( $ext , array ( 'xxx' ))){ die ( 'Warning! File type error..' ); } $savefile = 'upload/' . $upfile ; if ( move_uploaded_file ( $tempfile , $savefile )){ die ( 'Upload success! FileName: ' . $savefile ); } else { die ( 'Upload