序言
在cnvd随意找到了一个漏洞列表里有这个cms,所以就下下来看了看,而且发现该cms貌似很老了,适合我这种菜逼,并且看了一下网上没有相关的审计(应该是太简单了)所以才审计一下(就当是我自己的处女作吧),提升自己。
主目录

该cms目录一目了然,并且非常简单。
重装漏洞
该cms的index.php文件里,只对是否已经安装cms做了简单的判断

所以即使在安装后,也可以重新访问安装目录再次安装


XSS漏洞大集合
- 该cms的
/admin/add_page.php下有许多echo函数中包括变量的错误,在插入数据库的过程中,该cms的过滤函数只会过滤sql注入

对xss并没有做任何过滤,所以可以任意插入。


page Position如果不填写数字会报错

- 与此同时在
admin/add_sidebar.php下也有相同的漏洞,所以可以根据同样的方式来触发xss漏洞

任意文件删除
在admin/delete_image.php路径下,存在以下函数

在根目录下创建test文件夹,并新建一个1.txt


删除任意文件成功

任意文件上传
在admin/manage_uploads.php中,该cms并没有对上传的文件做任何校验,可以上传任何文件。

所以上传了一个php码上去,并且测试可以连接shell。

同时在/admin/addons/imagelibrary/insert_image.php下找到了一个图片编辑器,该编辑器也能自由上传图片,也可以上传php。

sql注入漏洞
- 在
/admin/edit_user.php文件下
有以下代码段

id参数由get方式的user参数接受,只要post的password变量为空时,便会进入else判断,将id直接带去sql语句,由此实现数字型注入。
通过分析可以发现该功能段应该对应的是修改资料功能,随即创建一个账户,选择修改密码

通过抓包,修改包的get字段为以下payload
1 | ?user=9%20and%20updatexml(1,concat(0x7e,(select%20database()),0x7e),1) |

追踪函数可以发现已经执行了我们的恶意语句


- 在
admin/functions/functions.php下
在该目录下,存在selected_page和get_page_for_editing两个函数


可以发现是没有进行过滤直接进行语句执行的,于是查询selected_page函数什么时候被调用过,发现在/admin/add_post.php里面调用过。

于是我们可以构建payload
1 | http://localhost:8096/admin/add_post.php?page=1%20and%20updatexml(1,concat(0x12,(select%20database()),0x12),1)%20--+ |

成功爆出数据库名

总结
总结就是太菜了,sql注入漏洞因为是看到cnvd上有相关链接才去看了一下发生错误的代码,但是也发现seay扫不出sql函数里面有变量的这种可能的漏洞。还有就是缺少框架的训练,会在后面继续训练的。