There is windows 2003 and installed IMS (Lotuspond Interactive Media System) service on it. This is a system with extended chat with voice/video etc features. This service provides http server on 1995 port. So we can access and view pages visiting links such as:
http://192.168.1.2/{chatname}/
This is a link to the chat entry.
That was preface and this is a problem:
when someone requests something like
http://192.168.1.2/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xxxxxxxxxx//
then service crashes and returns message dialog box:
=================================================
=================================================
Microsoft Visual C++ Runtime Library
=================================================
Buffer overrun detected
Program: C:\binrunimg
A buffer overrun has been detected which has corrupted the program’s internal state. The program cannot safely continue execution and must now be terminated.
=================================================
=================================================
After that we cann’t get access to the login page but chat rooms still working!
So the problem is in a bad requests. I haven’t sources of IMS, so there is no way to change code and recompile it. But bad requests I (or you) should somehow filter and don’t allow to crash service.
Several developers and me have tried to resolve that problem before. But I’m not well experienced in windows administration and on programming under windows.
There is results of investigations, minds and some ideas:
1) There is no way change port number used by IMS. There is no configuration files which contain port number. Documentation which also present doesn’t contains any info related to the port number changing. 1995 port is hard coded.
2) We need create new service which will be filtering all bad requests
3) We need somehow put this new created service between requests and IMS. I hope we can use port forwarding or firewall. On linux there is way to configure rules for iptables so requests can be redirected to the different ports based on some rules. It will be good solution on windows. In such case we can catch all requests from EXTERNAL traffic redirect to the new created service and then redirect them to the IMS service as INTERNAL traffic. That solution probably will be working but I’m not sure. Probably port forwarding with filtering can be helpful for us but I’m not sure too.
4) New created service probably can just forward all traffic except traffic which contains GET requests with bad request uri. It should filter traffic and check http GET requests.
Seems ideas are right but should be approved (or rejected) and implemented by experienced man, experienced in windows administration and windows programming for network.
May be and probably there are another good ideas which will help us, but haven’t found it yet. Please, let us know about them.
This project is very urgent and very important. Please, bid if you have any ideas how to prevent service from bad requests or from crashing. You will get worthy payment.
Thank you!