<>YXcms(MVC)

YXcms 1.4.7

<>熟悉MVC架构

路由方式

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

参数传递

in($_GET[])
...... public function test() { $param=in($_GET['a']); var_dump($param); } ....
..
$_GET 接收值,通过 in 进行过滤

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 型注入,也没有对数组的键进行过滤

<>增删改查


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


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); }


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

数字注入

insert注入

后台任意文件删除

<>任意文件写入

XSS

前台留言处存在 xss

存入时会进行过滤

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

…(img-lpIJx1y6-1617631219454)]

存入时会进行过滤

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

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

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

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信