做网站需要写配置文件吗,手机做ppt的软件,骑行网站模板,门户网站建设方式源代码审计
代码安全测试简介 代码安全测试是从安全的角度对代码进行的安全测试评估。#xff08;白盒测试#xff1b;可看到源代码#xff09; 结合丰富的安全知识、编程经验、测试技术#xff0c;利用静态分析和人工审核的方法寻找代码在架构和编码上的安全缺陷#xf…源代码审计
代码安全测试简介 代码安全测试是从安全的角度对代码进行的安全测试评估。白盒测试可看到源代码 结合丰富的安全知识、编程经验、测试技术利用静态分析和人工审核的方法寻找代码在架构和编码上的安全缺陷在代码形成软件产品前将业务软件的安全风险降到最低。
注代码审计尤其注意反序列化漏洞
代码安全测试方法 代码审核采用人工审核和静态分析工具辅助的方式进行。 人工审核既能解决内部问题也能解决外部问题。这也是目前最有效率的解决方案并且在理论上手工代码审核是非常有效的但人工审核的效率不高所以我们会采用自动化分析工具辅助人工的方式来提高审核效率。 静态分析工具通过一组全面规则、测试机制和方针在软件开发过程、测试中发现软件的安全缺陷。 如HP Fortify
代码审计的通用思路
1、通读全文代码从功能函数代码开始阅读例如include文件夹下的common_fun.php或者有类似关键字的文件。
2、看配置文件带有config关键字的文件找到mysql.class.php文件的connect()函数查看在数据库连接时是否出现漏洞。数据库交互
3、继续跟读首页文件index.php,了解程序运作时调用了哪些函数和文件 以index.php文件作为标线一层一层去扩展阅读所包含的文件了解其功能之后进入其功能文件夹的首页文件进行扩展阅读。
注快速挖源代码漏洞直接搜索容易产生漏洞的相关函数
漏洞产生的原因
1、变量控制不严一切输入都是有害。
2、变量到达有利用价值的函数一切进入函数的变量是有害的漏洞的利用效果取决于最终函数的功能。
漏洞挖掘流程分析 sql注入关键字: select、insert、update、$_GET $_POST、$_REQUEST 上传漏洞关键字: $_FILES 、move_uploaded_file 执行漏洞关键字: shell_exec、exec、passthru system、popen 包含漏洞关键字: include、include_once、require、require_once 变量覆盖关键字: $$ 跨站漏洞关键字: echo、print、print_r、var_dump、var_exprot 密码硬编码关键字明文密码出现在代码中如 password, 123456 权限与认证绕过关键字 直接比较用户输入与固定值如 if ($_SESSION[user] admin) 可使用【xsearch_CHS.exe工具】进行快速搜索含关键字的文件 工具Fortify 漏洞审计分析 根据工具扫描结果分析风险漏洞成因手工跟踪相关函数及变量测试漏洞是否可利用、排除误报可能。通过工具修复建议手工修复相关漏洞 网站部署
打开可视化数据库软件【Navicat for MySQL 】 数据库名: phpweb 宇符集:utf8 -- UTF-8 Unicode 排序规则:utf8_general_ci phpweb靶场环境放到phpstudy根目录下 打开phpstudy软件选择5.2.17版本启动 访问打开phpweb破解版进行系统安装
http://10.0.0.101:90/phpweb/base/install/index2.php
直接跳过了index.php登陆页面 访问ppweb主页
http://10.0.0.101:90/phpweb/ FORTIFY安装
软件下载及安装详见【fortify新版安装步骤.pdf】文件 网站扫描过程
点击【Advanced Scan】高级扫描 选择要扫描的项目phpweb
选择文件输出位置【Output file】可默认 点击配置【Configure Rulepacks..】选择扫描项目涉及到的语言可默认
开始扫描【scan 】 扫描完成 选择漏洞
参数给变量未经过直接带入输出
$groupname$_POST[groupname];
input typetext namegroupname size50 value?php echo $groupname; ? classinput / 漏洞验证
找到文件所在位置进行访问
http://10.0.0.101:90/phpweb/advs/admin/advs_duilian_modi.php 填写信息提交--bp抓包--请求主体test后输入以下xss恶意代码与数据库交互进行弹窗
scriptalert(123)/script 成功弹框
存在xss漏洞 并获取到了物理路径及可能存在sql注入 Seay源代码审计系统使用
Seay是一套开源代码审计系统使用C# 编写需要.NET2.0以上版本环境才能运行 网站部署
打开可视化数据库软件【Navicat for MySQL 】 数据库名: xhcms 宇符集:utf8 -- UTF-8 Unicode 排序规则:utf8_general_ci xhcms靶场环境放到phpstudy根目录下 打开phpstudy软件选择5.2.17版本启动 访问xhcms网站进行系统安装
http://10.0.0.101:90/xhcms/install/ 成功安装 访问xhcms主页
http://10.0.0.101:90/xhcms/ Seay软件安装
软件详见附件【Seay PHP代码审计工具2.1公测版.rar】
运行解压【Seay PHP代码审计工具2.1公测版.rar】点击【Seay PHP代码审计工具2.1公测版.exe】运行软件 网站扫描过程
点击【Seay】浏览 选择项目 扫面设置--函数管理
可根据情况添加函数 点击综合扫描 扫描完成 选择漏洞
4 $fileaddslashes($_GET[r]); //接收文件名 //可输入变量$_GET 可能存在安全威胁
5 $action$file?index:$file; //判断为空或者等于index //file函数可能存在任意文件读取漏洞
6 include(files/.$action..php); //载入相应文件 //file函数可能存在任意文件读取漏洞 漏洞验证
http://10.0.0.101:90/xhcms/index.php
代码分析
参数r只有一个addslashes函数过滤但对于文件包含来说并没有什么用。 尝试利用
因为包含的是files目录下的文件所以在files下新建shell.php内容为
?php
phpinfo();
? 尝试包含漏洞
http://10.0.0.101:90/xhcms/index.php?rshell
成功访问存在漏洞: 也可以用../跳转:
因为包含的是files目录下的文件所以在files上级目录新建123.php内容为 ?php
phpinfo();
? 尝试../访问上级目录文件内容123.php
http://10.0.0.101:90/xhcms/index.php?r../123
成功访问存在漏洞: 工具局限性
1、工具本身存在一定量的误报或者漏报。
2、扫描结果需要大量人工确定甄别。
3、 如用多种语言开发的软件则需单独分析。
4、使用工具缺乏规范化的编码规范。
5、不能自动收集常见的代码安全问题。 声明
此文章只做技术研究谨遵守国家相关法律法规请勿用于违法用途如果您对文章内容有疑问可以尝试留言私信如有侵权请联系小编处理。