标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-1241] 作者: ecawen 发表于: [2018-01-02]
本文共 [353] 位读者顶过
Bluecms是一个地方网站的开源的cms,在很多地方性的网站上应用还是不少的,今天在逛seebug的时候看到了一个漏洞的公告。 [出自:jiwo.org] 有公告但是这里还没有详情,很好奇我就去下载了一套源码看了看,好像这个cms好久没有更新了,下载了一套目前看来最新的。 既然提到了这个文件,那我们直接看这个文件是做什么用的。我们访问这个页面可以看到这个页面就是一个留言功能,往往这种地方注入最常见。 然后我们看一下这个留言功能对应的数据库中的表,一般情况下看到功能对应的表之后再去看注入点更加有针对性。 这里就是这几个点,这里大体上看了一遍,发现前四个点不太容易注入,反而这个Ip字段可能有点问题。我们直接看一下这个点。 首先这个界面代码如下: 这里可以看到首先加载了comment.inc.php这个文件,我们看一下这个文件。 然后在这个文件中又加载了common.fun.php这个文件,我们打开这个文件可以看到,这个文件中定义了一系列的公共函数,如过滤函数。 然后我们往下看,这里看到了获取客户端Ip的函数也是在这里定义的。 这里我们可以看到没有做任何的处理,现在我们回到有问题的文件中。 这里是将留言内容插入到数据库的操作,这里我们可以看到,这个参数未经过滤直接插入到了数据库中,我们在提交数据的时候可以使用client_ip这个字段来伪造一个恶意字符串,执行操作之后可以看到在数据库中是可以插入的: 然后我们去访问这个留言页面的时候就会执行以下的操作: 这里就会查询A表的所有字段,然后这里就会将我们gest_book表中的所有字段查询出来,然后在这里进行sql拼接的时候字段中的#号就将这条sql之后的所有字符注释掉了,那么最后执行的sql就是SELECT ’1′,’0′,’2′,’11′,’127.0.0.1′,@@datadir 然后将查询到的结果显示到了页面上。 最近看到了很多这个地方出现注入的cms,开发者只注重了对页面上存在的输入点的过滤,往往会忽略了这种系统自带参数的过滤。 根据最近一段时间的测试,总结一下这些注入常在的位置点,之前那种id注入或者是万能密码什么的已经失效了。只能开辟新的入口:
|