WEB开发网
开发学院网络安全黑客技术 黑客攻防:在WEB程序中隐藏后门 阅读

黑客攻防:在WEB程序中隐藏后门

 2008-12-27 16:52:32 来源:WEB开发网   
核心提示:在很多商业程序中,程序员也许会出于某种目的,在程序中留下后门,黑客攻防:在WEB程序中隐藏后门,我们不讨论这样做的目的是什么,只谈谈如何在程序中隐藏一个“终极后门”,并不是源代码,所以我们要反编译回去,首先给大家看一个例子,去年我写了一篇文章《对校园网的第二次安全检测

在很多商业程序中,程序员也许会出于某种目的,在程序中留下后门。我们不讨论这样做的目的是什么,只谈谈如何在程序中隐藏一个“终极后门”。

首先给大家看一个例子,去年我写了一篇文章《对校园网的第二次安全检测,文中提到一个类似的后门:“…隐藏账户做后门!…如果不是我先拿到数据库,分析了一段时间以后才拿到程序,相信我也不会注意这个问题。某账户,在后台查询管理员账户的时候,他不出现,在管理员查询登陆和工作日志的时候,他自动消失…”。当时对JSP不了解,通过TOMCAT配置不正确漏洞下载了数据库,然后登陆后台,立刻就发现不对,知道有个后门,却不知道是什么原理,这次我们来把程序仔细“解剖”下。

一般情况下,在页面上显示用户列表,是由页面去查询数据库的数据,然后返回给浏览器。查询出来的数据是一堆“结果集”,页面显示的时候会把它们一条一条遍历出来。打开存在漏洞的页面,manager.jsp文件代码找到显示用户列表的代码(我加上了注释):图1

黑客攻防:在WEB程序中隐藏后门

图1

发现有个重要的数组变量manager,看看它是怎么来的,往上找:图2

黑客攻防:在WEB程序中隐藏后门

图2

可以看到代码中manager的值是通过调用managermgt的search方法返回的数组。JSP程序在服务器下运行,除了JSP文件本身,在WEB-INF目录下的classes目录里,有一些“.class文件”,他们是已经写好的JAVA类,可以用来实例化对象。Managermgt对象是MgrMgt这个类实例化出来的,在manager.jsp里,一开始就导入了“speedcharge.controller.*”下的全部包。<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,
speedcharge.entity.*,speedcharge.controller.*" errorPage="" %>

“.class”文件存储的是java字节码,是由.JAVA文件编译而来的,并不是源代码。所以我们要反编译回去。使用“jad.exe”反编译,然后找到MgrMgt 类的search方法:

1 2  下一页

Tags:黑客攻防 WEB 程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接