知方号

知方号

静态代码分析和代码审计的方法技巧

现在的软件系统越来越多,这个行业的发展是非常快速的,代码的数量越来越多,系统的复杂程度也是在快速的增长。而且软件开发的编程语言也从使用单一的语言发展为多种语言协同开发。这样使测试的难度也在逐渐的增高。今天我们就先来简单的了解一下静态代码分析和代码审计。

静态代码分析

静态代码分析是指在不实际执行程序的情况下,对代码语义和行为进行分析,由此找出程序中由于错误的编码导致异常的程序语义或未定义的行为。通俗的说,静态代码分析就是在代码编写的同时就能找出代码的编码错误。你不需要等待所有代码编写完毕,也不需要构建运行环境,编写测试用例。它能在软件开发流程早期就发现代码中的各种问题,从而提高开发效率和软件质量。

代码审计

代码审计(Code audit)就是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。

代码审计是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误。

通过阅读一份源码,对其进行各类漏洞挖掘,这样的过程便统称为审计。在审计中,你不但需要知道各类漏洞的原理,还需要良好的审计环境。在面对大型开源程序时,信息量往往十分巨大,所以工具的分析和检索是必不可少的。

随着PHP被广泛使用,PHP的安全问题越来越被关注。而最常见的搭配就是PHP+MySQL,接下来我们探讨一下PHP审计中MySQL注入的挖掘。

1、注入的原理

顾名思义,SQL注入就是通过把SQL命令插入到Web表单提交、输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令的目的。SQL注入是当今网络上最普遍的一种攻击方法。

2、常见的注入

在审计中,最常出现的注入便是GET注入、POST注入和Cookie注入。而POST注入也是最容易被忽略的,有时可能因为传递的参数较多,常常忽略某个参数的过滤,从而导致了注入。在实际开发中,往往有的开发人员使用了REQUEST传参,却只对GET进行了过滤,因此可以换一种方式提交数据进行注入

3、http头注入

http客户程序向服务器发送请求的时候必须指明请求类型,从而产生了http头。常见的http头如下所述。

Host:初始URL中的主机和端口。

Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

User-Agent:浏览器类型。

Accept:浏览器可接收的MIME类型。

Accept-Language:浏览器所希望的语言种类。

Connection:表示是否需要持久连接。

Content-Length:表示请求消息正文的长度。

Cookie:这是最重要的请求头信息之一。

4、二次注入

随着安全问题日趋被重视,一些简单的SQL注入在大中型开源程序中已基本销声匿迹了。而出现

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。