受影响版本:貌似都受影响。
漏洞文件:tools/ajax.aspx
漏洞分析:这个页面里的ajax请求,都没有进行权限的验证,游客权限就可以调用其中的所有方法,很危险的写法,于是有了下面的漏洞。
当filename和upload两个参数同时不为空时,取得input的值,并解密生成uid,然后调用UploadTempAvatar(uid)上传头像,继续跟进方法UploadTempAvatar:
在方法内部对上传文件的文件名进行字符串组装,其中uid是我们可以控制的,所以可以通过让uid取值为”test.asp;”,组装后的文件名是avatar_test.asp;.jpg,这样上传后的文件IIS6便会直接执行,得到webshell。
实例演示:
1.目标站:http://www.xxxxer.net
2.伪造reference,因为ajax这个页面只对reference进行了验证。
3.构造input参数的值,因为我们的目标是为uid赋值”test.asp;”,uid为input解密而来,通过默认 Passwordkey(位于/config/general.config中),对”test;.asp”加密得到input的值”Jw6IIaYanY7W0695pYVdOA==”。
4.构造请求参数:
上传成功后会直接把shell地址回显出来,