黑客24小时在线接单网站

怎么联系真的黑客,24小时在线黑客联系方式,24小时在线联系黑客,正规黑客私人接单,黑客QQ联系方式

jsurlxss的简单介绍

本文目录一览:

请教各位大神关于从js写法上避免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()

如何测试XSS漏洞

XSS跨站漏洞分为大致三种:储存型XSS,反射型XSS,和DOM型XSS,一般都是由于网站对用户输入的参数过滤不严格而调用浏览器的JS而产生的。

储存型XSS:

一般是构造一个比如说"scriptalert("XSS")/script"的JS的弹窗代码进行测试,看是否提交后在页面弹窗,这种储存型XSS是被写入到页面当中的,如果管理员不处理,那么将永久存在,这种XSS攻击者可以通过留言等提交方式,把恶意代码植入到服务器网站上, 一般用于盗取COOKIE获取管理员的信息和权限。

反射型XSS:

一般是在浏览器的输入栏也就是urlget请求那里输入XSS代码,例如:127.0.0.1/admin.php?key="scriptalert("xss")/script,也是弹窗JS代码。当攻击者发送一个带有XSS代码的url参数给受害者,那么受害者可能会使自己的cookie被盗取或者“弹框“,这种XSS一次性使用,危害比储存型要小很多。

dom型:

常用于挖掘,是因为api代码审计不严所产生的,这种dom的XSS弹窗可利用和危害性并不是很大,大多用于钓鱼。比起存储型和反射型,DOM型并不常用。

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:dvbbs的showerror.asp存在的跨站漏洞。

利用最近热门的Xss漏洞能做什么?

1、针对性挂马 所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。 而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。 2、用户权限下操作 这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。 3、Dos攻击或傀儡机 这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。 4、提权 一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。 5、实现特殊效果 譬如Monyer在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。 结论: 从而你应该了解到这些网站应该具有的性质: 极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。 如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。 其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。 这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。 所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。 这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但 XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。所以他们可以“'”一下“出错了”而大喊,你却不能因为“alert”出了“xss窗口” 而乱叫。

求采纳

jsp页面或者JS中接收url参数的方法

假如有这么一个请求:

在jsp页面接收url参数,可以使用这样的方法:

在jsp中可以这样使用:bodyhi,%=name%/body

注:%=name% 不能防御XSS攻击

当然也可以在body中使用 ${param.name} 方法来获得,这里的param 是隐含对象,相当于reques.getParameter()方法。如:

此时如果url参数包含中文的话就需要进行转码操作,如下:

英文不需要转码操作,但是建议始终进行转码操作,这样处理起来会方便很多。

网站受到了XSS攻击,有什么办法?

一.跨站脚本攻击(XSS)

  跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网页时,特定的脚本就会以浏览者用 户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息,以及造成其它类型的攻击,例如CSRF攻击

   常见解决办法:确保输出到HTML页面的数据以HTML的方式被转义

    出错的页面的漏洞也可能造成XSS攻击.比如页面/gift/giftList.htm?page=2找不到,出错页面直接把该url原样输出,如果攻击者在url后面加上攻击代码发给受害者,就有可能出现XSS攻击

二. 跨站请求伪造攻击(CSRF)

   跨站请求伪造(CSRF,Cross-site request forgery)是另一种常见的攻击。攻击者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据,或者执行特定任务的目的。为了 假冒用户的身份,CSRF攻击常常和XSS攻击配合起来做,但也可以通过其它手段,例如诱使用户点击一个包含攻击的链接

  解决的思路有:

    1.采用POST请求,增加攻击的难度.用户点击一个链接就可以发起GET类型的请求。而POST请求相对比较难,攻击者往往需要借助javascript才能实现

    2.对请求进行认证,确保该请求确实是用户本人填写表单并提交的,而不是第三者伪造的.具体可以在会话中增加token,确保看到信息和提交信息的是同一个人

三.Http Heads攻击

 凡是用浏览器查看任何WEB网站,无论你的WEB网站采用何种技术和框架,都用到了HTTP协议.HTTP协议在Response header和content之间,有一个空行,即两组CRLF(0x0D 0A)字符。这个空行标志着headers的结束和content的开始。“聪明”的攻击者可以利用这一点。只要攻击者有办法将任意字符“注入”到 headers中,这种攻击就可以发生

 以登陆为例:有这样一个url:

当登录成功以后,需要重定向回page参数所指定的页面。下面是重定向发生时的response headers.

HTTP/1.1 302 Moved Temporarily

Date: Tue, 17 Aug 2010 20:00:29 GMT

Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

Location:

假如把URL修改一下,变成这个样子:

那么重定向发生时的reponse会变成下面的样子:

HTTP/1.1 302 Moved Temporarily

Date: Tue, 17 Aug 2010 20:00:29 GMT

Server: Apache mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

Location: ;CRLF

CRLF

scriptalert('hello')/script

    这个页面可能会意外地执行隐藏在URL中的javascript。类似的情况不仅发生在重定向(Location header)上,也有可能发生在其它headers中,如Set-Cookie header。这种攻击如果成功的话,可以做很多事,例如:执行脚本、设置额外的cookie(CRLFSet-Cookie: evil=value)等。

   避免这种攻击的方法,就是过滤所有的response headers,除去header中出现的非法字符,尤其是CRLF。

    服务器一般会限制request headers的大小。例如Apache server默认限制request header为8K。如果超过8K,Aapche Server将会返回400 Bad Request响应:

    对于大多数情况,8K是足够大的。假设应用程序把用户输入的某内容保存在cookie中,就有可能超过8K.攻击者把超过8k的header链接发给受害 者,就会被服务器拒绝访问.解决办法就是检查cookie的大小,限制新cookie的总大写,减少因header过大而产生的拒绝访问攻击

四.Cookie攻击

    通过Java Script非常容易访问到当前网站的cookie。你可以打开任何网站,然后在浏览器地址栏中输 入:javascript:alert(doucment.cookie),立刻就可以看到当前站点的cookie(如果有的话)。攻击者可以利用这个特 性来取得你的关键信息。例如,和XSS攻击相配合,攻击者在你的浏览器上执行特定的Java Script脚本,取得你的cookie。假设这个网站仅依赖cookie来验证用户身份,那么攻击者就可以假冒你的身份来做一些事情。

    现在多数浏览器都支持在cookie上打上HttpOnly的标记,凡有这个标志的cookie就无法通过Java Script来取得,如果能在关键cookie上打上这个标记,就会大大增强cookie的安全性

五.重定向攻击

  一种常用的攻击手段是“钓鱼”。钓鱼攻击者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信 任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方.常见解决方案是白名单,将合法的要重定向 的url加到白名单中,非白名单上的域名重定向时拒之,第二种解决方案是重定向token,在合法的url上加上token,重定向时进行验证.

六.上传文件攻击

  1.文件名攻击,上传的文件采用上传之前的文件名,可能造成:客户端和服务端字符码不兼容,导致文件名乱码问题;文件名包含脚本,从而造成攻击.

   2.文件后缀攻击.上传的文件的后缀可能是exe可执行程序,js脚本等文件,这些程序可能被执行于受害者的客户端,甚至可能执行于服务器上.因此我们必须过滤文件名后缀,排除那些不被许可的文件名后缀.

  3.文件内容攻击.IE6有一个很严重的问题 , 它不信任服务器所发送的content type,而是自动根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件.如果上传一个gif文件,在文件末尾放一段js攻击脚本,就有可 能被执行.这种攻击,它的文件名和content type看起来都是合法的gif图片,然而其内容却包含脚本,这样的攻击无法用文件名过滤来排除,而是必须扫描其文件内容,才能识别。

  • 评论列表:
  •  黑客技术
     发布于 2023-04-02 05:59:04  回复该评论
  • e。目前主流浏览器都支持,HttpOnly解决是XSS后的Cookie支持攻击。我们来看下百度有没有使用。未登录时的Cookie信息可以看到,所有Cookie都没有设置HttpOnly,现在我登录下发现在个叫BDUSS的Cookie设置了HttpOnly。可以猜测此Cook

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.