Panda

What doesn't kill you makes you stronger

记录 • 努力 • 追求 • 生活
  • 记录

    记录自己学习的点点滴滴,只为更好的进步

  • 努力

    笨鸟先飞,比你牛逼的人正在努力,因此你需要更努力

  • 追求

    追求技术是一个快乐的过程

  • 生活

    生活是根本。是技术和灵感的来源。

deep

[新] 写在考研后的第一天

作者: 浏览次数: 时间: 2018-12-24 评论: 暂无评论

QQ截图20181224195456.png
去年的今天正式选择了考研。
开始了一年的考研之旅。
用一年的时间,去做一件事,而且你不知道这件事情的结果如何。
这可能会让你放弃。
的确,这一年放弃过
有时候感觉自己好累啊,远离了自己喜爱的,想做的。
远离了家人、朋友以及休息放松的时间。
但是坚持下来了,坚持到考完了最后一个科目。
总体来说,这一年,感触颇深。
考研会让你学到很多,对于以后学习任何的知识、技术,考研时期的方法,都非常有用,而且考研所学的专业课知识,对于理解算法、代码都有很好的促进作用,不管考上考不上,这或许就是我考研后最大的收获。
路还在继续。
不知道最终结果如何。
但是总是要一步一步的去走,一个脚印一个脚印去实现。
接下来是新的开始,新的启程。
继续努力~

对于Discuz!3.2的基础认证钓鱼漏洞分析与修复

作者: 浏览次数: 1226 时间: 2017-12-03 评论: 暂无评论

前言

最近在某个技术论坛出现了一个基础认证钓鱼的漏洞,然后分析了Discuz!3.2版本的相关源码,对于该漏洞进行了修复,此文当做个人的学习记录,如果有错误的地方,欢迎讨论交流。

分析过程

在分析漏洞之前先了解一下相关的知识科普。

401钓鱼,也叫基础认证钓鱼。在Web站点中,绝大部分的web服务器被配置为匿名访问,即用户在请求web站点访问服务器上的相关信息时,一般不会被要求提示输入相关认证标示信息,也就是说用户不需要使用用户名或者密码就可以访问网站,这也是所有开放站点所使用的配置。

在Nginx和Apache中,默认配置都是匿名访问。
如Nginx想要配置非匿名访问需要进行如下设置:
/etc/nginx/sites-enabled/default中:

server {
    server_name blog.cnpanda.net
    root /www/panda

   # ...

   location / {
        # 下面的两句是要求非匿名访问
        auth_basic "Restricted";
        auth_basic_user_file htpasswd;
        # ...
    }

   # ...
}

然后创建一个htpasswd文件就可以了,具体的在这里就不提了。

在Apache中就比较简单了,Apache的httpd.conf默认配置如下:

<directory "/etc/www">
 Options IndexesFollowSymLinks Includes
 AllowOverride None
 Order allow,deny
 Allow from all
</Directory>

如果需要修改为非匿名访问,那么就需要传递一个WWW-Authenticate的字段,如下代码就是使用Header()函数要求客户端使用BASIC验证:



CVE-2017-9603分析

作者: 浏览次数: 986 时间: 2017-12-03 评论: 暂无评论

CVE-2017-9603分析

一、CVE-2017-9603

WordPress Plugin WP Jobs < 1.5 - SQL Injection

二、漏洞分析

问题出现在wp-jobswpjobs_applications,php,第10行到第62行:

<?php
$job_id = $_REQUEST['jobid']; //获取jobid
$jb_args = array(
    'posts_per_page' => -1,
    'orderby' => 'post_date',
    'order' => 'DESC',
    'post_type' => 'job',
    'post_status' => 'publish',
    'suppress_filters' => true);

$jobs = get_posts($jb_args);
?>
<form autocomplete="off" name="form" id="form">
    <?php _e('Filter by Job', 'wp-jobs'); ?> <select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('parent', this, 0)">
        <option value="edit.php?post_type=job&page=WPJobsJobApps">All Applications</option>
        <?php foreach ($jobs as $job_info) : setup_postdata($jobs); ?>
            <option <?php
            if ($job_info->ID == $job_id) {
                echo 'selected="selected"';
            }
            ?> value="edit.php?post_type=job&page=WPJobsJobApps&jobid=<?php echo $job_info->ID; ?>"><?php echo $job_info->post_title; ?></option>
         <?php
            endforeach;
            wp_reset_postdata();
            ?>
    </select>
</form>
<style>
    .dctrprt tr th, .dctrprt tr td {
        font-family:Arial, Helvetica, sans-serif;
        font-size:13px;
    }
</style>
<table class="widefat dctrprt">
    <tr>
        <th><strong><?php _e('S.No', 'wp-jobs'); ?></strong></th>
        <th><strong><?php _e('Job Title', 'wp-jobs'); ?></strong></th>
        <th><strong><?php _e('Full Name', 'wp-jobs'); ?></strong></th>
        <th><strong><?php _e('Email', 'wp-jobs'); ?></strong></th>
        <th><strong><?php _e('Phone Number', 'wp-jobs'); ?></strong></th>
        <th><strong><?php _e('Download Resume', 'wp-jobs'); ?></strong></th>
    </tr>
    <?php
    $tbl = $wpdb->prefix;
    $qry = "Select * from " . $tbl . "app_user_info ";
    if ($job_id <> "") {
        $qry .= " where app_job_id = " . $job_id; //直接带入SQL语句查询
    }
    $qry .= " Order by `app_id` Desc ";
    $users = $wpdb->get_results($qry);
    $i = 1;
    foreach ($users as $user) {
?>

AppCms的一次综合审计

作者: 浏览次数: 1616 时间: 2017-12-03 评论: 暂无评论

一、前言

进入六月以后,自己的时间也就充裕很多了。很多比赛结束、绿盟那边暂时也没有什么任务,就等着7月份去入职了。所以沉下心准备学点东西。于是就选择一位老哥审计过的源码,自己来审计一遍,看看自己的差距,也给自己增加点经验。再就是上次土司聚会就说会在土司发表一篇文章……所以潜水很多年的我来了。本文章是审计的一个CMS系统,比较乱,希望别介意。

二、正题

我的审计思路一般是:->看目录摸清大体的框架->找具体功能审计->选择漏洞类型进行审计。

1.png
图1 主要目录Tree

看目录很明显,有后台目录、缓存目录、数据储存目录、安装目录、插件目录以及手机版的目录。大体的目录了解了后,就开始正式的审计了。


Top ↑