ASP代码审计之代码执行漏洞分析

CracerCracer 2016-1-5 代码审计 1,344 4 4

代码执行漏洞分析

 

概述:许多现代编程语言都允许动态解析源代码指令。 如果程序员需要由用户提供的指令对数据操作,这种情况下可以应用这种功能。当然,我们更愿意利用底层语言构造,而不是通过执行代码来解析用户输入。 由用户提供的指令预期执行一些无害的操作,例如,对当前的用户对象进行简单计算或修改用户对象的状态,等等。然而,如果程序员不够细心,用户指定的操作范围可能会超出程序员最初的设想。

漏洞原理:ASP应用程序中若存在Eval ,Execute ,ExecuteGlobal 函数使用时,要格外注意它们的使用环境,若从外部获取参数,没有经过安全处理 就会造成安全隐患。Eval() 计算表达式的值,并且返回一个结果,Execute() 执行一个或多个指定的语句。多个语句间用冒号(:)隔开 ,ExecuteGlobal() 在全局名字空间中执行一个或多个指定的语句。

漏洞代码:

1
<%=Eval(Request("parma"))%>

 

上述代码用户提交parma的方法有GET,POST,COOKIE三种,攻击者可以精心构造出ASP的小马提交就可以执行,安全隐患相当大,在源码审计的过程中要额外注意它们的使用。

漏洞利用:

 

1

 

 

若攻击者给parma参数值等于VB里的Now()函数,就会把当前的时间输出出来,这里代码用Eval函数执行的,若是Execute 和 ExecuteGlobal函数则不会输出到网页中。

漏洞修复:谨慎使用此三个函数,若需要动态执行,则只让用户输入和本地文件中匹配的字符,若不匹配则不可以执行。

 

 

转载请注明来自Cracer,本文标题:《ASP代码审计之代码执行漏洞分析》

喜欢 (4) 发布评论
4 条回复
加载中...
  1. No.1 1年前 (2016-01-06)
    板凳

    谢楼主分享

  2. 女王 1年前 (2016-01-05)
    椅子

    挺好的

  3. ruler 1年前 (2016-01-05)
    沙发

    😎 前辈你可以录个教程,边说边讲解。给大家分享思路学习学习 😛

    • Cracer
      Cracer 1年前 (2016-01-05)

      你可以报代码审计培训,马上开班了。

发表评论


Top