大家好我是一只没有灵魂小白鼠每日每夜都为了拿到那一点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注入,我个人认为首先应确保界定了你的查询中的每一个值。字符串值首当其冲,以及那些你通常期望应该使用"单"(而不是"双")引号的内容。
我是社会主义好同志就没有进一步的去做验证。看了看我的”小天才”智能手表,好家伙干饭时间到了。