【DVWA1.10】Command Injection通关笔记
发布日期:2021-05-25 11:46:40 浏览次数:30 分类:精选文章

本文共 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 看,可以看到高安全级别的系统虽然增加了防护,但并不一定能够完全阻止所有攻击者能够有效利用漏洞。

    上一篇:php.ini常见配置
    下一篇:【DVWA1.10】Brute Force通关笔记

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年04月22日 13时41分58秒