[代码审计]eml企业通讯录管理系统v5.0 存在sql注入
0x00 前言
上周五的时候想练练手,随便找了个系统下载下来看看。
然后发现还有VIP版本,但是VIP要钱,看了一下演示站,貌似也没有什么改变,多了个导入功能?没细看。
搜了一下发现这个系统,压根就没有过滤。。注入点一堆
0x01 后台登录绕过
这个系统很简单,就一个后台,登录不进去都是废话
系统用了MVP模式,用的是smarty模板
没有安装页面,数据库自己创建好,把压缩包的sql文件导进去,然后就可以正常使用了。
这么说这个系统就两个前台页面了,一个注册页面,一个登陆页面。
先看注册页面。
看看代码逻辑
没有任何过滤,就直接把用户名带进数据库了。
用burpsuite看一下,报错了
sqlmap是直接能跑的。
然后就是登录页面了,没有任何过滤,而且这里用了fetchrow(),判断有没有数据返回就进去了。
这里就是我们常说的万能密码了,同样可直接跑sqlmap。
那么直接万能密码登录后台,数据库都懒的跑了,登录成功了。
这个系统进入了后台就没有什么数据可言了。
正如前言所说的,没有任何过滤,有sql语句的地方几乎都是存在注入的。
不一一列举出来了。
0x02 紧急更新
今天再到官网看了一下,发现出来个紧急更新。
把包下载下来,用beyond compare对比看了一下。发现几乎所有的地方都进行了过滤。
那么这个过滤函数_RunMagicQuotes是怎么过滤的呢?
先看一下有没有开启魔术引号,但这个在php 5.4就已经移除了.如果没有开启的话,就用addslashes来过滤。
那么我们之前的注册,登录页面的注入是已经被过滤掉了,看来是周末有人给作者发邮件了。。。
仔细找了一下,发现没办法注入了。
由于是session,没有cookie,也不存在伪造cookie一说。
那么也只能到此为止了。
0x03 总结
多写写文章,就算这种很简单的,写写也好。
一个系统越简单,该补的地方补了,攻击点少了,安全也相对上去了。