代码审计基础

  1. 环境准备:phpstudy来搭建web服务、sublime作为代码编辑器(notepad++和phpstorm等都可以)、fortity和rips:静态扫描工具、beyond compare文本比较工具、seay代码审计工具。
  2. 挖掘思路:
    1. 敏感函数回溯参数。高效,通过搜索敏感函数的关键字,快速挖掘想要的漏洞。但是难以发现逻辑漏洞。
    2. 通读全文代码。观察目录结构,根据文件名去看代码。例如upload、admin、sqlconnect等敏感文件。
    3. 根据功能审计。
      1. 文件上传功能。检查代码对上传功能点是否设置过滤,过滤是否严格。
      2. 文件管理功能。注意是否存在任意文件下载或者任意文件读取。
      3. 登陆认证功能。
      4. 找回密码功能。
    4. 根据函数判断。
      1. sql注入:addslashes函数  

        mysql_real_escape_string 

        intval等字符转换:int类型转换  

      2. xss
      3. 任意文件删除:rmdir-删除目录,unlink-删除文件
      4. 任意文件写入:copy:拷贝文件、file_put_contents、fputs、fwrite
      5. 任意文件操作
      6. 任意文件上传
      7. 命令注入:exec:执行一个外部程序、passthru:执行外部程序并显示原始输出、shell_exec:通过shell执行命令,并将输出通过字符串方式返回、system:执行外部程序,并显示输出、pcntl_exec:在当前进程空间执行指定程序、popen:通过popen()的参数执行一条命令,并对popen()打开的文件进行执行。
      8. 代码注入:eval、assert、call_user_func、call_user_func_array
      9. 变量覆盖:$$、parse_str、extract
posted @ 2020-02-11 19:59  Ca1m  阅读(206)  评论(0编辑  收藏  举报