Php代码审计时值得关注的函数。
以PHP为例总结,是因为php对于函数的链路相对短一些。
所以危险函数的重要性比较高,利用难度也较低一些。
每个函数有不同的用法和参数,还要考虑到php的弱特性等问题,所以审计也没那么轻松。
下一篇是java代码审计,相对复杂一些,篇幅也比较长,也相对详细吧。
本篇用于总结,一眼看过去这些函数都很熟就好了。
执行代码函数: eval() assert() preg_replace() create_function() array_map() call_user_func() call_user_func_array() array_filter usort uasort()
命令执行函数: system() exec() shell_exec() passthru() pcntl_exec() popen() proc_open()
文件包含函数: require include require_ once include once
文件读取函数: copy file_get_contents() highlight_file() fopen() read file() fread() fgetss() fgets() parse_ini_file() show_source() file()
信息泄漏函数: bool phpinfo()
Xss: Update() Insert() Echo Print_R
越权: Radius
或者使用的框架
PHP SimpleXML 函数: __construct() addAttribute() addChild() asXML() attributes() children() getDocNamespaces() getName() getNamespaces() registerXPathNamespace() simplexml_import_dom() simplexml_load_file() simplexml_load_string() xpath()
序列化函数: serialize() unserialize() 魔法函数: __construc() __destruct() __call() __callStatic() __get() __set() __isset() __unset() __sleep() __wakeup() __toString() __invoke() __set_state() __clone() __debuginfo()
常见的漏洞函数: Intval() switch() In_array() Unset() Ini_set() MD5 compare//这个利用了PHP处理哈希字符串的特性 Ereg() Strcmp()//5.3以前的版本 Is_numeric() Sha1和md5无法处理数组 Parse_str()
每个函数的功能和参数决定了其利用方式,所以php代码审计重点在于传参上。//个人观点
不懂得函数参考:www.php.net