网站常见漏洞-- XSS***

 

 

跨站***,即Cross Site Script Execution(通常简写为XSS,因为CSS与层叠样式表同名,故改为XSS) 是指***者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种***方式。很多人对于XSS的利用大多停留在弹框框的程度,一些厂商对XSS也是不以为然,都认为安全级别很低,甚至忽略不计。
 

 
 
跨站***的一般步骤:
1.***者确定目标后,向目标站点可以写入数据库的地方写入***代码
2.网站的管理者在浏览***代码是自身信息泄漏
3.恶意的代码把获取的信息返回给***者
4.***者根据获取到的信息来***目标

 

 

213335569.png

 

 

 

213338204.png

 

 

 

 

XSS漏洞利用

一、窃取Cookie
对于跨站的***方法,使用最多的莫过于cookie窃取了,获取cookie后直接借助“明小子”工具或其它可修改cookie的浏览器(如装有Cookies Edit插件的Firefox)将cookie修改为获取的cookie,这样即可获得网站的管理权限。
 
 

213342539.png

 

 

213342287.png

 

 

213345409.png

 

 

二.***路由器
对于处于内网中的用户,我们可以利用XSS来更改路由器密码。我们可以借助默认的密码来登陆路由器,比如URL: http://admin:admin@192.168.1.1,其实很多路由器都是使用默认密码,我这里这台也是如此,直接以admin作为用户名和密码

 

213347511.png

 

 

213352819.png

 

 

 

 

三、读取本地文件
在不同的浏览器中对本地文件的读取有着不同的限制,之前XEYE team曾有过统计,内容如下:

213355356.png

 

 

四、Hacking HomePage
相信对于很多初学Hack的朋友,都会对那一张张的黑页独有情钟,尤其是当前中美***大战中,中国人挂在白宫网站上黑页,让人至今记忆犹新!本节主要就是利用XSS来黑掉别人博客主页,但这里的黑页与***服务器来修改主页有很大区别,利用XSS来黑页其实并不是修改服务器上的页面,它只是通过JavaScript,CSS及其它WEB技术来修改页面。这主要就是通过注入js代码,然后在后台执行以达到盗取cookie或劫持浏览器的目的,这些代码往往都是一些HTML或JavaScript代码(往往是使用InnerHTML或者document.write命令来动态创建文本,图像及其它数据信息)。

下的“自定义header”一栏为例。我们先在向其写入下列语句:
<script src ="http://localhost/1.js"></script>
接下来编写1.js代码:
document.write("<center><h1><font color=#FF0000>Hacked By riusksk</font></h1></cneter>");
document.write("<center><h2><font color=#000000>Just for test !</font><h2></center><p><imgsrc=http://filer.blogbus.com/6233861/resource_6233861_1283677044i.jpg></p><p><!--");
上面的“<!—”主要是用于将后面的页面内容注释掉,避免显示,但这在各浏览器中情况会有所不同,比如我在Chrome中可以起到此作用,但在其它浏览器达不到此效果了,得采用其它注释语句方可,或者先用document.body.innerHTML = '';来清空body主体中的html代码,然后再逐一利用document.createElement创建元素也是可行的。这里我是以Chrome作为测试用的浏览器

 

 

213358564.png

 

 

 

五、跨站中的“溢出***”
相信熟悉缓冲区溢出***的朋友,都知道其中的原理:通过向堆栈中填充过多的字节以覆盖返回地址,进而控制程序的执行流程。这里我要讲的XSS***方式与溢出有着类似的特点,但正如上面所讲到的,结果还是漏洞一堆,看来很多技术人员把博客放在百度空间还是有一定道理,至少它比这些博客网站安全多了。

 

六、XSS Worm
随着WEB2.0时代的到来,而Ajax就是WEB2.0的标志性技术。AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。Ajax的出现为XSS蠕虫的发展提供的很大的便利,也因此加速了xss worm技术的传播。这里我们就以之前爆发的Twitte蠕虫为例进行分析,该跨站漏洞主要出现在"Settings" 菜单下的 "Name"文本域以及"More info URL"文本域,是由一位来自美国纽约的17岁小伙子写的,当时他花了2小时就全搞定了,代码太多了,就不说了。有兴趣的可以上网百度一下。

 

七、DDOS***

 
 
 

XSS***的种类


213358268.png

 

 

xss的发掘

 

213359672.png

 

 

213402928.png

 

 

 

 

XSS***的防范(网站)


1.代码修改的防御
利用htmlspecialchars函数将特殊字符转换成HTML编码 
函数原型 
string htmlspecialchars (string string, int quote_style, string charset) 
   string 是要编码的字符串 
   quote_style 可选,值可为ENT_COMPAT、ENT_QUOTES、ENT_NOQUOTES,默认值ENT_COMPAT,表示只转换双引号不转换单引号。ENT_QUOTES,表示双引号和单引号都要转换。ENT_NOQUOTES,表示双引号和单引号都不转换 
   charset 可选,表示使用的字符集 
函数会将下列特殊字符转换成html编码: 
& —-> & 
" —-> " 
‘ —-> ‘
 < —-> <
 > —-> > 

$_SERVER["PHP_SELF"]变量的跨站 

在某个表单中,如果提交参数给自己,会用这样的语句
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="POST">

…… 

</form> $_SERVER["PHP_SELF"]变量的值为当前页面名称 
例: 

http://www.sectop.com/get.php 
get.php中上述的表单 
那么我们提交

 http://www.sectop.com/get.php/"><script>alert(document.cookie);</script> 

那么表单变成 

<form action="get.php/"><script>alert(document.cookie);</script>" method="POST"> 

跨站脚本被插进去了 
防御方法还是使用htmlspecialchars过滤输出的变量,或者提交给自身文件的表单使用 

<form action="" method="post"> 
这样直接避免了$_SERVER["PHP_SELF"]变量被跨站


2.使用***检测产品的XSS防御

 
3.对关键字进行过滤,有的关键字在使用时被URL或其他的转码,所以在过滤式也应当考虑到
 
 
4.可以使用统一的编码,如UTF8

 

总结:
作为开发人员,要有一定的安全意识,当编写一段代码的时候,要站在攻方的角度,来思考程序的安全性。
作为安全人员,要站在开发人员的角度来思考,推测开发人员的逻辑,寻找缺陷,并加以利用。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值