前言
在为某客户网站做渗透测试时发现一个有趣的事情。当我访问该网站的某条链接时服务器返回的是404页面。看到这里我当时就下意识的忽略它,但是后来又想了想这也不是完全没有价值,毕竟中间件及其版本都出来了。于是上web神奇AWVS,大概扫了半小时终于有发现。
AWVS结果显示在sys_variable_name字段存在一个xss跨站脚本攻击漏洞。
但是不知道从何下手,于是接着查看HTTP request包,发现下方有一行提交的参数
正是这段参数:
flow_type=twvideo&funcNo=501936&op_source=0&sys_variable_name=%2573%2574%256B%256B%2568%255F%2561%2570%2570%255F%2564%256F%2577%256E%256C%256F%2561%2564%253C%2553%2563%2552%2569%2550%2574%2520%253E%2561%2546%2539%2545%25289976%2529%253C%252F%2573%2543%2572%2569%2570%2554%253E&user_id=0
于是将这段参数放到HackBar中提交,结果只看到服务器返回的json格式的数据。接着想到另一web神奇burpsuite,将整个request包放到repeater里面预览服务器返回的包。结果
发现一段熟悉的字符串<ScRiPt >...</sCripT>,然后将提交的参数经过两次url解码,找到脚本的位置。
接着将<ScRiPt >aF9E(9976)</sCripT>替换成<ScRiPt >alert(/xss/);</sCripT>执行请求发现测试成功。(如果字符串alert被过滤的话可以将字符串alert(/xss/); 进行两次url编码)
当然本次的漏洞属于反射型的XSS跨站脚本攻击漏洞,如果是存储型的XSS漏洞那么利用价值就大了,例如可以盗取管理员的cookie直接登录网站后台接着一大波操作。。。