[php代码审计]ecshop的两个鸡肋注入
由于刚学php,就试着读一下ecshop的源码,发现两个鸡肋注入,由于都含有单引号,导致无法过gpc
鸡肋注入1:在goods.php文件在代码大概277到278行
/* 更新点击次数 */
$db->query('UPDATE ' . $ecs->table('goods') . " SET click_count = click_count + 1 WHERE goods_id = '$_REQUEST[id]'");
鸡肋注入2:user.php文件在代码大概621到634行
/* 密码找回-->根据注册用户名取得密码提示问题界面 */
elseif ($action == 'get_passwd_question')
{
if (empty($_POST['user_name']))
{
show_message($_LANG['no_passwd_question'], $_LANG['back_home_lnk'], './', 'info');
}
else
{
$user_name = trim($_POST['user_name']);//在这里$user_name只是简单的去掉空格而已//by 少校 QQ1006079161
}
//取出会员密码问题和答案
$sql = 'SELECT user_id, user_name, passwd_question, passwd_answer FROM ' . $ecs->table('users') . " WHERE user_name = '" . $user_name . "'";//$user_name可控,导致注入//by 少校 QQ1006079161
echo $sql;
$user_question_arr = $db->getRow($sql);
/* 对用户传入的变量进行转义操作。*/
if (!get_magic_quotes_gpc())
{
if (!empty($_GET))
{
$_GET = addslashes_deep($_GET);
}
if (!empty($_POST))
{
$_POST = addslashes_deep($_POST);
}
$_COOKIE = addslashes_deep($_COOKIE);
$_REQUEST = addslashes_deep($_REQUEST);
}
由于是新手,不对的地方 大家多多指点,希望认识几个代码审计的朋友多交流!
评论37次
看看
支持啊!!!!!
同是代码审计的新手,支持。
ecshop果然是个筛子。。。。
好像$_SERVER 不会进行过滤吧。研究下先
鸡肋的积攒多了,某些情况下联合使用就不鸡肋了~
lz精神可嘉。
虽然不懂php,但是看到这样的代码分析,还是支持一下,搞代码真心累
有空下个ecshop看看。。。。。
这的确是个注入的地方。
一起研究!
支持代码审计贴~我最喜欢了。。。
不错。虽然鸡肋都不算了。。必究也可供学xi。。
代码不错啊。
恩。。没办法是用的 他直接都是转义的 就是这玩意不是漏洞啦
lz学php有什么技巧没 最近刚看php
好难利用,标记一下。
嗯 确实比较狗血, 可以按照过年的时候(好像是元旦还是过年来着?)耶稣黑盒出来那个通杀注射的思路找找, 应该还有, 最近也爆出了几个那种类型的, 另外他只过滤了value, 没过滤key, 我记得好像有几个搜索的地方, key直接带进去了, 在没开gpc的情况下可射
漏洞一般还是测试一下好些
@hkleander 这。。好尴尬