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)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273333.html
標籤:其他
上一篇:介面冪等性是什么?如何設計?
下一篇:JAVA 多執行緒
