蛙哥有话说 發表於 2023-7-9 00:00:00

WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具

<h3>
        关于WAF-A-MoLE</h3>
<p>
        WAF-A-MoLE是一款功能强大的基于变异的模糊测试工具,该工具可以帮助广大研究人员对基于ML的Web应用防火墙进行模糊测试。</p>
<p>
        只需提供一条SQL注入查询语句,该工具便能够尝试生成一个可绕过目标WAF的语义不变的变种查询。我们可以使用WAF-A-MoLE来探索解决方案空间,找到目标分类器未发现的危险“盲点”,并且可以使用此工具评估产品的稳健性。</p>
<p>
        <img title="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" alt="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" border="0" height="auto" src="https://zhuji.jb51.net/uploads/img/202305/1b3a92dc0ffb7813340c750ed734b71a.jpg" width="auto"></p>
<h3>
        工具体系架构</h3>
<center>
        <img title="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" alt="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" src="https://zhuji.jb51.net/uploads/img/202305/63b61f8145ad3aa0c083845eca2991a5.jpg">
</center>
<p>
        WAF-A-MoLE可以获取初始Payload并将其插入Payload池中,Payload池将负责管理一个Payload优先级队列。</p>
<p>
        在每次迭代过程中,Payload池的头部会被传递给模糊。在模糊器中,通过应用一个可用的变异操作符,对Payload池进行随机变异。</p>
<h3>
        变异操作</h3>
<p>
        变异操作都是语义保留的,它们利用了SQL语言(在这个版本中是MySQL)的高表达能力。</p>
<p>
        以下是当前版本WAF-A-MoLE中可用的变异操作:</p>
<p>
        <img title="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" alt="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" border="0" height="auto" src="https://zhuji.jb51.net/uploads/img/202305/cceb605c4395ef6c69a6ecec48ba80dc.jpg" width="auto"></p>
<h3>
        工具要求</h3>
<ul>
<li>
                numpy</li>
        <li>
                keras</li>
        <li>
                scikit-learn</li>
        <li>
                joblib</li>
        <li>
                sqlparse</li>
        <li>
                networkx</li>
        <li>
                Click</li>
</ul>
<h3>
        工具下载&amp;安装</h3>
<p>
        广大研究人员可以使用下列命令将该项目源码克隆至本地:</p>
<ol class="dp-xml">
<li class="alt">
                <span><span>git clone https://github.com/AvalZ/WAF-A-MoLE.git </span></span>
</li>
</ol>
<p>
        然后运行下列命令完成依赖组件的安装:</p>
<ol class="dp-xml">
<li class="alt">
                <span><span>pip install -r requirements.txt </span></span>
</li>
</ol>
<h3>
        工具使用</h3>
<p>
        (1) wafamole --help</p>
<ol class="dp-xml">
<li class="alt">
                <span><span>Usage: wafamole  COMMAND ... </span></span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>Options: </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  --help  Show this message and exit. </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>Commands: </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  evade  Launch WAF-A-MoLE against a target classifier. </span>
</li>
</ol>
<p>
        (2) wafamole evade --help</p>
<ol class="dp-xml">
<li class="alt">
                <span><span>Usage: wafamole evade  MODEL_PATH PAYLOAD </span></span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  Launch WAF-A-MoLE against a target classifier. </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>Options: </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  -T, --model-type TEXT     Type of classifier to load </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  -t, --timeout INTEGER     Timeout when evading the model </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  -r, --max-rounds INTEGER  Maximum number of fuzzing rounds </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  -s, --round-size INTEGER  Fuzzing step size for each round (parallel fuzzing </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>                            steps) </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  --threshold FLOAT         Classification threshold of the target WAF  </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  --random-engine TEXT      Use random transformations instead of evolution </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>                            engine. Set the number of trials </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  --output-path TEXT        Location were to save the results of the random </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>                            engine. NOT USED WITH REGULAR EVOLUTION ENGINE </span>
</li>
        <li>
                <span> </span>
</li>
        <li class="alt">
                <span>  --help                    Show this message and exit. </span>
</li>
</ol>
<h3>
        性能评估</h3>
<center>
        <img title="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" alt="WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具" src="https://zhuji.jb51.net/uploads/img/202305/a7ab300540c2fa28bf8336dae71b86ab.jpg">
</center>
<h3>
        项目地址</h3>
<p>
        WAF-A-MoLE:【GitHub传送门】</p>
<p>
        原文地址:https://www.freebuf.com/articles/web/285672.html</p>
頁: [1]
查看完整版本: WAF-A-MoLE:针对Web应用防火墙的基于变异的模糊测试工具