某商城系统漏洞分析

前言

由于公司公众号要发文章,作为一个菜鸡确实不知道写什么,所以就从源码网随便下载了一个cms的源码来练习一下代码审计,下载的时候看日期以为是刚出炉的cms,后来发现这个版本出来有几个月了,不过网上没有他的漏洞分析文章,所以决定就它了。

0x01 cms目录大概结构

首先看一下这个cms的目录结构

0x02 后台修改支付方式存储型xss

1.漏洞位置:第24行

先看一下哪里来的?在文件第45行,使用函数定义了全局变量注册,第二个参数为,意思是添加前缀(这个参数并不会造成变量覆盖)

跟到函数,移除反斜杠

跟到函数,移除字符串左右空格

所以就是POST过去的

2.漏洞复现

0x03 后台广告管理模块参数注入

这个cms在全局公共文件有防止sql注入的函数,所以肯定要找没用这个函数过滤的地方,看了好久,前台都被过滤掉了(其实前台商品名可以造成二次注入,但是我觉得管理员不会那么脑残在商品名后加个单引号,所以这里就不说了),找到的都是后台sql注入,很多,这里就看一处就行,先看一下函数

1.漏洞分析

漏洞文件在第101行

跟到函数

所以直接拼接进sql语句,而通过get传递过来,用户可控,最终造成sql注入

0x04 后台敏感信息泄露

漏洞文件:

0x05 url任意跳转漏洞

看到这个函数的时候我感觉有问题,但是不确定,动手测试了之后才发现真的可以跳转,虽然这里不知道能拿来干嘛(自己跳着玩)

漏洞文件:第218行

当!=进入else逻辑,当为false时,如果中不存在字符串,那么就是,如果存在就为的值,那么只要referer中存在就可以实现url任意跳转了

最后发现在函数和函数调用

漏洞触发点很多,任意挑选一处

第104行

漏洞复现:

由于在域名后面有个,比如,那么他的就是,因此这种跳转方式就行不通了,但是可以用截断啊,把后面的当成参数就可以了,使用火狐自带插件修改referer

然后在批量转移商品时触发,可以看到已经跳转到百度了

0x06 session会话固定漏洞

之前写过一篇自己都不想看第二次的session会话固定的文章,再加上最近碰到的session会话固定确实多,所以很喜欢盯着session的问题哈哈哈,测试的时候直接黑盒测试,然后再看得源码

1.漏洞分析

漏洞位置:第12行管理员登录

登录之后没有重新生成sessionid,造成session会话固定漏洞

2.漏洞复现:

攻击者的sessionid

攻击者定制sessionid让受害者登陆

受害者登录之后,攻击者刷新自己的页面,已经进入后台

0x07 任意文件删除+代码执行

代码执行这个漏洞我拿到cms就先看了一下安装文件,因为1.1版本有一个前台漏洞就是通过文件安装完之后没有,再加上代码执行就,不过这个版本漏洞已经补掉了,但是后来发现竟然还有任意文件删除,不得不说安全真的是巧合多了就不巧合.

1.漏洞分析:

漏洞文件:第250行

没做任何限制,只要是文件就删除,最后在后台删除模板的时候触发,通过get传递,是用户可控的

跟到函数

漏洞复现:

提交数据包,即可成功删除文件

这里说一下,一开始测试过程中删除模板一直提示我跨站操作,我就很纳闷,我登陆了后台为啥还提示跨站,后来发现验证token的时候是通过接受post或者get过来的token,且必须与session存的token一样,也不能为空,但是如果删除商品信息就能正常删除,所以抓包看了一下,能正常删除商品是因为数据包中自动通过get传过去了token值,所以能通过函数验证,那么只要先在删除商品处抓包先得到token值然后再删除模板就可以任意删除文件了,那么我们就可以删除安装文件重装系统,然而在安装文件里边,有了不得的事情(摊手)

在文件第25行,没经过任何过滤,直接将post接收过来的数据写入数据库配置文件,造成任意代码执行漏洞,开不开心?惊不惊喜?

漏洞复现:

安装系统时在数据库前缀那里提交

总结

这个cms审计起来并不难,可以说是非常新手向了,但是由于第一次审计cms,所以还是花了不少时间,感觉这个cms应该还有其他问题,但是快到我发文章了,时间耗不起,就先这样吧,果然一个简单一点的cms审计起来是有助于提升信心的QAQ

佛系二维码

千千万万的公众号中

能被你识别都是缘分

硬土壳信息安全

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171228G0OIU300?refer=cp_1026

相关快讯

扫码关注云+社区