知方号

知方号

seay代码审计工具

seay代码审计工具

第一次写文章,希望大牛们轻喷

一、代码审计安全

代码编写安全:

程序的两大根本:变量与函数

漏洞形成的条件:可以控制的变量“一切输入都是有害的 ”

变量到达有利用价值的函数(危险函数)“一切进入函数的变量是有害的”

漏洞的利用效果取决于最终函数的功能,变量进入什么样的函数就导致什么样的效果。

变量安全:

秉承一个原则  “一切输入都是有害的”

预定义变量[常规外部提交的变量]:

除了$_GET,$_POST,$_Cookie的提交之外,还来源于$_SERVER,$_ENV, $_SESSION 等register_globals = on [未初始化的变量] 当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它,PHP » 4.20 默认为off

变量覆盖[未初始化及覆盖前定义的变量]:

 如:$$使用不当、遍历初始化变量、 extract() 、parse_str()等

变量的传递与存储[中转的变量]:

存储于数据库、文件[如配置、缓存文件等

函数安全:

“什么样的函数导致什么样的漏洞”

文件包含包含漏洞:require、include、require_once、include_once

代码执行执行任意代码漏洞:eval()、assert()、preg_replace()、create_function()

命令执行执行任意命令漏洞:exec()、passthru()、proc_open()、shell_exec()、system()、popen()

文件系统操作文件(目录)读写等漏洞:file_get_contents、file_put_contents、fopen、readfile

数据库操作SQL注入漏洞:select from、mysql_connect、mysql_query、mysql_fetch_row 数据显示 XSS漏洞:print、print_r、echo、print、sprintf、die、Var_dump、var_export

二、代码审计和漏洞验证:

环境:

       PHP.ASP等语言环境

       Apache.Tomcat.Ngin等中间件

       Mysql.Oracle等数据库

工具:

       Notepad++、Sublime等代码编辑器

       Seay.RIPS等代码审计工具

       Burp等漏洞验证工具

三、常见漏洞挖掘与防范:

根据功能点定向审计,例如在文件上传功能模块、文件管理功能模块、登录功能等模块进行漏洞挖掘验证。

通读全部代码

四、安全编程规范:

1.SQL注入防护

      (1)采用预编译,在Java Web开发一般在采用预处理,在sql语句中放入?占位符,然后通过后面的传参传递参数,可在一定程度上防止SQL注入。

      (2)过滤函数和类, 使用pdo的prepare方式来处理sql查询,但是当PHP版本

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