欧美激情网,国产欧美亚洲高清,欧美屁股xxxxx,欧美群妇大交群,欧美人与物ⅴideos另类,区二区三区在线 | 欧洲

知識學堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 常見技術問題
XSS成因與防范
更新時間:2012-06-03 | 發(fā)布人:本站 | 點擊率:526
什么是xss漏洞
 
XSS又叫CSS英文縮寫為CrossSite Script,中文意思為跨站腳本攻擊,具體內(nèi)容指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達到惡意用戶的特殊目的.
< (less than)
 
> (greater than)
 
: (colon)
 
" (double quote)
 
/ (forward slash)
 
\ (backslash)
 
| (vertical bar or pipe)
 
? (question mark)
 
* (asterisk)
 
而linux下面是沒有對這些大部分字符進行限制的,可以隨意定義的,那么,我們就可以將 XSS Pyload 存儲在文件名中,如圖所示:
我們可以看到可以成功將 xss pyload 存儲在文件名當中了。
二、利用攻擊
很多時候,由于代碼的各種環(huán)境,讓我們的攻擊成為可能,查看以下PHP上傳文件代碼:
 
<?php
 
if ($_FILES["file"]["error"] > 0)
 
  {
 
  echo "Error:" . $_FILES["file"]["error"] . "<br/>";
 
  }
 
else
 
  {
 
  echo"Upload: " . $_FILES["file"]["name"] ."<br />";
 
  echo "Type:" . $_FILES["file"]["type"] . "<br/>";
 
  echo "Size:" . ($_FILES["file"]["size"] / 1024) . " Kb<br/>";
 
  echo "Storedin: " . $_FILES["file"]["tmp_name"];
 
  }
 
?>
 
<html>
 
<body>
 
<form action="" method="post"enctype="multipart/form-data">
 
<label for="file">Filename:</label>
 
<input type="file" name="file"id="file" />
 
<br />
 
<input type="submit" name="submit"value="Submit" />
 
</form>
 
</body>
 
</html>
 
當文件上傳成功,程序?qū)⑽募畔⑦M行輸出。而此時沒有對文件名進行任何處理,那么,如果將我們定義好的特殊字符的文件名進行上傳,然后經(jīng)過程序輸出,就可以攻擊了,如圖所示:
 
可以看到,我們確實可以攻擊成功了!那么,并不是所有的上傳地方都存在,要滿足以下條件才可以:
1、文件上傳后保存前進行了一次原樣輸出。
2、直接按原文件名進行存儲。
3、其他特定環(huán)境,看程序邏輯。
4、web server 為 linux。
5、上傳攻擊機器為 linux。
示例代碼:http://code.google.com/p/madal-example-project/source/browse/trunk/controllers/image_uploader.php?r=2
更多的:http://code.google.com/query/#q=$_FILES[%22file%22][%22name%22]
線上攻擊測試:http://www.woyigui.cn/fileupload.php
 
三、防范
1、存儲時以隨機文件名保存。
2、任意時候?qū)ξ募M行處理后輸出,可以進行 html 編碼后輸出。
 
參考:
 
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx