emlog修复笔记

    选择打赏方式

        emlog是英文Every Memory Log的缩写,是一款基于php与mysql的开源、免费博客系统,当前版本有6.0.0(官方版)、6.0.1(特别版)、5.3.1(官方版)。但由于长时间未有新版本更新(6.0.0版本发布于2018年),一些bug与漏洞也没有及时修复,本文根据网上收集及自我审计代码,修复若干问题并简单剖析,持续更新中。

1.后台登陆界面简单防护

        emlog的默认后台登录地址是/admin,由于后台并没有修改后台登录地址的选项,难免让人感觉不安全,这里可以对登陆的网址进行简单的校验。
        修改/admin/views/login.php,前面加入:
<?php
$path_pass = 'emlog';
$path = isset($_GET['key'])?addslashes(trim($_GET['key'])):'';
if($path != $path_pass || !$path){
	header('Location:'.BLOG_URL);
	exit();
?>
        这样,你的后台登陆地址就变成了/admin/?key=emlog,这里的key和emlog都可以修改成动态的,自己记住规则就好。

2.验证码添加点击刷新功能

        emlog中验证码默认是不支持点击刷新的,当遇到看不清的图片时就会很麻烦,这里为验证码添加点击刷新功能。
        验证码会用到include/lib/checkcode.php生成验证码,为保证把所有的验证码全部加入点击刷新功能,可以在ssh连接到服务器,cd到博客路径下,执行:
find . -name "*"|xargs grep "include/lib/checkcode.php"
        这样可以方便的看到哪些文件里包含了验证码的引用。验证码默认是使用<img>标签引入的,这里我们为它加入onclick的属性。若修改的文件是php格式,则须注意转义,代码如下:
style=\"cursor:pointer;\" alt=\"未显示?请点击刷新\" title=\"看不清楚?请点击刷新\" onclick=\"this.src=this.src+'?'\"
        若修改的文件是html格式,则无须转义,代码如下:
style=“cursor:pointer;” alt=“未显示?请点击刷新" title="看不清楚?请点击刷新" onclick="this.src=this.src+'?'"
        具体结果如下,修改前:
<img src=\"".BLOG_URL."include/lib/checkcode.php\" align=\"absmiddle\"  /><input name=\"imgcode\" type=\"text\" class=\"input\" size=\"5\" tabindex=\"5\" />
        修改后:
<img src=\"".BLOG_URL."include/lib/checkcode.php\" align=\"absmiddle\" style=\"cursor:pointer;\" alt=\"未显示?请点击刷新\" title=\"看不清楚?请点击刷新\" onclick=\"this.src=this.src+'?'\" /><input name=\"imgcode\" type=\"text\" class=\"input\" size=\"5\" tabindex=\"5\" />

3.后台登录失败后验证码不刷新

        emlog后台登录失败后验证码是不刷新的,也就意味着我们只需要获取一次验证码后就可以进行爆破了,失去了验证码的存在价值。
        修改admin/globals.php,在24行附近,判断loginauthret为false时,加入刷新验证码的代码:
$_SESSION['code'] = null;

4.访问不存在的标签时mysql报错

        emlog默认查看标签的网址是/tag/标签名,当访问/tag/不存在的标签时,会提示“SQL语句执行错误”,而不是我们期待的404页面。
        修改include\controller\tag_controller.php,在getTagByName函数中,增加判断tagId:
if ($tagId) {
	return $this->getTagById($tagId);
} else {
	return false;
}
        这样当我们访问不存在的标签时就会直接跳转404页面了。
版权声明:若无特殊注明,本文为《BoneAsh》原创,转载请保留文章出处。
本文链接:https://blog.bone4sh.cn/post-8.html
正文到此结束

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽
未显示?请点击刷新

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!