代码审计
1.审计前提:
我们首先要知道审计目标的程序名、版本、当前环境(系统,中间件,脚本语言等信息)、各种插件等等。
2.审计思路:
1)关键字:搜索可控变量及特定函数,不存在过滤或过滤不严谨存在绕过导致的安全漏洞。
2)定点分析:指定漏洞的常见地方,比如用户中心的上传、留言板等地的xss、登录框的sql injection等。
3)断点调试:对于代码的执行过程分析、追踪,是否执行sql语句(数据库监控)/调用外部应用api/包含外部网页等等。
3.知道常见漏洞产生的根本—函数/关键字:
漏洞函数/关键字:
SQL注入:select insert update mysql_query mysqli等
文件上传: $FILES,type=“file”,上传,move_upload_file()等
XSS跨站:print print_r echo sprintf die var_dump var_export等
文件包含: Include include_once require require_once等
代码执行: eval assert preg replace call user func call user func array等
命令执行: system exec shell_exec `` passthru pcntl_exec popen proc_open等
变量覆盖: extract() parse_str() importrequestvariables() $$等
反序列化: serialize() unserialize() _construct _destruct等
通用关键字: $GET $POST $REQUEST $FILES $SEVER
4.判断有无类及框架,比如php的thinkphp、java的spring等,之后学习。