2、什么是xxs漏洞
xss攻击是webshell类中的一种,是跨站攻击,可以通过WAF应用防火墙防御,如果懂技术可以自己写,相关的程序规则进行拦截,返回错误请求信息,或者安装安全狗 云锁之类的,和百度云加速等都带有免费的WAF功能,也可以找智多互联,专业防御各种攻击,提供专业的防御方案
XSS攻击的危害包括 1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号 2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力 3、盗窃企业重要的具有商业价值的资料 4、非法转账 5、强制发送电子邮件 6、网站挂马 7、控制受害者机器向其它网站发起攻击 1.2 XSS漏洞的分类 XSS漏洞按照攻击利用手法的不同,有以下三种类型: 类型A,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。其攻击过程如下所示: Alice给Bob发送一个恶意构造了Web的URL。 Bob点击并查看了这个URL。 恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在Bob电脑上。 具有漏洞的HTML页面包含了在Bob电脑本地域执行的JavaScript。 Alice的恶意脚本可以在Bob的电脑上执行Bob所持有的权限下的命令。 类型B,反射式漏洞,这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。其攻击过程如下: Alice经常浏览某个网站,此网站为Bob所拥有。Bob的站点运行Alice使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。 Charly发现Bob的站点包含反射性的XSS漏洞。 Charly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。 Alice在登录到Bob的站点后,浏览Charly提供的URL。 嵌入到URL中的恶意脚本在Alice的浏览器中执行,就像它直接来自Bob的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在Alice完全不知情的情况下将这些信息发送到Charly的Web站点。 类型C,存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。其攻击过程如下: Bob拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。 Charly注意到Bob的站点具有类型C的XXS漏洞。 Charly发布一个热点信息,吸引其它用户纷纷阅读。 Bob或者是任何的其他人如Alice浏览该信息,其会话cookies或者其它信息将被Charly盗走。 类型A直接威胁用户个体,而类型B和类型C所威胁的对象都是企业级Web应用
较新版本直接绕过比较难,但如果网站存在CRLF漏洞,就可以让服务器返回一个包含X-XSS-Protection并值为0的http头,关闭浏览器的filter,而且CRLF漏洞自身也可以导致xss和session固定等漏洞
之一种:反射型XSS攻击
反射型XSS攻击一般是攻击者通过特定手法,诱使用户去访问一个包含恶意代码的URL,当受害者点击这些专门设计的链接的时候,恶意代码会直接在受害者主机上的浏览器执行。此类XSS攻击通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端Cookies或进行钓鱼欺骗。
第二种:DOM-based型XSS攻击
客户端的脚本程序可以动态地检查和修改页面内容,而不依赖于服务器端的数据。例如客户端如从URL中提取数据并在本地执行,如果用户在客户端输入的数据包含了恶意的JavaScript脚本,而这些脚本没有经过适当的过滤或者消毒,那么应用程序就可能受到DOM-based型XSS攻击。需要特别注意以下的用户输入源document.URL、location.hash、location.search、document.referrer 等。
第三种:存储型XSS攻击
攻击者事先将恶意代码上传或者储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。这意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本,因此存储型XSS攻击的危害会更大。此类攻击一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。
Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码,当用户浏览该页或者进行某些操作时,攻击者利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的操作或者向其它网站提交用户的私密信息。
比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。
诸如此类,唯一能完全杜绝xss攻击的 *** ,就是禁用script,img等,显然这是不靠谱的,用户需要丰富的页面内容;当然我们可以用一些 *** 预防xss攻击,尽量减少xss造成的危害。
XSS攻击的危害包括
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
盗窃企业重要的具有商业价值的资料
非法转账
强制发送电子邮件
网站挂马
控制受害者机器向其它网站发起攻击
XSS攻击通常是指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。
一、HttpOnly防止劫取Cookie
HttpOnly最早由微软提出,至今已经成为一个标准。浏览器将禁止页面的Javascript访问带有HttpOnly属性的Cookie。目前主流浏览器都支持,HttpOnly解决是XSS后的Cookie支持攻击。
我们来看下百度有没有使用。
未登录时的Cookie信息
可以看到,所有Cookie都没有设置HttpOnly,现在我登录下
发现在个叫BDUSS的Cookie设置了HttpOnly。可以猜测此Cookie用于认证。
下面我用PHP来实现下:
?php
header("Set-Cookie: cookie1=test1;");
header("Set-Cookie: cookie2=test2;httponly",false);
setcookie('cookie3','test3',NULL,NULL,NULL,NULL,false);
setcookie('cookie4','test4',NULL,NULL,NULL,NULL,true);
script
alert(document.cookie);
/script
js只能读到没有HttpOnly标识的Cookie
二、输入检查
输入检查一般是检查用户输入的数据中是否包含一些特殊字符,如、、'、"等,如果发现存在特殊字符,则将这些字符过滤或者编码。
例如网站注册经常用户名只允许字母和数字的组合,或者邮箱 *** ,我们会在前端用js进行检查,但在服务器端代码必须再次检查一次,因为客户端的检查很容易绕过。
网上有许多开源的“XSS Filter”的实现,但是它们应该选择性的使用,因为它们对特殊字符的过滤可能并非数据的本意。比如一款php的lib_filter类:
$filter = new lib_filter();
echo $filter-go('1+11');
它输出的是1,这大大歪曲了数据的语义,因此什么情况应该对哪些字符进行过滤应该适情况而定。
三、输出检查
大多人都知道输入需要做检查,但却忽略了输出检查。
1、在HTML标签中输出
如代码:
?php
$a = "scriptalert(1);/script";
$b = "img src=# onerror=alert(2) /";
div?=$b?/div
a href="#"?=$a?/a
这样客户端受到xss攻击,解决 *** 就是对变量使用htmlEncode,php中的函数是htmlentities
?php
$a = "scriptalert(1);/script";
$b = "img src=# onerror=alert(2) /";
div?=htmlentities($b)?/div
a href="#"?=htmlentities($a)?/a
2、在HTML属性中输出
div id="div" name ="$var"/div
这种情况防御也是使用htmlEncode
在owasp-php中实现:
$immune_htmlattr = array(',', '.', '-', '_');
$this-htmlEntityCodec-encode($this-immune_htmlattr, "\"script123123;/script\"");
3、在script标签中输出
如代码:
?php
$c = "1;alert(3)";
script type="text/javascript"
var c = ?=$c?;
/script
这样xss又生效了。首先js变量输出一定要在引号内,但是如果我$c = "\"abc;alert(123);//",你会发现放引号中都没用,自带的函数都不能很好的满足。这时只能使用一个更加严格的JavascriptEncode函数来保证安全——除数字、字母外的所有字符,都使用十六进制"\xHH"的方式进行编码。这里我采用开源的owasp-php *** 来实现
$immune = array("");
echo $this-javascriptCodec-encode($immune, "\"abc;alert(123);//");
最后输出\x22abc\x3Balert\x28123\x29\x3B\x2F\x2F
4、在事件中输出
a href="#" onclick="funcA('$var')" test/a
可能攻击 ***
a href="#" onclick="funcA('');alter(/xss/;//')"test/a
这个其实就是写在script中,所以跟3防御相同
5、在css中输出
在owasp-php中实现:
$immune = array("");
$this-cssCodec-encode($immune, 'background:expression(window.x?0:(alert(/XSS/),window.x=1));');
6、在地址中输出
先确保变量是否是"http"开头,然后再使用js的encodeURI或encodeURIComponent *** 。
在owasp-php中实现:
$instance = ESAPI::getEncoder();
$instance-encodeForURL(‘url’);
四、处理富文体
就像我写这篇博客,我几乎可以随意输入任意字符,插入图片,插入代码,还可以设置样式。这个时要做的就是设置好白名单,严格控制标签。能自定义 css件麻烦事,因此更好使用成熟的开源框架来检查。php可以使用htmlpurify
五、防御DOM Based XSS
DOM Based XSS是从javascript中输出数据到HTML页面里。
script
var x = "$var";
document.write("a href='"+x+"'test/a");
/script
按照三中输出检查用到的防御 *** ,在x赋值时进行编码,但是当document.write输出数据到HTML时,浏览器重新渲染了页面,会将x进行解码,因此这么一来,相当于没有编码,而产生xss。
防御 *** :首先,还是应该做输出防御编码的,但后面如果是输出到事件或脚本,则要再做一次javascriptEncode编码,如果是输出到HTML内容或属性,则要做一次HTMLEncode。
会触发DOM Based XSS的地方有很多:
document.write()、document.writeln()、xxx.innerHTML=、xxx.outerHTML=、innerHTML.replace、document.attachEvent()、window.attachEvent()、document.location.replace()、document.location.assign()
直接用$this-input-post() 其实就是去掉了跨站脚本过滤功能。手册上有说明post的第二个参数。第二个参数是可选的,如果想让取得的数据经过跨站脚本过滤(XSS Filtering),把第二个参数设为TRUE。
从攻击代码的工作方式可以分为三个类型:
(1)持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。
(2)非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
(3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。
基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。
常用的XSS攻击手段和目的有:
1、盗用cookie,获取敏感信息。
2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDos攻击的效果。
外钢投标有限责任私司蒙某单元 委派,依据 《外华群众共战国当局 洽购法》等无关划定 ,现 对于某单元 园区培修工程散外洽购名目入止其余投标,迎接 及格 的供给 商前去招标。 名目称号:某单元 园区培修工程散外洽购名目 名目编号: 二 一 四0STC 三 二00 二 名目接洽 体式格...
外国消息 起源 :央望网 二0 一 八年0 八月0 五日 一 八: 五 九 A-A+ 扫一扫 脚机 浏览 尔要分享 QQ空间新浪微专腾讯微专QQ微疑 本题目 : 央望网新闻 : 八月 三日早,针 对于美圆正在此前颁布 对于外圆 二000亿美圆输美产物 添征 一...
六00 七0 一*ST工新 四点0 八元, 六00 八 六 八尔一向 看孬 六00 二 一 二,的无机会出借有涨停百分之 一0的有详细 .购进后最佳 三个月别看它, 六00 二 一 七,高价股皆是年夜 盘股多! 五。联合 (市亏率的,下科技。 A股曾经出有 三元如下的了,ST秦岭 三。无论哪一种类...
又名察我汗盐池。主要 而名贵 的计谋 资本 ,山东招近的黄金,东到祸修的北岭一带, 二00 九年 一 一月 一0日,截止 二00 五岁尾 ,器械 少 一 六 八私面,外国铝型材企业十弱。 铝矿,江西德废的铜、南边 多南圆长,不外 名双是会有所更新的,宣布 了十年夜 “探求 十年夜 ‘非有名 ’山岳...
固然 如今 曾经是炎天 了,然则 尔国南边 地域 连日去暴雨地气异常 多,许多 乡市皆产生 了洪火,而那二地洪火最严峻 的要数湖南仇施了,如今 湖南仇施的乡区曾经年夜 里积被淹,以至借推响了防控警报,这么交高去咱们便一路 相识 一高湖南仇施乡区年夜 里积被淹、仇施推响防空警报的具体 情形 吧!...
很快便要到年夜 寒了,后来的骨气 便是坐春,否能许多 人会认为 坐春应该便会入进秋日 ,地气清新 舒畅 了,但事例没有是如许 的,秋日 去了借有一个很让人畏惧 的春山君 ,这年夜 野 晓得何时坐春以及几号坐春吗,交高去年夜 野便随百思特小编一路 相识 看看~ ...