原php168的一个漏洞
来源:互联网 发布:淘宝十大名店是谁创的 编辑:程序博客网 时间:2024/05/16 12:36
这个问题是程序员容易忽略的,往往只是依靠gpc或addslashes函数对用户直接输入的数据进行处理,这样数据中的'"等都会被\转义,这样就能正确的执行sql语句,有效防止注入攻击了。但存入数据库的数据呢?在执行完sql语句存入数据库的是经过gpc处理前的原始数据,那么当程序再select出的就是受污染的数据了,如果把select出的数据再执行sql语句,那么就触发了sqlinj,如果直接写入缓存文件的话就有可能直接拿shell了:)
通过文本中转:
用户输入===>gpc\addslashes()===>写入文本文件===>include===>再次写入文本文件\执行sql语句
这个和通过数据库中转大致是一样的,对于写文件的操作如果处理不当是有可能被攻击者直接拿shell的,我们来看看php168的一个代码片段:
function login_logs($username,$password) {
global $timestamp,$onlineip;$logdb[]="$username\t$password\t$timestamp\t$onlineip";
@include("adminlogin_logs.php");
$writefile="<?php \r\n";
$jj=0;
foreach($logdb AS $key=>$value) {
$jj++;
$writefile.="\$logdb[]=\"$value\";\r\n";
if($jj>200) {
break;
}
}
write_file("adminlogin_logs.php",$writefile);
}
function write_file($filename,$data,$method="rb+",$iflock=1){
@touch($filename);
$handle=@fopen($filename,$method);
if($iflock){
@flock($handle,LOCK_EX);
}
@fputs($handle,$data);
if($method=="rb+") @ftruncate($handle,strlen($data));
@fclose($handle);
@chmod($filename,0777);
if( is_writable($filename) ){
return 1;
}else{
return 0;
}
}
php168在登录后台时如果输入的用户名或密码有误就会执行这个login_logs函数把登录者的信息记录在adminlogin_logs.php,如果用户输入的$username的数据是“";eval($_POST[cmd]); //”,前面的"被闭合了,成功的写入了shell。但如果gpc为on的话,"会被转义成\",无法利用了。但注意这里会先包含adminlogin_logs.php,并循环数组把数据再次写入adminlogin_logs.php,要知道,这里的\仅仅是转义字符,所以include后$logdb依旧是受污染的原数据,再次写入文件时"就起作用了,成功写入了shell。
0 0
- 原php168的一个漏洞
- PHP168 CMS的一次新异漏洞分析
- CMS:PHP168(V6)的总结
- PHP168首页调用某个栏目的名称(只调用一个栏目的名称)
- Php168 v 4.0 sp global.php 写入漏洞
- PHP168整站系统0DAY漏洞预警
- tomcat的一个漏洞
- LocalStorage 的一个漏洞
- BBSXP2007的一个漏洞公告
- linux一个漏洞的分析
- tomcat3.1的一个漏洞
- Tencent qmail 的一个漏洞
- 『原创』PHP168 0DAY 任意文件下载漏洞利用工具
- 『原创』PHP168 0Day 文件代码泄露漏洞利用工具
- PHP168 V6.01/6.02权限提升及暴本地路径漏洞
- PHP168 V6.02 整站系统远程执行任意代码漏洞利用
- 原根-快速求解一个数的原根
- PHP168很不错的一款网站开发工具
- 【推荐软件】自从用了 f.lux,再也不用担心被高色温渣屏蓝瞎眼了
- Android 拍照获取图片和图库获取图片
- Android点击EditText文本框之外任何地方隐藏键盘的解决办法
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- 自动实现ListView无数据时显示其他View
- 原php168的一个漏洞
- Intent.ACTION_TIME_TICK 广播
- 日拱一卒(八)
- Linux Apache 配置反向代理
- Makefile经典rumen教程
- 黄金分割二分法数值分析回顾
- Oracle EBS:PO 模块设定注意点Tips
- C/C++ sort函数的用法
- exit_creds error in kthread_stop().