zoukankan      html  css  js  c++  java
  • 代码审计基础

    工欲善其事必先利其器

    环境推荐安装phpstudy. 他集成了php各种版本.一键切换.还有非常便捷的数据库管理等功能.

    代码审计工具推荐Seay源码审计系统

     RIPS汉化版:

    关于这两款工具,.后续用到的时候我在仔细说. 

    审计方法

    1. 通读全文法
    2. 敏感函数参数回溯法
    3. 定向功能分析法

    通读全文法

    顾名思义,就是把所有代码都读一遍.这种方法是最麻烦的方法同时也是最全面的审计方法,特别是针对大型程序.源码成千上万行,想一下是不是忍不住要慰问xxx? 但这种方法在某种场景下是必须运用的,因为你只有通读了全文,你猜能了解整个业务的逻辑,才能挖掘到更多更有价值的漏洞. 这种方法一遍是企业对自身产品的审计,当然,小型应用也未必不可.

    敏感参数回溯法

    敏感参数回溯法就是根据敏感函数,逆向追踪参数传递的过程,. 这个方法是最高效,也是最常用的方法. 一般来说,大多数的漏洞产生是因为函数的使用不当造成的.我们只要找到这样的一些使用不当的函数,就可以快速挖掘到我们想要的漏洞.在这方面.Seay源码审计系统有独特的优势,他可以利用正则匹配一些高危函数,关键函数以及敏感关键字帮助我们快速定位,然后我们就可以分析判断敏感函数的上下文,追踪参数源头.尝试控制可控的参数变量.

    定向功能分析法

    该方法主要根据程序的业务逻辑来审计.首先是用浏览器逐个进行访问浏览,先熟悉下大致的功能,然后根据相关功能和审计经验,大概推测可能存在哪些漏洞.

    常见漏洞(包括但不限于)

    1. 程序初始安装
    2. 站点信息泄露
    3. 文件上传
    4. 文件管理
    5. 登录认证
    6. 数据库备份恢复
    7. 找回密码
    8. 验证码
    9. ....

    常见的INI配置

    配置文件

    一般为php.ini 有些时候会使php+版本号.ini ,他是全局配置文件,不管文件名什么样,作用都一样,配置文件在php启动的时候被读取,php.ini的值可以使用php相关函数进行修改覆盖.

    .user.ini  用户配置文件,可以存在网站的根目录或者子目录.

    语法

    配置文件的语法非常简单. 空白字符和以引号开始的行被简单忽略. 一个空白字符串可以用在等号后不写任何东西表示,或者用none关键字表示

    例:  foo=      , foo=none  ,

    配置文件是区分大小写的. foo=bar != FOO=BAR

    配置文件中的表达式仅使用位运算符,逻辑非,圆括号,|位或,&位与,~位非,!逻辑非.

    布尔标志用On表示打开,用Off表示关闭

    安全模式

    safe_mode = Off   默认值. (5.3.0废弃,5.4.0起移除)
    安全模式关闭的情况下,是可以执行一些危险函数的. 比如 system(),关闭后把很多文件操作函数进行了权限控制,也不允许对某些关键文件操作 比如/etc/passwd.

    上传文件及目录权限

    file_uploads = on

    upload_max_filesize= 8M  

    这两个参数主要是配置上传文件和上传文件大小的. 

    upload_tmp_dir = 

    这个主要是配置上传后的临时目录,不配置的话按系统走.

    php.ini

    建议大家有空了多去了解下具体的配置项, 每一项代表什么, 有几个选项等. 可以查阅官方文档等很多途径

  • 相关阅读:
    成都的收藏品市场
    微信小程序 如何定义全局函数?
    Linux下 安装VMware Tools工具
    小程序圆角进度条实现方法
    Excel 将换行符替换为空
    再次学习mysql优化
    Subl 命令
    时间见证着—eternal life
    大巧不工web前端设计修炼之道—笔记
    批量更新某字段内容
  • 原文地址:https://www.cnblogs.com/php09/p/10515082.html
Copyright © 2011-2022 走看看