输入下面的链接地址,就会出现下面的获取数据,这个漏洞还是比较严重的啊
http://localhost:8080/nbcio-boot/sys/ng-alain/getDictItemsByTable/'%20from%20sys_user/*,%20'/x.js
  
通过上面方式可以获取用户信息了
如下:

@RequestMapping(value = "/getDictItemsByTable/{table}/{key}/{value}", method = RequestMethod.GET)
    public Object getDictItemsByTable(@PathVariable String table,@PathVariable String key,@PathVariable String value) {
        //return this.ngAlainService.getDictByTable(table,key,value); //by nbacheng 有sql注入漏洞
    	return null;
    } 
看代码是上面接口部分
 
 @Override
    public List<Map<String, String>> getDictByTable(String table, String key, String value) {
        return this.mapper.getDictByTableNgAlain(table,key,value);
    } 

这个下面的sql语句本身就漏洞,还好,本身也不用了,所以可以注释掉了或去掉。
@Deprecated
	@Select("select ${key} as \"label\",${value} as \"value\" from ${table}")
	public List<Map<String,String>> getDictByTableNgAlain(@Param("table") String table, @Param("key") String key, @Param("value") String value);
 

感谢网友提供的漏洞信息。



















