网络安全 频道

安全报告:解析Discuz X1.5 0Day漏洞

  显然在上面的参数获取和传递过程中,没有对变量进行任何过滤,因此攻击者可以通过对mch_vno变量进行恶意构造,从而控制$orderid,最后导致在数据库查询处产生注入漏洞。

  下面来进行有效的恶意攻击代码构造:

  由于Discuz对提交的参数会有个校验值,因此我们需要重新计算自己的校验值:

  $resHandler->isTenpaySign()

Discuz X1.5 0Day研究报告

  为了让程序按照我们的流程执行,在这里我们需要对这几个变量赋值:

  attach=tenpay /*包含漏洞所在文件*/
  retcode
=0 /*使$notifydata['validator']=1*/
  mch_vno
=$sql_exp /*恶意构造,直接带入数据库查询的语句*/

  因此我们自己构造的校验值计算如下:

  sign= md5(“key=&attach=tenpay&mch_vno=$sql_exp&retcode=0”),
2
相关文章