bluecms v1.6 代码审计

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

 

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

0x02 /ad_js.php SQL注入漏洞

 

 查看源码,我们发现程序通过GET方法接收ad_id的值,然后通过trim函数去除首尾的空白字符,并没有做其他操作,直接代入了SQL语句。

追踪函数getone(),代码在mysql.class.php中,直接执行了sql语句。

 

 因此,我们直接可以通过联合查询来进行注入:

 

 0x03 /user.php 文件包含漏洞

 

 查看源码,我们发现当$act=='pay'时,将执行include 'include/payment/'.$_POST['pay']."/index.php";  

并且$_POST['pay']的值没有经过处理。

这样我们就可以构造payload,使其包含恶意文件,比如在phpstudy根目录下新建一个index.php文件

 

通过目录穿越,即可包含该文件:

 

 当然,也可以利用文件路径长度截断(php版本小于等于5.2) ,如用字符.或者/.或者./来截断,造成文件包含漏洞,这样可以包含任意文件。

系统文件路径长度限制:

Windows 259个字节

Linux 4096个字节

0x04 /user.php SQL注入漏洞

 

 这个注入和上边的ad_js.php sql注入原理和操作都相差不大,就不对其分析了。

0x05 /user.php XSS漏洞

 

 发现email是直接post进数据库的,未对其做任何过滤从而引起的xss,但由于其他的,例如用户名有长度验证所以不能xss.

posted @   yokan  阅读(974)  评论(0编辑  收藏  举报
编辑推荐:
· .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 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示