YXcms(mvc架构php的cms)简单学习与审计

YXcms(MVC)

YXcms 1.4.7

熟悉MVC架构

路由方式

通过一个 r 的文件指针进行路由

YXcms(mvc架构php的cms)简单学习与审计_第1张图片

YXcms(mvc架构php的cms)简单学习与审计_第2张图片

参数传递

in($_GET[])

......
	public function test()
    {
     
        $param=in($_GET['a']);
        var_dump($param);
    }
......

$_GET 接收值,通过 in 进行过滤

YXcms(mvc架构php的cms)简单学习与审计_第3张图片

in 函数

//数据过滤函数库
/*
功能:用来过滤字符串和字符串数组,防止被挂马和sql注入
参数$data,待过滤的字符串或字符串数组,
$force为true,忽略get_magic_quotes_gpc
*/
function in($data,$force=false){
     
	if(is_string($data)){
     
		$data=trim(htmlspecialchars($data));//防止被挂马,跨站攻击
		if(($force==true)||(!get_magic_quotes_gpc())) {
     
		   $data = addslashes($data);//防止sql注入
		}
		return  $data;
	} else if(is_array($data)) {
     
		foreach($data as $key=>$value){
     
		   $data[$key]=in($value,$force);
		}
		return $data;
	} else {
     
		return $data;
	}	
}

可以看到函数并不能防止 int 型注入,也没有对数组的键进行过滤

YXcms(mvc架构php的cms)简单学习与审计_第4张图片

增删改查

# default/indexController.php

class indexController extends commonController
{
     
    public function test()
    {
     
        $id = in($_GET['id']);
        $result = model('user')->find("id={
       $id}");
        var_dump($result);
    }
......

YXcms(mvc架构php的cms)简单学习与审计_第5张图片

    public function test()
    {
        $data=['username'=>'ocean2','password'=>'ocean2'];
        $result=model('user')->insert($data);
        var_dump($result);
    }

    public function test()
    {
     
        $id = in($_GET['id']);
        $data=['username'=>'nc000eee','password'=>'nce000ee'];
        $result=model('user')->update("id={
       $id}",$data);
        var_dump($result);

    }

YXcms(mvc架构php的cms)简单学习与审计_第6张图片

public function test()
{
     
    $id = in($_GET['id']);
    $result=model('user')->delete("id={
       $id}");
    var_dump($result);
}

漏洞

数字注入

insert注入

后台任意文件删除

YXcms(mvc架构php的cms)简单学习与审计_第7张图片

任意文件写入

YXcms(mvc架构php的cms)简单学习与审计_第8张图片

image-20210405212430379

XSS

前台留言处存在 xss

YXcms(mvc架构php的cms)简单学习与审计_第9张图片

存入时会进行过滤

但是后台审核处会将其还原

YXcms(mvc架构php的cms)简单学习与审计_第10张图片

image-20210405213555811

…(img-lpIJx1y6-1617631219454)]

存入时会进行过滤

但是后台审核处会将其还原

[外链图片转存中…(img-6LOyjGnD-1617631219455)]

[外链图片转存中…(img-nZ2k7yOy-1617631219456)]

你可能感兴趣的:(PHP,#,漏洞复现,php,mvc)