欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

一个简陋的php源码审计辅助脚本

程序员文章站 2022-03-06 15:38:51
80vul的5up3rh3i 大牛在 《WEB代码审计与渗透测试》上面提到一个perl写的基于grep的php源代码审计的fuzz脚本。有时候需要一个快速小巧的脚本来减少重复性的劳动,对于面向...
80vul的5up3rh3i 大牛在 《WEB代码审计与渗透测试》上面提到一个perl写的基于grep的php源代码审计的fuzz脚本。有时候需要一个快速小巧的脚本来减少重复性的劳动,对于面向对象的复杂的代码一些源码审计工具的作用也实在有限,往往需要改动一些才能发现点什么。学习php的安全也差不多一年了,膜拜大牛的同时也感谢那些共享知识的师傅们。


一个简陋的php源码审计辅助脚本

大牛也没公开那个脚本的源码,我就胡乱猜测着也弄了一个,相信大牛绝对不是这么写的。写的太挫了,发出来求指正啊求指正。linux下面还有一个开源的源码审计工具叫rats,可以自己添加特征函数用着也不错。



 1     #!/usr/bin/perl
2     #
3     # PHP Vulnerabilities Fuzzer By c4
4     # Mail c4rp3nt3r@0x50sec.org
5     #
6    
7     use POSIX;
8     use LWP::UserAgent;
9    
10    main();
11   
12    sub main
13    {
14        print '
15    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
16    1.include/require
17    2.exec/system/popen/passthru/proc_open/pcntl_exec/shell_exec
18    3.eval/preg_replace/assert/call_user_func/create_function
19    4._GET/_POST/_COOKIE/_SERVER/_REQUEST/php://input/getenv

20    5.session/cookie
21    6.extract/parse_str/mb_parse_str/import_request_variables
22    7.readfile/fpassthru/fwrite/fopen/move_uploaded_file/file_put_contents/unlink
23    8.select/insert/update/delete/order by/group by/limit/in(
24    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25        ';
26        print "\n";
27        print "Choose :#";
28        $fuck= <STDIN>; chomp $fuck;
29   
30        if($fuck eq '1')
31        {
32            @vuls=('include(','include_once(','include ','include_once ','require(','require_once(','require ','require_once ');
33            foreach $vul(@vuls)
34            {
35                $cmd = "grep -n '\\\$' -r ./ | grep -v fuzz.pl | grep '$vul' --color";
36                system($cmd);
37            }
38        }elsif($fuck eq '2')
39        {
40            @vuls=('exec(','exec ','system(','system (','popen(','popen ','passthru(','passthru ','proc_open(','proc_open ');
41            foreach $vul(@vuls)
42            {
43                $cmd = "grep -n '\\\$' -r ./ | grep -v .js: | grep -v fuzz.pl | grep '$vul' --color";
44                system($cmd);
45            }
46   
47        }elsif($fuck eq '3')
48        {
49            @vuls=('eval(','eval ','preg_replace','assert','call_user_func','call_user_func_array','create_function');
50            foreach $vul(@vuls)
51            {
52                $cmd = "grep -n '\\\$' -r ./ | grep -v .js: | grep -v fuzz.pl | grep '$vul' --color";
53                system($cmd);
54            }
55   
56        }elsif($fuck eq '4')
57        {
58            @vuls=('_GET','_POST','_COOKIE','_SERVER','_REQUEST','php://input','getenv');

59            foreach $vul(@vuls)  www.2cto.com
60            {
61                $cmd = "grep -n '\\\$' -r ./ | grep -v .js: | grep -v fuzz.pl | grep '$vul' --color";
62                system($cmd);
63            }
64   
65        }elsif($fuck eq '5')
66        {
67            @vuls=('session','cookie',);
68            foreach $vul(@vuls)
69            {
70                $cmd = "grep -n '\\\$' -r ./ | grep -v fuzz.pl | grep '$vul' --color";
71                system($cmd);
72            }
73   
74        }elsif($fuck eq '6')
75        {
76            @vuls=('extract','parse_str','mb_parse_str','import_request_variables');
77            foreach $vul(@vuls)
78            {
79                $cmd = "grep -n '\\\$' -r ./ | grep -v fuzz.pl | grep '$vul' --color";
80                system($cmd);
81            }
82        }elsif($fuck eq '7')
83        {
84            @vuls=('readfile','fpassthru','fwrite','fread','move_uploaded_file','file_get_contents','file_put_contents','unlink','fopen');
85            foreach $vul(@vuls)
86            {
87                $cmd = "grep -n '\\\$' -r ./ | grep -v fuzz.pl | grep '$vul' --color";
88                system($cmd);
89            }
90        }
91        elsif($fuck eq '8')
92        {
93            @vuls1=('select','delete');
94            foreach $vul(@vuls1)
95            {
96                $cmd = "grep -in '\\\$' -r ./ | grep -i from | grep -v fuzz.pl | grep -i '$vul ' --color";
97                system($cmd);
98            }
99            @vuls2=('update','order by','group by','limit','in(');
100          foreach $vul(@vuls2)
101          {
102              $cmd = "grep -in '\\\$' -r ./ | grep where | grep -v fuzz.pl | grep -i '$vul' --color";
103          }
104          @vuls3=('insert');
105          foreach $vul(@vuls3)
106          {
107              $cmd = "grep -in '\\\$' -r ./ | grep into | grep -v fuzz.pl | grep -i '$vul' --color";
108              system($cmd);
109          }
110 
111      }
112 
113  }
114 
115  ########END#########
很久没有在网上吐槽下了,最近不顺心的事情真多。所谓“行有不达,反求诸己“,自己自然脱不了干系。
从事网络安全方面的工作也有一年了,整天除了检测网站、审计源码查找漏洞、有时候检测内网,有时候写个工具,有时候做做免杀,写写代码。到头来还是空虚的不得了,搞站其实就像自慰,就算有点快感,刹那间过去了剩下的就是空虚。
希望以后能多学习,写出自己的有价值的安全工具,否则就趁早别在这行混了,该干嘛干嘛去。
 

作者 0x50sec.org