服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

dirtysea 发表于 2009-8-15 00:39:46

ewebeditor 2.7版本以下又一个注入

eweb2.7版本以下又一个注入
首先看代码(ewebeditor.asp):
ub InitPara()
    ' 取全屏标志
    sFullScreen = Trim(Request.QueryString("fullscreen"))
    ' 取对应的内容ID
    sContentID = Trim(Request.QueryString("id"))
    If sContentID = "" Then ShowErr "请传入调用参数ID,即隐藏的内容表单项ID!"
    ' 取样式初始值
    sStyleName = Trim(Request.QueryString("style"))
    If sStyleName = "" Then sStyleName = "standard"
    sSql = "select * from ewebeditor_style where s_name='" & sStyleName & "'"
    oRs.Open sSql, oConn, 0, 1
    If Not oRs.Eof Then
      sStyleID = oRs("S_ID")
      sStyleName = oRs("S_Name")
      sStyleDir = oRs("S_Dir")
      sStyleCSS = oRs("S_CSS")
      sStyleUploadDir = oRs("S_UploadDir")
      nStateFlag = oRs("S_StateFlag")
      sDetectFromWord = oRs("S_DetectFromWord")
      sInitMode = oRs("S_InitMode")
      sBaseUrl = oRs("S_BaseUrl")
      sStyleUploadDir = Replace(sStyleUploadDir, "\", "/")
      If Right(sStyleUploadDir, 1) <> "/" Then
            sStyleUploadDir = sStyleUploadDir & "/"
      End If
    Else
      ShowErr "无效的样式Style参数传入,如果要使用默认值,请留空!"
    End If
    oRs.Close
关键的是这两句:
    sStyleName = Trim(Request.QueryString("style"))
    If sStyleName = "" Then sStyleName = "standard"
    sSql = "select * from ewebeditor_style where s_name='" & sStyleName & "'"
很明显的是style参数没有足够的过滤,如果我们自己给这个地方赋值的话,程序会报错的,如图1.

但接下来的一句还是让我们有可乘之机,If sStyleName = "" Then sStyleName = "standard"保留默认的还是会带入语句执行,加个单引号就报错了,如图2.

我试了好几款工具,发现只有pangolin可以注入,啊D只能发现注入不能继续猜解。
eweb默认的管理员表是:ewebeditor_system
这个表下的默认两个列名为:sys_UserName和sys_userpass
需要手动添加
页: [1]
查看完整版本: ewebeditor 2.7版本以下又一个注入