RT,我现在在给一个PHP项目做代码审计,找到了一个有漏洞的方法,但是我怎么快速找出所有其他文件中调用过这个方法的地方,还有调用这个方法的参数在其他什么位置传过来的,如果有这种工具就方便多了,求推荐
滿天的星座2017-05-27 17:43:57
我也没有什么好的方法,我说说我的做法,感觉楼主也已经试过。
PhpStorm
,点击方法,按快捷键 ALT + F7
或 CTRL + ALT +SHIFT +F7
查找所有使用。参数变量按 F4
或 CTRL + 鼠标左键
查找来源。(这种查找其实还有很多引用没有办法找到),如循环某个对象集合中调用这个对象的方法
如果是动态方法,如 function test()
全局搜索 ->test(
和 ->test (
如果是静态方法,如 static function test()
全局搜索 Class::test(
和 Class::test (
通过上面三种步骤,还是可能遗漏,如动态参数调用,所以还要兼顾搜索一下方法字符串 'test'
$func = 'test';
$ojb->$func();
滿天的星座2017-05-27 17:43:57
如果是查看运行调用情况参数传递及值的变化,可以使用php debug工具,推荐kint
如果是想知道哪些文件可能会调用,可以用sublime 的在文件夹中查找
以上推荐的工具都是很轻很小的。