0x01 简介
在asp脚本中,如果没有对request.coolie('参数名称')这种方式提交过来的数据进行过滤的话,就有存在cookie注入的风险。
0x02 判断是否存在cookie注入
- 找到带有
xx.asp?id=xx
关键字的URL,例如http://www.domain.com/xx.asp?id=xx。然后删除掉?id=xx看页面是否报错,如果报错,说明id=xx参数在数据传递中是直接起作用的; - 在浏览器中输入
JavaScript:alert(document.cookie="id="+escape("xx"));
,此时页面会弹出一个内容为id=xx的对话框;接着在网址栏输入删除掉了?id=xx的URL(http://www.domain.com/xx.asp)看页面是否能正常显示。如果页面正常显示,则说明网站程序是使用request("id")这种方式来获取数据的; - 在网址栏输入
JavaScript:alert(document.cookie="id="+escape("xx and 1=1"));
弹窗,然后在网址栏输入http://www.domain.com/xx.asp,此时如果页面正常则进入下一步判断; - 在网址栏输入
JavaScript:alert(document.cookie="id="+escape("xx and 1=2"));
弹窗,然后在网址栏输入http://www.domain.com/xx.asp,此时如果页面回显异常,则代表此处存在cookie注入。
接下来就是将常规的SQL注入语句带入JavaScript:alert(document.cookie="id="+escape("xx"));
进行查询,如猜解列数JavaScript:alert(document.cookie="id="+escape("xx order by 10"));
利用页面回显正常或者异常来进行盲注。
0x03 总结
本想找个靶场边学边练的,结果试了几个asp的cms都没有cookie注入漏洞,无奈只有干学了。好在cookie不难理解,稍微尝试了下判断步骤之后,也明白了个七七八八,不过这一言不合就要盲注猜解,难搞啊~