熊海cms_v1.0之代码审计
ok!代码审计(一)已经介绍了环境安装以及审计之前的准备,,,,,
0x01 下载xhcmsv1.0源码
下载熊海cms源码,源码之家等都有,小心软件捆绑!!!下载地址[1] php代码审计需要准备的工具
•phpstudy•phpstrom 用途就不多说了,phpstrom比较好用,方便代码审计下断点以及跟进函数,phpstudy集成web服务以及mysql数据库也比较方便。
0x02 安装xhcms
安装成功提示如下
0x03 phpstrom配置php环境
前面的文章已经有环境安装,不在多介绍,唯一一点注意的就是php版本对应的xdebug要匹配。
0x04 Go
熊海cms已经能够正常访问了,自己手动测试一下,数据交互也都没有问题
成功搭建之后,无从下手的情况下,也可以黑盒测试去找漏洞,无论使用扫描器做漏扫,或者手工黑盒,这些都是可以的,有了代码,审计的方式也有不少。常用的代码审计工具,例如Seay审计工具或者Fortify审计工具都可以,不过Fortify需要lincese,有没有免费的不大清楚,有兴趣的可以找找,或者其它开源的工具,不再详细赘述,,,,
有了源码比较容易查看该cms的架构。
这里我先审计的是前端,简单看了一下sql语句,参数传递使用了函数addslashes,这个函数会产生宽字节注入,手动验证构造payload**?r=content&cid=5%27**
下断点调试F7,url传入的参数“ ’ ”再传入的时候直接被函数addslashes转义为了“ ' ”,查看html的回显
查看其它页面(例如:download.php)查询位置的参数传递,都是函数addslashes处理了传入的参数,可以判定该位置存在宽字节注入,给予报错型的,宽字节注入绕过反斜杠,,,,,,sqlmap验证一下
这里主要审计后台登录框位置的代码,直接查看admin目录下的 login.php代码,下断点进行传参
这里很容易理解,先校验传入的user是否正确,然后对password进行md5加密,跟数据库对应的user相对象的加密的password做验证
sql语句查询对$user进行查询,'$user'会联想到单引号闭合,进行尝试
user: admin
password:md5(admin)=21232f297a57a5a743894a0e4a801fc3
user:test
password:md5(test)=098f6bcd4621d373cade4e832627b4f6
构造payload:
账号:test' union select 1,2,'test','098F6BCD4621D373CADE4E832627B4F6',5,6,7,8#
密码:test
账号:admin' union select 1,2,'test','21232f297a57a5a743894a0e4a801fc3',5,6,7,8#
密码:admin
可以看到传入的参数以及绕过登录,此位置存在万能密码登录,验证成功。当然该cms还有其它漏洞,xss、越权等,此处不再另做审计。
References
[1]
下载地址: https://www.mycodes.net/43/7855.htm"源码之家"