熊海CMS_1.0 代码审计

0x01 使用seay源代码审计系统进行审计

 扫描到了很多个可疑漏洞,不过工具都有一定的误报,下面我们就逐个进行验证

0x02 /index.php文件包含漏洞 

 查看源代码,我们发现程序通过GET方法接收文件名,并且只做了一个addslashes(返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线()与 NUL(NULL 字符)。),然后直接放在了include函数里面了,相当于引用 files/xxxxx.php 文件,这里如果我们通过其他方法在根目录上传一个脚本就可以直接包含:

 /admin/index.php中的文件包含也是类似

 0x03 /admin/files/login.php SQL注入漏洞

查看login.php的源代码

 直接通过POST方式接收user、password,并且没有做任何过滤。然后先查询用户名,如果用户名存在,就将将POST得到的密码进行md5,然后和数据库中对应的密码进行比较。这样的话,虽然我们可以通过万能密码admin' or '1'='1对用户名绕过,但是密码没有方法绕过,万能密码的方法就不可行了。 不过由于没有做任何过滤,我们还是可以执行SQL语句的

比如:

admin' or sleep(10) #

这样我们就可以进行布尔盲注

经过测试,发现也存在报错注入

admin' or updatexml(1,concat(0x7e,(select @@version),0x7e),1); #

0x04 /admin/files/editcolumn.php、editlink.php、editsoft.php...... SQL注入漏洞

都是类似的漏洞。POST方式接收了参数之后,没有进行然后过滤,然后直接执行了UPDATE/DELETE/INSERT语句,我们可以直接进行报错注入

payload:

' or updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '

 0x05 /inc/checklogin.php 越权漏洞

inc目录下的都是配置文件,很重要,要每一个文件都仔细查看。

checklogin.php

 接收cookie中user的内容,如果user字段为空,则跳到登录页面

这样的话,我们打开一个后台页面,抓包,设置cookie中的user字段为admin会怎么样呢?

 发现我们直接进入了后台,并且只要保证每次cookie中user参数都有值就可以访问后台的所有内容,因此存在垂直越权漏洞。

0x06 CSRF漏洞

这里的内容管理中有一个删除文章的功能,没有做csrf token、验证码等防护。

点击后抓包得到url

http://192.168.219.132/admin/?r=wzlist&delete=15

 退出管理员账号,根据之前的越权漏洞分析,这里应该会转跳到login的界面,试一下,果然如此。

然后重新登陆管理员后点击该url,真的删除了该文章

 

0x07 /files/contact.php 存储型XSS漏洞

 前台留言板没有进行XSS过滤,后台管理界面也没有进行过滤,因此产生了存储型XSS,而且有针对性的攻击管理员,属于比较危险的一类XSS了

原文地址:https://www.cnblogs.com/vege/p/13453283.html