什么是脚本攻击
最近脚本攻击好象是很流行的,不过早在很久前就有这个了!脚本攻击严格的说应该是一件艺术而不是漏洞!首先我们先要知道什么是脚本,脚本就是运行在网页服务器上的文本程序,例如:ASP、PHP、CGI、JSP、ISAP等等,脚本的攻击就是利用这些文件的设置和编写时的错误或者疏忽不当,攻击者就可以利用这些来达到自己攻击目的,如果一个服务器存在这些漏洞,那么它的沦陷也是时间的问题!
这些文本文件一般都是要结合数据库来使用的,这些数据库有ACCESS、MSSQL、MYSQL、Oracle等!脚本攻击就是针对这些数据库来配合脚本对一些变量的过滤不严的问题来达到得到用户密码等敏感信息,修改数据库等目的!下面我就针对这些来分别举例说明!
一、跨站脚本的攻击
脚本的跨站(CSS/XSS)就是利用程序对用户提交的变量不严,大多数是利用多媒体标签,前段时间比较流行的flash跨站就是利用的这个,比如我在[FLASH=450,350][/FLASH]之间插入一个我自己作好的一个swf文件,swf文件里我们用geturl里加上javascript:window.open(''就可以让他打开清风安全网的网站,如果这里是一个木马网页,呵呵,,,你就等着中木马吧!还有就是窃取用户的cookie,例如我们利用也就是图片的跨站,在这个里面插入
这段地址即可得到!如果将javascript过滤掉后怎么办?
好,我们在看看下面这段代码:
[upload=swf]uploadImages/200310812145390577.swf?"[/upload]
怎么样,还是能将你的信息得到的,而且还不会弹出对话框!
另外在joekoe论坛程序里还有一个这样的问题,比如你发个帖子里有[DIR][/DIR]就会弹出一个播放器的安装程序,呵呵,如果是一个黑心的站长利用这个来放马,那后果就不用说了吧!
解决办法:现在还没有好的方法解决这个问题,你要做的就是将多媒体的标签删掉!
另附ASP和PHP的跨站代码
php如下
$info = getenv("QUERY_STRING";
if ($info) {
$fp = fopen("test.txt","a";
fwrite($fp,$info."n";
fclose($fp);
}
?
asp如下
二、sql injection
是现在最热门的,也是本文要重点说的!
1、ASP+ACCESS数据库类型的SQL注射
现在的大多数网站是采用的这个组合,但是如果在ASP程序中没有对用户提交的变量充分过滤的话就可能导致管理员密码被猜到,整个网站的信息就会暴漏无移~!
在大多数ASP站点中,我们并不知道其程序代码,靠任何扫描器也不可能发现SQL injection漏洞,这时就要靠手工检测了,由于我们执行SQL语句要用到单引号、分号、逗号、冒号和“--”,所以我们就在可修改的URL后加上以上符号,或在表单中的文本框加上这些符号!比如比较经典的金梅系统漏洞,在movie.aps中有怎么一段代码:
articleid=request("id"
set rs=server.createobject("adodb.recordset"
sql="update learning set hits=hits+1 where articleID="articleid
--------------------------------------------------------------------------------
2 [转帖]脚本安全和利用
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过滤,所以我们只要找到他的存在问题的页面就可以了,
看这段代码:rs.open "select * from news where newsid=" cstr(request("newsid"),conn,1,1
比如我们提交:
;exec master.dbo.xp_cmdshell 'net user xuehan ilovexuehan /add';--
;exec master.dbo.xp_cmdshell 'net localgroup administrators xuehan /add';--
看到了吗?我们已经在系统中田加了一个xuehan 密码是ilovexuehan的管理员帐号,以下的事情你就自己来做吧,呵呵,,,不用我来教了吧!!!
如果过滤了分号和单引号怎么办?呵呵,我们只要将我们的命令形式转换一下,比如我们转换成十六进制或者别的形式就可以继续注入了,还有就是他如果过滤了xp_cmdshell 我们也可以解决,我们可以写成xp'+'_cmd'+'shell形式,如果他将xp_cmdshell 扩展删掉,我们可以通过xplog70.dll文件来恢复,呵呵,,,具体自己查找下数据库的知识,当然我们也可以用别的扩展!所以说SQL injection不仅仅是一门技术,更要有灵活的头脑和扎实的数据库知识,特别是对SQL语言的掌握程度,如果不会SQL语言,你永远都是生搬硬套,遇到障碍就过不去了!
3、PHP+MYSQL数据库类型
PHP+MYSQL一直以来都认为是最安全的组合,不过一些文件没有过滤单引号、反斜线等,我们也可以来进行注入,不过在最新的php安装程序里的php.ini文件默认都是对这些过滤掉的,所以很大情况下我们是无法对进行注入的,不过也有许多牛人们可以饶过这个限制的!由于我的PHP和MYSQL不是太懂,所以就不能来具体举例来说明了,大家要是有兴趣可以去找写资料来看!!!
需要从根本上解决解决SQL Injection问题。还得从程序本身入手。过滤不能单纯的过滤URL所提交的参数,在表单里的也要过滤,value=后面的可以修改的数据,修改后可以提交到服务器,总之对所有的表单提交的数据以及用户可能对HTML源文件进行修改来控制的所有来自Web服务器外部的数据进行过滤或转换,对单引号、双引号、分号“--”还有对数字键上面的所有特殊字符进行过滤,还有QUERY_STRING环境变量。在服务器上删除一些危险的扩展存储过程,比如xp_cmdshell。有条件装个IDS更好,不敢说无坚不摧,但至少可以阻挡大部分攻击者。
三、一些别的脚本攻击
有些程序没有对cookie或者session进行过滤和检查,就造成了用户可以非法修改提交页面,自己提交修改数据,比如像海阳顶端网木马的以前版本对session没有过滤,我们就可以饶过密码的验证来到达真正的页面,还有就是post提交的问题,像leadbbs的2.77版本就是没有充分的过滤,我们就可以把管理员的密码修改成自己的密码!
还有一个脚本的攻击例子,在Discuz! 2.0 论坛里,因为个人属性缺乏必要的安全确认,所以很容易诱使其他会员自动修改其个人属性内容,特别是注册邮件信息,这关系着登陆密码的修改。
比如我们发个帖子,写上
诱使会员点击这个页面后,就会自动修改该会员注册的email地址为crack.x.h2163.com。当然为了隐蔽性,可以更新后自动关闭,然后调用另外一个假地址。
当然我们也可以利用这个漏洞进行欺骗、隐藏来诱惑管理员来修改我们为管理员等等!大家自己去学习吧!
看了这么多枯燥的东西下面我们再来看看另外一个好玩的漏洞,在百渡里搜索”传奇留言薄“找几个免费的留言本进去,找到他的登陆页面,我找到的一个是:
我们再来看看下面这个连接:
哈,怎么我们就闯入后台了!!!
什么原因,自己去琢磨吧!
后记:脚本的攻击可以说是防不胜防的,我们所要做的只能是提高编写程序的严谨态度,人为的因素在脚本攻击中是最重要的!
声明:本文提到的漏洞都有一定的攻击性,我们的目的是探讨技术,搞破坏的是小人!所造成的一切后果于作者无关!由于作者水平有限,文中难免有错误之处,欢迎指出!
跨站脚本攻击有哪些类型
1、持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。
2、非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
3、DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。
扩展资料:
跨站脚本攻击产生的原因是网站过于相信用户的输入,那么解决的办法也很直接,就是从根本上不相信用户的任何输入。一个安全的网站应当对任何用户的任何输入都要进行检查,特别是对用户提交到服务器中保存的数据,更要做筛选。
这种攻击与反射型攻击不同的是,它会把自己的攻击代码保存在网站的服务器上,这样,任何访问了这个页面的用户,都会受到这个攻击。
参考资料来源:
百度百科-跨站脚本攻击
跨站脚本攻击,如何利用工具和测试防范跨站点脚本攻击
跨站点脚本(XSS)允许攻击者通过利用因特网服务器的漏洞来发送恶意代码到其他用户。攻击者利用跨站点脚本(XSS)攻击向那些看似可信任的链接中注入恶意代码。当用户点击了链接后,内嵌的程序将被提交并且会在用户的电脑上执行,这会使黑客获取访问权限并偷走敏感数据。攻击者使用XSS来攻击受害者机器上的漏洞并且传输恶意代码而不是攻击系统本身。 通过用户输入的数据返回错误消息的Web表格,攻击者可以修改控制Web页面的HTML代码。黑客能够在垃圾信息中的链接里插入代码或者使用欺诈邮件来诱使用户对其身份产生信任。 例如攻击者可以发送带有URL的邮件给受害人,这个URL指向一个Web站点并且提供浏览器脚本作为输入;或者在博客或诸如Facebook、Twitter这样的社交网站上发布恶意URL链接。当用户点击这个链接时,该恶意站点以及脚本将会在其浏览器上运行。浏览器不知道脚本是恶意的并将盲目地运行这个程序,这转而允许攻击者的浏览器脚本使用站点的功能来窃取cookie或者冒充合法的用户来完成交易。 一些通常的跨站点脚本预防的最佳实践包括在部署前测试应用代码,并且以快速、简明的方式修补缺陷和漏洞。Web应用开发人员应该过滤用户的输入来移除可能的恶意字符和浏览器脚本,并且植入用户输入过滤代码来移除恶意字符。通常管理员也可以配置浏览器只接受来自信任站点的脚本或者关闭浏览器的脚本功能,尽管这样做可能导致使用Web站点的功能受限。 随着时代的进步黑客们变得更加先进,使用收集的工具集来加快漏洞攻击进程。这意味着仅仅部署这些通常的XSS预防实践是不够的,保护和预防过程必须从底层开始并持续提升。预防过程必须在开发阶段开始,建立在一个牢靠、安全的开发生命周期方法论之上的Web应用在发布版本中不太可能暴露出漏洞。这样以来,不仅提升了安全性,也改善了可用性而且缩减了维护的总体费用,因为在现场环境中修补问题比在开发阶段会花费更多。 威胁建模在XSS预防中也是重要的一个方面,应该纳入到每个组织的安全开发生命周期当中。威胁建模评估和辨识在开发阶段中应用程序面临的所有的风险,来帮助Web开发人员更好地理解需要什么样的保护以及攻击一旦得逞将对组织产生怎样的影响。要辨识一个特定应用的威胁级别,考虑它的资产以及它访问的敏感信息量是十分重要的。这个威胁建模过程将确保在应用的设计和开发过程中战略性地融合了安全因素源码天空 ,并且增强了Web开发人员的安全意识。 对于大型项目的Web开发人员来说,源代码扫描工具和Web应用漏洞扫描器是提高效率和减少工作量的通常选择。
0条大神的评论