免责声明 由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
公众号现在只对常读和星标的公众号才展示大图推送,
建议大家把听风安全设为星标,否则可能就看不到啦!
----------------------------------------------------------------------
前言
终于,在有关部门的大力监管下,上次审计的系统也是迎来了更新,但是上回预测的漏洞并没有产生,于是老板奖励我重新预测,只好准备另辟蹊径。
0x01
首先更新过后增加了magic_quotes_gpc限制,绝大多数注入是无了,命令执行函数也没看到。
于是从简单粗暴的下手,找了找文件上传。
发现一个没限制后缀的上传点。
因为上传点需要校验账号密码,但是默认账号密码又是Admin/123,所以先借用一下,构造数据包。
不用管响应包中的异常提示。
可落地:C:Program Files (x86)RealFriendxxxtempphpsession
根目录:C:Program Files (x86)RealFriendxxxWebRoot
可惜传上去没在网站根目录下面,也没法跨目录传。
其他几个上传点都有后缀限制,简单看了下就先搁下了。
又在/Index/index下发现一个未授权的任意文件读取,还可以跨目录读,只是没有回显。
在checklogin方法中。
开发大哥应该是想读session文件,拼接了sessID。
http://192.168.93.150:8080/index.php?s=/Index/index&sessId=/../../../WebRoot/index.php
继续往下看,大哥写的代码不可谓是不经典。
1.对读出来的数据以“|”进行分割;
2.对分割出来的第4个元素进行反序列化;
这时就产生了一个想法,利用任意文件上传功能上传Payload,让SQL注入的Payload以文件的形式落地,从而绕过magic_quotes_gpc限制。
我们根据代码流程,简单生成一下Payload,默认账户Admin的uid就是usr00000007。
构造|||a:1:{s:7:"user_id";s:20:"usr00000007'or'1'='1";}进行上传。
成功落地,特殊字符不会被转义。
此时SQL就为:SELECT * FROM `xxx` WHERE (user_id='usr00000007'or'1'='1' AND is_group=0 AND is_admin !=1 ) LIMIT 1。
触法漏洞,登录绕过进入后台。
再看看默认的数据库配置,多看一眼就会爆炸。
直接作法。
上传落地。
访问触发。
浅浅拿下。
可惜还是不够完美,如果管理员把默认密码改了不就废了,于是继续找可以绕过登录的点。
0x02
本来想找个可以通过日志的落地payload的点,配合前面的操作。
结果又发现一个注入点。
writelog函数中的insert语句可控。
再看UserIP赋值,从get_userip函数得来。
简直太贴心了。
因为$_SERVER不受magic_quotes_gpc的影响,所以直接注入。
插入成功。
SQLMAP一把梭。
贴心的开发还怕我MD5解不开,数据库中储存与传输中的密码一致。
(而且用Get方法传输账号密码,大概率会在中间件或框架的日志中保存(泄露),如果文件读取有回显就多一条利用链)
最终可以实现稳定的前台绕过magic_quotes_gpc后GetShell。
总结:再不敢乱预测了。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...