安全大赛有感

  前几天参加了公司的安全大赛,其中有几题感觉本应该做出来,却没做出来,归根到底还是自己知识面太窄了。
  1、找xss漏洞,onclick=\”addMsg(\’\’)\”,表示是参数中可以传入的内容,但是会有过滤,“\”,“\’”,“\””等字符前面会加上“\”,“\’”,“\””会被替换为html编码形式,网页是gbk编码的。
  感觉应该是利用gbk编码的漏洞来绕过去,一般来说gbk编码漏洞都是利用GBK双字节中的第二个字符为“\”,如果server把“\”替换为“\\”,返回到浏览器时就变成一个汉字加一个“\”,可是不管怎么弄“\’”还是变成“'”,没法将前面的“\’”闭合。
  最后发现答案是:“%c0%5c%27);alert(1);//”,返回的html代码是:“onclick=\”addMsg(\’繺\\');alert(1);//\’)\””,如果这里还看不出问题的话,用chrome开发者工具看一下就会发现,解析后的html代码是:“onclick=\”addMsg(\’繺\\\’);alert(1);//\’)\””。 '已经被还原成了“\’”,从而闭合了前面的“\’”,这一点我之前是不知道的,而且也没有用开发者工具看一下,这一点太失败了。我离成功真的只有一步之遥了!
  有时间好好研究下什么情况下会还原,什么情况下不会还原!这些是原理层面的东西,可惜都不清楚啊!

  2、传统的从一个页面找下一个页面的游戏,有一个页面是将秘密隐藏在了HTTP响应头中,可我一直都是在html代码中找线索,白白浪费了时间。下次遇到这类题目一定要立马开fiddler。这个失败主要还是思维定势,想问题一定要思路开阔,不能太死!!!

分享