系统就是叫华为智能报表系统
这里测试了下面截图上的两个版本(服务器端应该也是有一个对应的版本号的),一个是oracle数据库,一个是mssql
客户端的截图如下:
在软件中可以直接配置代理地址(必须这样配置,否则可能改包会比较困难,还好有这个功能……真人性化啊)
登录也是走的http,但是传输的数据会做一些内部转换和unicode编码:
从上图可以看出他带有一个userid字段和一个password字段,只是相关字符是使用的unicode编码,另外把一般web里面的等号和&做了另外一个转换,跟着他的规则走即可。
服务器端返回的其中一种结果如下:
在服务器端处理userid这个参数的时候没有做好过滤,客户端检测到单引号’的时候会自动转换然后再提交到服务器,所以我们可以直接改数据包即可,比如我发送以下数据包过去(这里就用16进制视图了):
http://1.1.1.1:8988/RptServlet?rptSessionId=&packageId=RptLogin&action=Login&TaskId=12
很明显可以看出是mssql的注入语句,返回的数据包如下:
里面明显包含有一些错误信息,再看看客户端解码后的截图:
明显爆出了mssql的版本号!
上面是mssql的版本,再提供一个oracle数据库的:
Userid插入以下数据即可:
所以只要适当改造,就有办法拿到权限了,下面给出mssql版开启cmdshell的数据包
按上面的规则提交之后,就开启了cmdshell
接着提供添加用户及添加用户组的数据包(看测试代码吧哈哈,其实根据上面也可以改出来了)
登录到系统后的数据库截图(数据库名一般都是BAM)
管理表截图
Mssql的用这个方法一共拿下四台主机。
为了避嫌就不发更多的截图了