图片来源于百度图片。==注意:本篇文章仅用于自我学习,笔记记录,不得用于其他用途。==一、引子在攻方面,传统的黑盒模式是通过扫描器扫描站点或利用NDAY来渗透的方式已经受到了很大的制约,现在及未来的渗透测试发展方向是白盒测试 , 也就是代码审计 , 无论是挖0day还是企业渗透测试 , 白盒都是最快最准确的挖掘姿势拿到源代码-->代码审计-->利用审计出来的漏洞制定措施,所以代码审计能力也越发重要。 ==最好是工具和人工结合使用。==二、审计工具工欲善其事 必先利其器,使用自动化工具代替人工挖掘,可以显著提高审计工作的效率,学会利用自动化代码审计工具,是每个代码审计人员必备的技能 自动审计工具:RIPSSeayfortify三、代码审计环境搭建phpstudy2018 + php5.4 + 留言板源码 解压到www根目录 修改cs.com\lib\config.php 数据库配置 链接mysql数据库 , 创建数据库 create database message; use message; source D:\\phpStudy\\PHPTutorial\\WWW\\cs
该国外CMS,使用Seay源代码审计系统扫描后扫出64个漏洞,其中SQL注入20个,文件包含4个,代码执行2个,任意文件读取/删除/修改/写入35个,变量覆盖1个,XSS2个。但经过人工审计和核查,一、员工扣除工资增加—XSS漏洞1、漏洞url"E:\phpstudy_pro\WWW\aps\admin\deduction_add.php"2、漏洞源代码3、漏洞产生原因对前端传入的参数没有进行过滤和验证。4、漏洞复现(1)进入后台(2)进入Deductions页面(3)新增一个员工扣除情况(4)输入alert(1)(5)弹出XSS漏洞二、员工添加页面存在—XSS漏洞1、漏洞url"E:\phpstudy_pro\WWW\aps\admin\employee_add.php"2、漏洞源代码3、漏洞产生原因对前端传入的信息不进行过滤和验证,直接插入到数据库中。4、漏洞复现(1)登录后台(2)进入员工列表,点击添加(3)输入框输入alert(1)后保存(4)弹出XSS漏洞,而且每次进入该页面都会弹出,所以为存储型XSS漏洞三、员工编辑页面存在—XSS漏洞1、漏洞url"E:\phpstudy
图片来源于安全客。==注意:本篇文章仅用于自我学习与交流,不会过多或不涉及具体操作,不得用于其他用途。==一、代码审计简介顾名思义就是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。——==来自百度百科==代码审计就是从安全角度对代码进行的安全测试评估,结合丰富的安全知识、编程经验、测试技术、利用静态分析和人工审核的方法寻找代码在架构和编码上的安全缺陷,在代码形成软件产品前将业务软件的安全风险降到最低。==实际上感觉就是真正的给你一个网站源码,从网站去找漏洞,而不是按照漏洞去找网站。==二、代码审计测试方法代码审计采用人工审计和静态分析工具辅助的方式进行。人工审计:既能解决内部问题也能解决外部问题,这也是目前最有效率的解决方案,并且在理论上手工代码审计是非常有效的,但人工审计的效率不高,所以我们会采用自动化分析工具辅助人工的方式来提高审计的效率。静态分析工具(也可以叫代码审计工具):通过一组全面规则,测试机制(里面是已经编写好的程
BlueCMS代码审计一、概括Seay源代码审计系统扫描到306个漏洞,大概都看了看,很多都无法存在,特别是像un_client等文件夹直接拒绝访问,而且其他位置的文件所报告的漏洞都无法复现,不是有过滤就是变量不可控,工具只是简单的对人为制定的规则进行匹配,而且还无法扫描逻辑漏洞,所以扫描器和人工结合最好。二、SQL注入漏洞(124个)1、第一个SQL注入(1)扫描器显示代码如下:这里trim函数是去空白的功能,参数用户可控,在代码中输入echo sql去前台验证一下:可以看出来单引号转义,使用sqlmap可以跑出来:测试payload,可以发现确实执行了sleep(5)源代码在./admin/ad.php先在页面测试一下。2、第二个SQL注入(不存在)系统给的报告:直接访问发现被拒绝:查看源代码:发现是检查IN_UC常量是否存在,不存在则直接访问拒绝,删除试试。页面空白而且sqlmap跑不出来,失败。三、任意文件读取/删除/修改/写入(98个)1、第一个任意文件读取Seay给出的报告构造payload:http://blue.com/admin/tpl_manage.php?act=
易水哲
一个什么都会一点的白帽子