waf

nginx + lua 构建网站防护waf(一)

故事扮演 提交于 2020-01-14 03:10:19
最近在帮朋友维护一个站点。这个站点是一个Php网站。坑爹的是用IIS做代理。出了无数问题之后忍无可忍,于是要我帮他切换到nginx上面,前期被不断的扫描和CC。最后找到了waf这样一个解决方案缓解一下。话不多说直接开始。 waf的作用: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的攻击 屏蔽常见的扫描黑客工具,扫描器 屏蔽异常的网络请求 屏蔽图片附件类目录php执行权限 防止webshell上传 nginx 的话我选择春哥开源的:OpenResty一个伟大的项目。 好了步骤开始: 1、安装Luagit: # wget http://luajit.org/download/LuaJIT-2.1.0-beta1.tar.gz # tar -xvf LuaJIT-2.1.0-beta1.tar.gz # cd LuaJIT-2.1.0-beta1 # make # make install #ln -sf luajit-2.1.0-beta1 /usr/local/bin/luajit 2、安装openresty: ./configure --prefix=/opt/openresty --with-luajit --without-http_redis2_module -

Nginx + Lua 搭建网站WAF防火墙

心已入冬 提交于 2020-01-13 12:47:07
前言 对于项目里面 只是使用代理等常用功能 , 在线安装 即可,如需 制定化模块 ,则推荐 编译安装 PS:本文不仅仅包含Nginx相关的知识点,还包含了逆天学习方法(对待新事物的处理) 官方网站: https://nginx.org/ Github: https://github.com/nginx/nginx Nginx书籍 : Nginx Cookbook 中文版 https://huliuqing.gitbooks.io/complete-nginx-cookbook-zh/content/ Nginx官方中文文档 https://docshome.gitbooks.io/nginx-docs/content/ Nginx入门教程 https://xuexb.github.io/learn-nginx/ 淘宝Nginx文档 http://tengine.taobao.org/book/ 1.在线安装 1.1.修改yum源地址 清华源: https://mirrors.tuna.tsinghua.edu.cn/help/centos/ 更新软件包缓存: yum makecache 1.2.在线安装Nginx 在线安装比较简单,参考官方文档即可: https://nginx.org/en/linux_packages.html PS:线上选 stable 的就行了,记得把

使用Nginx+Lua实现waf

人走茶凉 提交于 2019-12-30 09:21:00
使用Nginx+Lua实现waf 软件包需求: 1 、Nginx兼容性【最后测试到1.13.6】 wget http://nginx.org/download/nginx-1.13.6.tar.gz 2 、PCRE为Nginx编译安装关系的依赖 wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz 3 、下载luajit解释器和ngx_devel_kit以及lua-nginx-module模块 wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.0.tar.gz wget https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz 4 、文件解压: tar xf nginx-1.13.6.tar.gz pcre-8.42.tar.gz LuaJIT-2.0.5.tar.gz v0.3.0.tar.gz v0.10.13.tar.gz 5 、安装LuaJIT Luajit是Lua即时编译器 cd LuaJIT-2.0.5/make

开源nginx_lua_waf部署安装

不羁的心 提交于 2019-12-30 09:20:49
0x01 前言 ngx_lua_waf 实现 WAF 一句话描述,就是解析HTTP请求(协议解析模块),规则检测(规则模块),做不同的防御动作(动作模块),并将防御过程(日志模块)记录下来。所以本文中的 WAF 的实现由五个模块(配置模块、协议解析模块、规则模块、动作模块、错误处理模块)组成。 原版本主要的功能如下: 1.防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 2.防止svn/备份之类文件泄漏 3.防止ApacheBench之类压力测试工具的攻击 4.屏蔽常见的扫描黑客工具,扫描器 5.屏蔽异常的网络请求 6.屏蔽图片附件类目录php执行权限 7.防止webshell上传 二次改造后的规则拦截功能: 1.支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。 2.支持URL白名单,将不需要过滤的URL进行定义。 3.支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 4.支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。 5.支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 6.支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。 7.支持URL参数过滤,原理同上。 8.支持日志记录,将所有拒绝的操作,记录到日志中去。

KeyError 'MACOSX_DEPLOYMENT_TARGET' in waf on kubuntu

半世苍凉 提交于 2019-12-25 00:58:06
问题 I'm trying to install pycairo on kubuntu 13.04, and it's giving me an error complaining about MACOSX_DEPLOYMENT_TARGET: (virtualenv-3)naught101@naught101-chronos:/tmp/pycairo-1.10.0$ python waf configure ./options() Setting top to : /tmp/pycairo-1.10.0 Setting out to : /tmp/pycairo-1.10.0/build_directory ./configure() Checking for 'gcc' (c compiler) : ok Checking for program python : /home/naught101/.virtualenvs/virtualenv-3/bin/python Checking for python version : (3, 3, 2, 'final', 0)

Specify different compilers in waf

蹲街弑〆低调 提交于 2019-12-23 01:05:08
问题 I want to have several build configurations (meaning different C compilers) configured in waf . I managed to do it that way, but it looks a bit smelly to me. How do I do it currently: I make different envs, and reset the c_compiler list before loading the next compiler, and at the end I reset it to all compilers. def configure(cnf): _os = Utils.unversioned_sys_platform() restore_c_compilers = c_compiler[_os] # load gcc c_compiler[_os] = ['gcc'] conf.setenv('gcc') conf.load('compiler_c') #

文件上传漏洞(绕过姿势)

旧街凉风 提交于 2019-12-22 01:28:01
  文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用。此篇文章主要分三部分:总结一些常见的上传文件校验方式,以及绕过校验的各种姿势,最后对此漏洞提几点防护建议。(根据个人经验总结,欢迎补充纠错~~) 文件上传校验姿势 客户端javascript校验(一般只校验后缀名) 服务端校验 文件头content-type字段校验(image/gif) 文件内容头校验(GIF89a) 后缀名黑名单校验 后缀名白名单校验 自定义正则校验 WAF设备校验(根据不同的WAF产品而定) 1.客户端校验   一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式。   判断方式:在浏览加载文件,但还未点击上传按钮时便弹出对话框,内容如:只允许上传.jpg/.jpeg/.png后缀名的文件,而此时并没有发送数据包。 2.服务端校验 2.1 content-type字段校验   这里以PHP代码为例,模拟web服务器端的校验代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?php if( $_FILES[ 'userfile'][ 'type']

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

坚强是说给别人听的谎言 提交于 2019-12-21 03:46:28
问题 It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. Closed 6 years ago . 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

见招拆招:绕过WAF继续SQL注入常用方法

瘦欲@ 提交于 2019-12-19 04:12:11
Web Hacker总是生存在与WAF的不断抗争之中的,厂商不断过滤,Hacker不断绕过。WAF bypass是一个永恒的话题,不少基友也总结了很多奇技怪招。那今天我在这里做个小小的扫盲吧。先来说说WAF bypass是啥。 WAF呢,简单说,它是一个Web应用程序防火墙,其功能呢是用于过滤某些恶意请求与某些关键字。WAF仅仅是一个工具,帮助你防护网站来的。但是如果你代码写得特别渣渣,别说WAF帮不了你,就连wefgod都帮不了你…所以不能天真的以为用上WAF你的网站就百毒不侵了。开始正题—- 1>注释符 相信很多朋友都知道SQL的注释符吧,这算是绕WAF用的最广泛的了。它们允许我们绕过很多Web应用程序防火墙和限制,我们可以注释掉一些sql语句,然后让其只执行攻击语句而达到入侵目的。 常用注释符: //, -- , /**/, #, --+, -- -, ;%00 2>情况改变 然而,以前审计的一些开源程序中,有些厂商的过滤很不严谨,一些是采用黑名单方式过滤,但是有些只过滤了小写形式,然而在传参的时候并没有将接收参数转换为小写进行匹配。针对这种情况,我们很简单就能绕过。 比如它的过滤语句是: /union\sselect/g 那么我们就可以这样构造: id=1+UnIoN/**/SeLeCT 3>内联注释 有些WAF的过滤关键词像/union\sselect/g,就比如上面说的

深入了解SQL注入绕过waf和过滤机制

匆匆过客 提交于 2019-12-19 02:32:39
深入了解SQL注入绕过waf和过滤机制 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 0x05 本文小结 0x06 参考资料 0x00 前言 笔者前几天在做测试时输入攻击向量后页面发生了重定向甚至异常输入也是重定向怀疑其中有WAF在作怪。之前对WAF接触比较少纯粹是新手趁此科普了一下并查阅了一些绕过WAF的方法。所找到的资料中主要分为两类SQL注入和XSS绕过笔者SQL注入同样是新手因此集中了不少资料并进行整理和总结因此有本文的产生。 目前能看到的绕过WAF的SQL注入技术大致有八、九种但是完整的、详细的内容却分布在互联网各个角落。另外我们谈绕过WAF其实也是谈如何绕过过滤机制如果在讨论bypass技术的时候明确一下现有的一些filter的实现及其evasion对于笔者这样的初学者来说是不是更好还有就是如果在文章后面可以提供一些测试向量提供思路和参考虽然内容看起来很杂但是也会比较方便呢?抱着这些想法尽管前人的分享已经比较充分了还是壮着胆自己进行总结这样更能适应自己的需求也可能更加适合一些朋友的需求。 本文所讨论的技术大都几年以前就已经存在了不能保证每种方法在实际测试中都能生效另外为简便起见笔者对形如http://www.site.com的URL约定为z.com。