typecho用户个性签名插件

好久没有更新博客了。最近忙成狗了。随便开源一下我写的代码啦。

 

项目主页:https://github.com/hmoe/typechoSignPlugin

 

typecho 用户个性签名插件

安装方法:

在插件目录下面建立UserSign文件夹,把Plugin.php复制进去

注意:由于typecho的问题,插件的用户配置在读取的时候会自动读取在配置表里面的插件数据。如果要让用户的设置正常运行请修改 ‘/var/Widget/Users/Profile.php’。修改下面这个函数。不修改的话用户的个人页面里面显示用户的当前签名


    /**
     * 输出自定义设置选项
     *
     * @access public
     * @param string $pluginName 插件名称
     * @param string $className 类名称
     * @param string $pluginFileName 插件文件名
     * @param string $group 用户组
     * @return Typecho_Widget_Helper_Form
     */
    public function personalForm($pluginName, $className, $pluginFileName, &$group)
    {
        /** 构建表格 */
        $form = new Typecho_Widget_Helper_Form($this->security->getIndex('/action/users-profile'),
        Typecho_Widget_Helper_Form::POST_METHOD);
        $form->setAttribute('name', $pluginName);
        $form->setAttribute('id', $pluginName);

        require_once $pluginFileName;
        $group = call_user_func(array($className, 'personalConfig'), $form);
        $group = $group ? $group : 'subscriber';

        $options = $this->options->personalPlugin($pluginName);

        if (!empty($options)) {
            foreach ($options as $key => $val) {
				if(!isset($form->getInput($key)->value))
					$form->getInput($key)->value($val);
            }
        }

        $form->addItem(new Typecho_Widget_Helper_Form_Element_Hidden('do', NULL, 'personal'));
        $form->addItem(new Typecho_Widget_Helper_Form_Element_Hidden('plugin', NULL, $pluginName));
		
		$submit = new Typecho_Widget_Helper_Form_Element_Submit(NULL, NULL, _t('保存设置'));
		$submit->input->setAttribute('class', 'btn primary');
        $form->addItem($submit);
		
        return $form;
    }

使用方法

由于已经在users表里面插入了userSign这个字段了,这个字段会自动的被系统读取。只需要在需要的地方输出$user->userSign就可以了

waf绕过-奇淫技巧

传统的waf都有一些比较常见的绕过技巧,最近在网上看到了绕过百度云CDN的攻击拦截的方式……果然是奇淫技巧,故拿出来分享一下。此方法百度云CDN、360网站卫士等均有可能适用

使用百度云CDN等的网站多半是只有一个VPS的小站,而一个网站往往拥有若干域名,于是就可以通过域名解析的方式查看有没有直接解析的子域名。我经手的网站里面就有两个网站有这种问题。一旦发现了真实的ip之后就可以添加真实ip到host文件之后使用扫描器之类的工具进行攻击啦。

alictf2015被虐成狗

前两天参加了AliCTF2015 来玩一玩。本来是和FoeverBear和Naylon组队的,结果Naylon去找妹妹去了(这晒妹还不烧么)结果不得不两个人进行比赛。

这个比赛么由于和大触的实例差距果然被虐啦。简单的说一说这些题啦。下面的文字比起writeup更像是一种日记的形式呢。

  • cake:这道题没有任何难度。直接反编译Android程序就好,虽然说混淆了,但是由于程序实在是太简单了,直接一本来打算拿下这道题的一血,结果我各种犯二,没能拿下一血不说最后只拿了50pt。
  • 密码宝宝:这道题简单的UPX脱壳。FoeverBear很快就直接OD弄出了结果。
  • 简单业务逻辑:这道题我没有做,FoeverBear做的。
  • 简单业务逻辑2:我把这道题引导到错误的方向了……后来好不容易修改cookie进入管理员发现还是不是答案。然后在面前的是Cookie的注射。这时候FB果断上来救场。
  • 前端初赛题:一个XSS,但是限制了好几种。后来得知SVG可以用HTML encoded进行XSS。于是和FoeverBear一起给XSS了。
  • 前端初赛题2:flash 的XSS。我反编译了flash完全看不出来XSS的可能性。后来还是FoeverBear很给力的试了出来。
  • 前端初赛题3:一个很有意思的XSS。这个防御几乎是无敌的呢。还是让FoeverBear看出来了。现在越发的爱上了FB了(雾)。这道题的代码学习了wwwww
  • 谁偷了你的站内信:FB做的,缓存溢出。
  • 代码血案:FB做的,溢出。

其他的题虽然没做出来。也是有进行好多尝试。阿里的那个so文件保护简直丧心病狂,我自己试图直接加载so文件竟然加载不出来,爆破的方式也就被堵上了呢。

至于那个Android的漏洞的回答那道题没有做出来是我的过错呢。都已经把apk破解了得到了问题的网址,可是那六个问题没有回答出来。后来想到apk里面有一个md5,我心想这个md5应该是最后的答案的,于是就开始了暴力枚举(因为这个题是问出错的代码是哪个调用。所以是有穷的)。我一次次的调大搜索范围,跑了500M的数据也没有算出来,后来上网反查了一下这个md5发现明文是alictf的时候我内心几乎是崩溃的。这个时候离比赛结束只剩下不到一分钟……如果我老老实实的回答这个问题的话这100pt肯定能拿下来,拿下这100pt肯定就能进决赛了。最后少80pt进决赛。

实力不行各种抱FoeverBear大神大腿还被虐成狗……惨痛的失败呢