通用型证明:
--------------------------------------------------
实例可参照官网给出的部分案例 http://jjw.goodjjw.com/
注册会员处,改包,即可可注入出信息。
.../login_action.php?type_action=add&id=
修改这两个参数

就不一一截图了。可自行测试。
-----------------------------------------------------------------------------
下面从代码层来说说漏洞的产生。
对于所有get,post的数据,该cms都调用了 str_sql这个函数
这个函数是有很大问题的。
如果gpc为off或者为高版本,我们可带入\
如果gpc为on的话, 我们提交单引号 ' 时 ,
同样带入了 \
那么 ,当sql语句有两个变量可控,我们即可注入出自己所想要的数据。
很快可以找到这么几处,
1.
D:/wamp/www/login_action.php (注册会员处)
fax和qq_number进过str_sql后直接带入了insert 。满足了条件。
2.
D:/wamp/www/login_action.php
同第一处,值得注意的是 这里 money_value可以自己控制,那么亦可导致一个无限充值的bug。
3.
D:/wamp/www/login_action.php
此处 我们提交 login.php?disp_type=edit_password&username=aaaaaa\
post: ask_value= or 1%23
即可重置全站所有会员密码(包括管理员)。
4.
D:/wamp/www/admin/index.php
同理。 username=\ password= or 1%23 直接进入后台。
上诉所述的 皆为gpc为off的情况,单gpc为on时 ,将\替换为 ' 即可。
-------------------------------
以第一处sql为例,官网测试。
