标签:link ret FN rect 登录界面 style 目标 stat color
页面目录如下:
register.php注册页面。
user.php可发送消息给其他用户。
profile.php可配置参数添加用户头像(加载eval js文件)。
static存在redirect.php重定向页面。
看下csp规则:
default-src ‘self‘;
script-src http://www.123.com/hctf2016_secret_area/static/ ‘sha256-n+kMAVS5Xj7r/dvV9ZxAbEX6uEmK+uen+HZXbLhVsVA=‘ ‘sha256-2zDCsAh4JN1o1lpARla6ieQ5KBrjrGpn0OAjeJ1V9kg=‘ ‘sha256-SQQX1KpZM+ueZs+PyglurgqnV7jC8sJkUMsG9KkaFwQ=‘ ‘sha256-JXk13NkH4FW9/ArNuoVR9yRcBH7qGllqf1g5RnJKUVg=‘ ‘sha256-NL8WDWAX7GSifPUosXlt/TUI6H8JU0JlK7ACpDzRVUc=‘ ‘sha256-CCZL85Vslsr/bWQYD45FX+dc7bTfBxfNmJtlmZYFxH4=‘ ‘sha256-2Y8kG4IxBmLRnD13Ne2JV/V106nMhUqzbbVcOdxUH8I=‘ ‘sha256-euY7jS9jMj42KXiApLBMYPZwZ6o97F7vcN8HjBFLOTQ=‘ ‘sha256-V6Bq3u346wy1l0rOIp59A6RSX5gmAiSK40bp5JNrbnw=‘;
font-src http://www.123.com/hctf2016_secret_area/static/ fonts.gstatic.com; style-src ‘self‘ ‘unsafe-inline‘;
img-src ‘self‘
1、script没有开启unsafe-inline,也就是说不允许内联脚本(不能直接写js代码注入)
2、script只允许static目录,但这个目录下内容不可控
3、style-src开启了unsafe-inline而且是self
4、default-src为self,也就是站内请求都是被许可的
攻击目标获:取admin的cookie。
攻击思路:defalt-src是self,表示即使拿到cookie也只能在域内传送,所以只能将cookie传回注册用户afanti.user.php存在常规xss但是unsafe-inline不能写入js代码。要是引入js代码,引入的目录在/hctf2016_secret_area/static/这里不可控没法传入js,/hctf2016_secret_area/upload/这个目录我们可控(通过上传头像写入代码),但是这个目录没有在script-src内,所以通过重定向绕过csp.到我们可控的目录/hctf2016_secret_area/upload/
攻击流程:
1.注册afanti用户并上传头像,攻击代码会将admin的cookie发送到afanti用户下
说下把script标签去掉,截图中没去,要不会报错
2、给admin发送如下消息
<scscriptript src="http://www.123.com/hctf2016_secret_area/static/redirect.php?u=/hctf2016_secret_area/upload/76eb335a573b564c6a02d2debda70402"></scriscriptpt>
3.当admin用户访问时,加载js的时候,会通过redirect.php页面加载 /hctf2016_secret_area/upload/76eb335a573b564c6a02d2debda70402这个js文件。
将admin的cookie发送给afanti用户。
4.afanti用户访问得到admin 的cookie
测试:设置到域外被default-src拦截。(link测试应该可以明天试一下)
总结:
通过302跳转绕过js,跳到我们可控的目录来执行js。
1、有跳转目录(登录界面)
2、存在xss
3、可控目录我们可以上传图像等文件
参考文章:
https://lorexxar.cn/2016/11/30/hctf2016-xss/
https://lorexxar.cn/2016/10/31/csp-then2/
标签:link ret FN rect 登录界面 style 目标 stat color
原文地址:https://www.cnblogs.com/afanti/p/9245706.html