web2.0安全概念诞生以来,走向是越来越邪恶猥琐,从csrf到今天的 clickjacking.都可以证明这点.clickjacking其实就是CSS Overlays一个猥琐的应用,这样的技巧应该在优秀的web设计者利用的技巧,但是经过安全人员邪恶的思考就诞生了著名的clickjacking.
关于css带来的一些安全问题,国内外都有一定的观注了.详细可以看看David Lindsay ,Gareth Heyes,Eduardo Vela Nava[sdc]三人在bluehat8上的演讲:
http://www.thespanner.co.uk/wp-content/uploads/2008/10/the_sexy_assassin2ppt.zip
pp里的exp:http://p42.us/css/ 另外sdc和garethheyes的blog上都有一些想关的介绍:
http://sirdarckcat.blogspot.com/2008/10/about-css-attacks.html
http://www.thespanner.co.uk/2008/10/20/bluehat/
想比下老外对css的研究,国内的由于*A的介入,导致css里xss研究更加深入,hotmail yahoo的xss都是围绕着css里的expression来的,这里有个主要的原因是expression对ie6/ie7都有很好的支持,而且在 css里对于ff2我们也可以通过-moz-binding来实现xss. 所以目前 style. 标签[css]里的xss仍然是寻找mail xss的主要途径.
如果大家分析过yahoo等暴光的那些poc就会发现 那些代码比较奇怪,我想可能是通过大量的测试和fuzz跑出来的. 于是我也学着简单的写了一个脚本[这个太简单了,所以没找到什么 :(].
//xss fuzzing
//by www.80vul.com
//some from Gareth Heyes 's codz :) thx
$string="expression";
$strinj="/*google*/";
//$strinj=str_replace('/',stringToHexString('/','dec'),$strinj);
$strinj=str_replace('/*','/'.stringToHexString('*','dec'),$strinj);
//$strinj=stringToHexString("/*}}'*/",'dec');
$arr=array();
for($i=0,$len=strlen($string);$i<$len;$i++)
{
$stringarr[$i]=substr($string, $i,1);
$destring=substr($string, 0, $i) . $strinj . substr($string, $i, strlen($string));
//print $destring."
";
array_push($arr,$destring);
}
array_push($arr,implode($strinj, $stringarr));
//print_r($arr);
//print implode($strinj, $stringarr);
foreach ($arr as $i => $value) {
// print($arr[$i]."
");
//$xss= 'Hello'.$i.'';
//$xss='';
$xss='hihihihihihi';
$file=fopen("xsslog.txt","a+");
fputs($file,"$xss\r\n");
fclose($file);
}
function stringToHexString($str,0){
$tmp='';
//$rand = rand(1,100);
for($i=0,$len=strlen($str);$i<$len;$i++)
{
$ord=Ord($str[$i]);
if(0=='dec'){$tmp.="".base_convert($ord,10,16).";";}
if(0=='hex'){$tmp.="".base_convert($ord,10,16).";";}
}
return $tmp;
}
?>
最后附上几个css有关的link:
http://nb.io/hacks/csshttprequest/
http://hi.baidu.com/ycosxhack/blog/item/62ad7c082e74f3930b7b8242.html