熊海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了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义