seacms sql注入

最近在代码审计,审到一个注入,提交,说重复了,好尴尬啊。
源码下载: http://www.mycodes.net/47/7976.htm
在/i.php,获取ip的时候,全局的ip获取是做了正则。不知道问什么这里重新进行了一次ip的获取。
<?php
session_start();
require_once("include/common.php");
require_once(sea_INC."/main.class.php");

$i=file_get_contents("data/admin/i.txt");
if($i==0){showmsg('系统已经关闭积分推广系统', 'index.php');exit;}

$u=addslashes($_GET['uid']);
if(empty($u) OR !is_numeric($u)){showmsg('无法获取目标用户ID', 'index.php');exit;}

function get_client_ip() { 
    if(getenv('HTTP_CLIENT_IP')){ 
        $client_ip = getenv('HTTP_CLIENT_IP'); 
    } elseif(getenv('HTTP_X_FORWARDED_FOR')) { 
        $client_ip = getenv('HTTP_X_FORWARDED_FOR'); 
    } elseif(getenv('REMOTE_ADDR')) {
        $client_ip = getenv('REMOTE_ADDR'); 
    } else {
        $client_ip = $_SERVER['REMOTE_ADDR'];
    } 
    return $client_ip; 
} 
$bip = get_client_ip(); 

$row = $dsql->GetOne("Select * from sea_ie where ip='$bip'");
//print_r($row);
if(!is_array($row))
{
	$dsql->ExecuteNoneQuery("insert into sea_ie values('','$bip',NOW())");
	$sql="Update sea_member set points = points+$i where id=$u";
	$dsql->ExecuteNoneQuery("$sql");
	showmsg('感谢您的支持,现在将自动跳转到首页', 'index.php');exit;
}

$i 的值通过查看/data/admin/i.txt。$i=2;所以积分推广系统没有关闭,继续执行下面的代码:
可以看到

$bip = get_client_ip(); 

$row = $dsql->GetOne("Select * from sea_ie where ip='$bip'");
//print_r($row);
if(!is_array($row))
{
	$dsql->ExecuteNoneQuery("insert into sea_ie values('','$bip',NOW())");
	$sql="Update sea_member set points = points+$i where id=$u";
	$dsql->ExecuteNoneQuery("$sql");
	showmsg('感谢您的支持,现在将自动跳转到首页', 'index.php');exit;
}

$bip没有过滤就已经查询和入库了,所以造成注入,这里要对$uid进行了赋值,结果如下:




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值