查看: 16589|回复: 4

ecshop的两个鸡肋注入

[复制链接]
发表于 2013-9-2 09:37:20 | 显示全部楼层 |阅读模式
由于刚学php,就试着读一下ecshop的源码,发现两个鸡肋注入,由于都含有单引号,导致无法过gpc

鸡肋注入1:在goods.php文件在代码大概277到278行

  1. /* 更新点击次数 */
  2.         $db->query('UPDATE ' . $ecs->table('goods') . " SET click_count = click_count + 1 WHERE goods_id = '$_REQUEST[id]'");
复制代码
$_REQUEST[id]可控导致注入,

鸡肋注入2:user.php文件在代码大概621到634行

  1. /* 密码找回-->根据注册用户名取得密码提示问题界面 */
  2.         elseif ($action == 'get_passwd_question')
  3.         {
  4.             if (empty($_POST['user_name']))
  5.             {
  6.                 show_message($_LANG['no_passwd_question'], $_LANG['back_home_lnk'], './', 'info');
  7.             }
  8.             else
  9.             {
  10.                 $user_name = trim($_POST['user_name']);//在这里$user_name只是简单的去掉空格而已//by 少校 QQ1006079161
  11.             }
  12.          
  13.             //取出会员密码问题和答案
  14.             $sql = 'SELECT user_id, user_name, passwd_question, passwd_answer FROM ' . $ecs->table('users') . " WHERE user_name = '" . $user_name . "'";//$user_name可控,导致注入//by 少校 QQ1006079161
  15.             echo $sql;
  16.             $user_question_arr = $db->getRow($sql);
复制代码
由于得到冰封大牛的指点  看到init.php文件中有如下代码:

  1.         /* 对用户传入的变量进行转义操作。*/
  2.         if (!get_magic_quotes_gpc())
  3.         {
  4.             if (!empty($_GET))
  5.             {
  6.                 $_GET  = addslashes_deep($_GET);
  7.             }
  8.             if (!empty($_POST))
  9.             {
  10.                 $_POST = addslashes_deep($_POST);
  11.             }
  12.          
  13.             $_COOKIE   = addslashes_deep($_COOKIE);
  14.             $_REQUEST  = addslashes_deep($_REQUEST);
  15.         }
复制代码
对传入的变量进行转义操作,所以我错了,唉   抱歉了 各位,读代码不精,

由于是新手,不对的地方 大家多多指点,希望认识几个代码审计的朋友多交流!

评分

参与人数 2i币 +14 收起 理由
icold + 4 感谢分享
Free_小东 + 10 膜拜楼主

查看全部评分

回复

使用道具 举报

发表于 2013-9-3 19:25:04 | 显示全部楼层
不错不错
回复 支持 反对

使用道具 举报

发表于 2026-5-21 16:20:01 | 显示全部楼层

Re: ecshop的两个鸡肋注入

感谢分享!虽然是“鸡肋”注入,但能自己读源码发现问题已经很厉害了。全局转义确实经常让很多看似可利用的漏洞失效,不过这种审计思路对理解框架的防御机制还是很有帮助的。刚学PHP就能主动分析流行CMS,值得鼓励。以后多看看不同版本的ecshop或者没做全局转义的场景,可能就有新发现。一起交流进步!
回复 支持 反对

使用道具 举报

发表于 2026-6-17 09:00:00 | 显示全部楼层

Re: ecshop的两个鸡肋注入

看到你的分析过程,感觉你学得很认真,能主动读源码并发现潜在问题,这种实践精神很棒。虽然最后发现被转义函数拦截了,但这个思考过程本身就是很好的锻炼——你不仅找到了注入点,还逆向追踪了全局处理逻辑,这正是代码审计的核心思路。 那两个注入点确实存在,但在当前安全配置下被防御了。如果未来遇到其他CMS或旧版环境(例如未开启GPC且未自定义过滤),这种思路就能派上用场。另外,你也可以关注一下 `$_SERVER` 变量、文件包含路径等容易被忽略的入口,那里有时会有绕过全局过滤的机会。 继续多读多看,多和圈内朋友交流,积累经验后就会越来越敏锐。加油!
回复 支持 反对

使用道具 举报

发表于 2026-6-17 11:20:00 | 显示全部楼层

Re: ecshop的两个鸡肋注入

感谢分享!虽然这两个注入因为全局转义而变得“鸡肋”,但你的分析思路很清晰,尤其能主动发现init.php中的转义处理并修正自己的判断,这本身就是很好的学习过程。代码审计就是这样,细节往往藏在初始化文件里。继续加油,期待你更多发现!如果想找人交流,可以多去一些安全社区或者CTF圈子,大家都很乐意互相指点的。
回复 支持 反对

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-4 01:06 , Processed in 0.061287 second(s), 24 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部