freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

代码审计之fortify工具篇
mazihan 2019-09-11 13:30:00 740025

1.去下载装安装cms

官网地址自行猜测,自行下载。主讲思路过程,任意一套系统都可。

2.安装过程简单分析是否有漏洞

不做安装分析,很多都程序都会删掉安装包,有兴趣的可以搞一下,这里略过。

3.安装完成后,访问首页,分析路由

i.index.php

图片 1.png

定义了NoDb常量,,,mark下,现在还不知道有啥用

加载了全局配置文件config.php

定义了路由的方法

ii.config.php

图片 1.png

定义了些许的常量

包含了func.php文件(系统基本所有函数、加数据的操作类)

图片 1.png

根据NoDb常量的值,取决了要不要初始化数据库。(mark 上述疑问解答)

最后一个函数_stripslashes,是否要去除转义,如下图:

图片 1.png

判断是否支持,开启了自动转义。如果开启了就全局去除分斜杠,还原数据。

图片 1.png图片 1.png

iii.index.php文件最后一行代码match_route();

图片 1.png

读取数据库,并进行了缓存操作。

图片 2.png

缓存记录

3.png

初始化模板

图片 1.png

加载模板

2.png

模板解析

3.png

完成首页显示,完成这个流程分析,对这个cms有了大概的了解

4.下面借助工具fortify快速人工审计

xss

图片 1.png

这里有说存在,简单一看,没有过滤机制,那么具体分析数据来源是否准确无误,

图片 2.png

这个位置是输入框,数据来源人工填写,它的目的地为数据库存储,那现在关键位置是数据库存储的过程是否有做安全性过滤。

图片 3.png

这里有个函数dbstr,数据库字符串函数的处理,那么看函数的定义

图片 4.png

分析得知,数据做了单引号的过滤,和反斜线的转义,没有过滤尖括号,那我们随意构建payload:<script>alert(1)</script>,效果图下图:

5.png

源代码:

图片 1.png

File Inclusion

图片 2.png

这里提示有文件包含,查看代码逻辑需要两个参数,do、nohtml、do的参数值做分隔处理,第一个参数值为路径,第二个参数值为文件名。后面还有个验证函数,代码如下:

图片 3.png

使用了正则做了验证,允许输入的值数字和字母并且长度也做了限定,包括后缀也做了限定,那么存不存在包含,显然可以是可以包含的,但是包含的范围比较小,为什么?自己想一下。如果能突破这个限定,那肯定更牛叉。

后台自带文件管理系统

按照cnvd的评判标准,这个系统只要拿些后台,就是一个高危的评级。因为shell如此简单。

4.png

5. 难点分析

前台没有什么交互的模块,所有着手于后台,那么从上面的分析来看,这个框架,只要突破了后台账号密码,那么shell唾手可得。现在分析登录的过程。

图片 1.png

没有做验证码的做验证,是否可以爆破下弱口令。

图片 2.png图片 3.png图片 4.png5.png

到此,这些过程说明,登录做了限制,15分钟内,只能发送20次的登录请求,那我们分析缓存文件的生成规则:

图片 6.png图片 1.png

图片 3.png

也就是说,IP如果可以换。那么是不是就可以做到15分钟20次的登录限制,当然你要有相当多的ip代理池。支撑你的所有请求。接着往下看:

图片 4.png图片 5.png

到这里程序里面的验证数据库的SQL语句没有SQL注入。这里还有第三方的登录,看过程:

图片 6.png图片 7.png

数据库默认是空,即code的get传值为空,就可以在MySQL获取数据并登录成功,什么字符串在单引号里面,相当于是空值。

总结:这个系统安不安全,相对而言,万一刚好你碰到那个是123呢……


关注我们

Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或关注公众号:

ewm.png


# 代码审计 # fortify
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 mazihan 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
TideSec
mazihan LV.1
这家伙太懒了,还未填写个人描述!
  • 7 文章数
  • 1 关注者
通达oa远程命令执行
2020-06-27
duomicms代码审计
2020-06-08
PHP代码审计之CTF系列(3)
2020-04-14