堕落小白的前台sql注入cms代码审计

出品|MS08067实验室(www.ms08067.com)

本文作者: 小白鼠1号 (投稿)

小白鼠1号微信(欢迎骚扰交流):

投稿(原创)请发邮件至root@ms08067.cn,一经采用均可获赠实验室纪念品,文章阅读数超4000者更可获实验室出版图书之作者定制签名版,并优先纳入实验室核心团队,享受团队各类福利!

     大家好我是一只没有灵魂小白鼠每日每夜都为了拿到那一点 src 的奖金日夜操劳。有一天我翻了翻日历算了一卦,好家伙今天是个挖洞的好日子。我打开电脑略微思考了一下人生我是谁?我在哪?我要干什么?好家伙很快哈一个三连问 , 问的我突然眼眶湿润默默的流下了没有技术的眼泪。

最后我想了想我还是找个小的 cms 玩一玩吧,也许这就是菜 gou 挖洞的心理行动历程吧,也许这会安抚一下我寂寞受伤的心灵吧。

我在网上找了一个某厂商的开源的 cms 源代码安装好后直接访问 :

http://127.0.0.1/comment/api/index.php?rlist[]=1222222)//*@*%271**@//un@ion%20select%201,1,1,1,1,user(),1,1,1,1,database()@%23%27&gid=1&page=3

( 我这 Chrome 插件格式化了 json)

漏洞分析:

comment/api/index.php

首先是这个函数,跟进:

这里的 rlist ,由于此厂商的 cms 全局有个将 $_GET ,$_POST 变成变量的地方,所以 rlist 我们可控,然后进入 Readmlist

可以看到这里对 rlist 做了一些替换,这也是我们绕过 sql 注入的关键。

然后回到 readdata 函数,进入 Readrlist 函数:

可以看到这里 rlist 拼接成 x ,然后传进了 readrlist 函数,我们跟进去:

此处直接拼接进了 sql 语句,没有引号包裹,导致注入,因回显注入不需要用 sqlmap

关于 sql 注入的漏洞危害我这里就不老生常谈了,此厂商 php 代码出现了问题导致的 sql 注入,我个人认为首先应确保界定了你的查询中的每一个值。字符串值首当其冲,以及那些你通常期望应该使用 “( 而不是 “) 引号的内容。

我是社会主义好同志就没有进一步的去做验证。看了看我的小天才智能手表,好家伙干饭时间到了。

扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

目前35000+人已关注加入我们