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进行了赋值,结果如下:




发布了20 篇原创文章 · 获赞 11 · 访问量 13万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览