waf

绕过waf

人盡茶涼 提交于 2020-02-12 12:21:35
WAF:有硬件和软件类型。 常见的软WAF,常见:安全狗、云锁、云盾、护卫神。 SQL注入的绕过: WAF核心机制就是正则匹配。 通过正则匹配,如果符合规则,就拦截。 比如sql注入中and 1=1被拦截。 可尝试大小写绕过:And 1=1 编码绕过: 因为WAF 获取数据后不会解码。如&=>%26 通过不同进制绕过:例如16进制的0x32相当于十进制的2。 铭记:安全和用户体验都是需要平衡的,特别是针对WAF而言。 WAF判断的几种方法: 1.SQLmap 使用SQLmap中自带的WAF识别模块可以识别出WAF的种类,但是如果所安装的WAF没有明显特征,SQLmap就只能识别出类型是Generic 在SQLmap中输入一下命令: sqlmap.py -u "http://xxx.com" --identify-waf --batch 一般情况下就可以被扫描出waf的种类。 2.手工判断 这个也比较简单,直接在相应网站的url上后面加上最基础的测试语句,比如union select 1,2,3%23,并且放在一个不存在的参数名中,若触发了WAF的防护,所以网站存在WAF. 内联注释:是MYSQL为了保持与其他数据兼容,将MYSQL中特有的语句放在/!…*/中,这些语句在不兼容的数据库中不执行,而在MYSQL自身却能识别、执行。 /*!50001*/表示数据库版本>=5.00

某waf实战SQL注入绕过fuzz过程

感情迁移 提交于 2020-02-11 12:08:55
QQ交流群:876554035 #01 环境简介 服务器:windows2008 R2 软件:phpstudy20180211 php 5.4.45 mysql 5.5.53 某锁win_3.1.18.13服务端版本 #02 Fuzz过程 以基于union注入为例 fuzz order by 过程如下: ?id=1’ order --+ 不拦截 ?id=1’ order by --+ 拦截 nna那应该是waf匹配了order+by ?id=1’ order / !by / --+ 拦截 ?id=1’ order / !60000by / 1 --+ 不拦截,但是报错 翻译过来:您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以在第1行的’1-'LIMIT 0,1’附近使用正确的语法 那么猜测是要低于mysql的版本吗?(我在fuzz某狗的时候里面的数字要高于50000以上,可能某锁要低于mysql版本,便随便试了个200000) ?id=1’ order / !20000by / 3 --+ 不拦截,且执行成功 ?id=1’ / !20000order /by 3–+ 不拦截,且执行成功 ?id=1’ / !20000order /by 4–+ 用过狗payload去试试,首先替换空格 ?id=1’ order/**/by --+ 拦截 ?id=1’ order

代码审计 | [De1CTF 2019]SSRF Me

你。 提交于 2020-02-09 23:07:44
[De1CTF 2019]SSRF Me 前言 以为是flask模板注入,但是看了其他师傅的writeup后发现是一个代码审计的流程,那就安心审计代码吧。 提示flag在/flag.txt中 整理后代码 #! /usr/bin/env python #encoding=utf-8 from flask import Flask from flask import request import socket import hashlib import urllib import sys import os import json reload ( sys ) sys . setdefaultencoding ( 'latin1' ) app = Flask ( __name__ ) secert_key = os . urandom ( 16 ) class Task : def __init__ ( self , action , param , sign , ip ) : self . action = action self . param = param self . sign = sign self . sandbox = md5 ( ip ) if ( not os . path . exists ( self . sandbox ) ) : #SandBox For

WAF(Web应用防火墙)

最后都变了- 提交于 2020-02-03 14:44:21
WAF Web Application Firewall的缩写为“WAF”,中文意思“Web应用防火墙”,也称“网站应用级入侵防御系统”。WAF是集web防护、网页保护、负载均衡、应用交付于一体的web整体安全防护设备。 WAF部署在web服务器前面,串行接入,主要技术是对入侵的检测能力,尤其是对Web服务器入侵的检测能力。常见的实现形式包括代理服务、特征识别、算法识别、模式识别。   代理服务:本身是一种安全网关,基于会话的双向代理,中断了用户与服务器的直接连接,适用于各种加密协议,对DDOS攻击可以抑制,对非预料的“特别”行为也有所抑制。   特征识别:识别出入侵者是防护它的前提。特征是攻击者的“指纹”,如溢出时的shellcode,SQL注入中常见的“真表达(1=1)”。   算法识别:对SQL注入、DDOS、XSS等相应算法进行语义识别。   模式匹配:IDS中古老的技术, 把攻击行为归纳成一定模式,匹配后能确定是入侵行为。协议模式是其中简单的,是按标准协议的规程来定义模式,行为模式就复杂一些。 WAF从形态上可分为硬件WAF、WAF软件和云WAF。   硬件WAF : 通常串行部署在Web服务器前端,用于检测、阻断异常流量。通过代理技术代理来自外部的流量,并对请求包进行解析,通过安全规则库的攻击规则进行匹配,如成功匹配规则库中的规则,则识别为异常并进行请求阻断。  

C++11 Polyfills

坚强是说给别人听的谎言 提交于 2020-02-02 07:13:05
问题 I am starting a new project that will be targeting MSVC , GCC (latest) , GCC 4.3 ARM and more. The waf build system we have built has C++11 feature detection of the compiler. I now have preprocessor macros for all features in compiler that I am targeting for C++11 , for example #ifdef WAF_FEATURE_CXX_STRONGLY_TYPED_ENUMS . I can therefore compile different code for what the compiler supports. As GCC nearly supports it all be MSVC isn't even close (even with MSVC 11) This got me thinking about

Nix: Building `waf` produces a file, but I seem to need a folder

不问归期 提交于 2020-01-24 19:57:28
问题 I've cloned the nixpkgs repo. From the top of that repo, I can run nix-build -A waf to build waf , and nix-env -f . -iA waf to make waf part of my user environment. Neither complains -- but afterward I am still unable to call waf : [jeff@jbb-dell:~/nix/nixpkgs]$ waf waf: command not found [jeff@jbb-dell:~/nix/nixpkgs]$ Most packages, when I build them using nix-build -A , produce a symlink called result that goes to a folder containing the executable in question. Strangely, though, in waf 's

CMake or Waf for D project

江枫思渺然 提交于 2020-01-22 17:34:46
问题 We are looking for adequate build tool for a desktop GUI application to be written in D (using Qt toolkit), consisting of several native libraries, using 3rd party C-lib(s). It has to build on Linux (native development) and Mac as well on Windows. We might adopt Code::Blocks as IDE. Waf already has support for D language, while CMake is just receiving it cmaked2. CMake uses special language, while Waf is pure Python...Otoh, CMake, via CPack, can produce packages in several formats as well as

sql注入内联注释过waf

折月煮酒 提交于 2020-01-17 13:03:51
sql注入内联注释过waf 正常输入: 1 然后尝试: -1 order by 被拦截 然后单独尝试 order 或者 by 单独的order或者by并没有被拦截,内联注释干扰黑名单检测 -1/**/order/**/by 3 只是简单的 /**/ 也被过滤了,那么就在 /**/ 中间加干扰 用 -1 and 1=1 来进行测试,burp抓包,然后在被过滤的关键字前后加注释,注释中间用§ §来进行爆破定点,配置如下 字符集设置一些字符数字字母随机组合干扰 然后进行爆破 响应没有显示waf的为爆破成功的结果 此处采用payload1来进行内联注释的干扰 /*%!"/*/ -1/*%!"/*/and/*%!"/*/1=1 由此看出,此时and并没有被waf黑名单检测到 然后进行order by查询 -1/*%!"/*/order/*%!"/*/by 3 -1/*%!"/*/order/*%!"/*/by 4 由此可得,查询3项数据 然后union select查询 -1/*%!"/*/union/*%!"/*/select 1,2,3 2和3处可以查询自己想要的信息 查database:此处database单个单词没被加黑名单,database()被加黑名单了,那就在database和()中间加注释: -1/*%!"/*/union/*%!"/*/select+1,/*%!"/*

How to use multiple compilers with waf (Python)

*爱你&永不变心* 提交于 2020-01-15 10:24:12
问题 I can't figure out how to use two different compilers in the same wscript. Nothing in the Waf book shows this clearly. I tried something among those lines : def configure(ctx): ctx.setenv('compiler1') ctx.env.CC = '/some/compiler' ctx.load('compiler_c') ctx.setenv('compiler2') ctx.env.CC = '/some/other/compiler' ctx.load('compiler_c') This does not appear to work. Waf does not find any compiler when I do it that way. I have only managed to compile using two different compilers by specifying

云WAF,带来了安全,也带来了风险!

爷,独闯天下 提交于 2020-01-15 01:45:28
出于多种原因,你可能要给自己的网站上WAF。 WAF有三种形态:硬件、软件、云。 硬件WAF,一个字:贵! 软件WAF,需要自己部署。 云WAF,貌似最为简单方便。 综合考虑之下,很多中小企业,选择使用云WAF为自己的网站提供安全防护。 但是,云WAF带来安全的同时,也带来了风险隐患。 何来风险? 本文不对现实中云WAF风险是否发生下定论,仅从技术角度探讨风险存在的可能性。 风险在此! 实例演示: 首先,部署一款软件WAF,模拟为云WAF。 某WAF具备云形态,本是软件WAF,但可以实现云WAF类似效果: 部署,并启动调试模式。 1、敏感信息泄露风险 经WAF保护后,所有数据都会经过WAF的,包括帐号密码之类的保密敏感信息: 只要WAF愿意,可以截获任何内容,比用上图中输入的帐号密码。 2、内容安全风险 原理以上类似,WAF能对提交的内容完全掌握,也能对返回的内容尽数获取: 如果是个人信息、私密数据等爬虫感兴趣的内容,WAF完全可以充当一回爬虫。 还有哪些风险? 任何不想被三方获取的内容。 是不是真的风险? 其实,不管是什么形态的WAF,都可以做到以上操作。 不同之处是:WAF是在自己掌控中?还是在他人掌控中? 如果是硬件WAF、软件WAF,是自己部署的、自己操控的,这是相对安全的。 如果是云WAF,是第三方的、是他人掌控之下,这种风险是显而易见的。 当然