代码审计的通用思路
1.通读全文代码,从功能函数代码开始阅读,例如include文件夹下的common_fun.php,或者有类似关键字的文件。
2.看配置文件,带有config关键字的文件,找到mysql.class.php文件的connect()函数,查看在数据库连接时是否出现漏洞。
3.继续跟读首页文件index.php,了解程序运作时调用了哪些函数和文件,以index.php文件作为标线,一层一层去扩展阅读所包含的文件,了解其功能,之后进入其功能文件夹的首页文件,进行扩展阅读。
漏洞产生原因
1.变量控制不严(一切输入都是有害)
2.变量到达有利用价值的函数(一切进入函数的变量都是有害的),漏洞的利用效果取决于最终函数的功能。
代码审计关键字
sql注入关键字:select,insert,update,$_GET,$_POST,$_REQUEST
上传漏洞关键字:$_FILES,move_iploaded_file
命令执行漏洞关键字:shell_exec,exec,passthru,system,popen
包含漏洞关键字:include,unclude_once,require,require_once
变量覆盖关键字:$$
跨站漏洞关键字:echo print print_r var_dump var_exprot insert