
本文共 2728 字,大约阅读时间需要 9 分钟。
渗透测试中的Payload构造:不同安全级别的分析
在渗透测试中,Payload的构造是攻击者获取权限的重要环节。不同的安全级别对Payload的处理方式不同,这需要攻击者根据目标环境优化自己的Payload策略。本文将从低、 mediumsreamsAdvanced安全级别对Payload的限制和绕过方法进行分析。
Low Security Level(低安全级别)
在低安全级别的系统中,攻击者通常面临较少的阻碍。通过观察,可以看到系统对传入命令的处理严重不足。例如,
{ $cmd}"; } ?>
可以看到,对于传入的命令没有任何过滤,直接上payload。攻击者可以通过以下方式构造Payload:
1|ls
:通过管道将ls
命令执行1||ls
:在ls
命令前加入条件判断1&ls
:在ls
命令后加入背景任务此外,在Linux系统中,&
表示后台执行,&&
表示依赖性执行,|
表示管道传输。
Medium Security Level(中安全级别)
中安全级别的系统通常采用简单的字符过滤机制。例如,
'', ';' => '', ); // Remove any of the charactars in the array (blacklist). $target = str_replace( array_keys( $substitutions ), $substitutions, $target ); // Determine OS and execute the ping command. if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ); } // Feedback for the end user echo "{ $cmd}"; } ?>
中安全级别的主要改进是在于将&&
和;
等符号过滤掉,但仍然可以通过其他方式绕过防护。例如,继续使用1|ls
作为Payload。
注意:中安全级别的过滤并没有完全阻止攻击者的常用方法,攻击者只需找到被遗漏的符号或方式即可。
High Security Level(高安全级别)
高安全级别的系统通常采取更全面地字符过滤措施。例如,
'', ';' => '', '| ' => '', '-' => '', '$' => '', '(' => '', ')' => '', '`' => '', '||' => '', ); // Remove any of the charactars in the array (blacklist). $target = str_replace( array_keys( $substitutions ), $substitutions, $target ); // Determine OS and execute the ping command. if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ); } // Feedback for the end user echo "{ $cmd}"; } ?>
在这一关卡中,防护机制显著增强,字符如&
、|
、-
等都被过滤。然而,某些符号可能未被完全处理,例如|
后面有一个空格,导致转义不完全。例如,1|ls
可能仍然有效。
注意:高安全级别的过滤措施需要攻击者更仔细地构造Payload,确定哪些字符仍然可用。
Impossible Security Level(不可能安全级别)
在不可能安全级别的系统中,防护机制进一步完善。例如,
{ $cmd}"; } else { // Ops. Let the user name theres a mistake echo 'ERROR: You have entered an invalid IP.'; } } // Generate Anti-CSRF token generateSessionToken(); ?>
在这一级别,系统不仅过滤了常见的字符,还对 payload 进行了格式验证。例如,IP地址会被拆分成4个八位的小端,验证每个部分是否为整数。如果验证通过,IP才会被恢复并执行ping命令,否则会提示错误信息。
注意:不可能安全级别通过IP验证机制,有效终止了大量恶意命令,因为只有合法的IP才会被执行,而攻击者难以伪造有效的IP格式。
总结
从低到高安全级别,系统对Payload的过滤和防护措施逐步加强。对于攻击者而言,不同安全级别需要采用不同的Payload构造方法。
- 低安全级别:直接使用常见的Payload如
1|ls
,完成基本的命令执行。 - 中安全级别:仍然可以使用类似的Payload方法,绕过基本的字符过滤。
- 高安全级别:需要更谨慎地构造Payload,确保使用未被过滤的字符组合。
- 不可能安全级别:通过IP验证和命令执行控制,有效终止了大量常见的攻击方式。
攻击者应根据目标系统的安全级别选择合适的Payload构造方法,而非一味地使用固定的方法。从 IPv4 IP验证 mechanism 看,可以看到高安全级别的系统虽然增加了防护,但并不一定能够完全阻止所有攻击者能够有效利用漏洞。
发表评论
最新留言
关于作者
