Description
BUGTRAQ ID: 29031
WebMod是开放源码的MetaMod插件,可用作CS游戏的web服务器。
WebMod插件中存在多个安全漏洞,可能允许远程攻击者执行目录遍历攻击、触发缓冲区溢出或读取敏感信息。
----------------------
A] 目录遍历
----------------------
WebMod使用的防目录遍历检查搜索客户端HTTP请求中的“../”内容,因此攻击者可以使用“..\”模式绕过检查从磁盘下载任意文件,包括游戏服务器的配置文件(例如..\..\..\..\platform\config\server.vdf或..\..\..\server.cfg)。仅可以在Windows服务器上利用这个漏洞。
以下是server.cpp中的有漏洞代码部分:
void clientHandle(int connfd, httpquery_t *query, int tid)
...
if(strstr(str,"../")) // hack attempt, display index page
{
str[0]='\0';
}
-------------------------
B] Cookie缓冲区溢出
-------------------------
大于MYSOCK_BUFLEN (8192字节)的cookie参数可能触发栈溢出。
以下是server.cpp中的有漏洞代码部分:
void connectHandle(void *data)
{
char *input;
char buf[MYSOCK_BUFLEN+1];
...
for(j=0;input[i]&&input[i]!=';'&&input[i]!='\n';j++,i++)
buf[j]=input[i];
--------------------------------------
C] parser.cpp写入任意内存
--------------------------------------
大于MAX_FILE_SIZE(16384字节)的值可能导致通过strcat(auth.w?mode)、空指针(auth.w?redir)或无效内存访问(auth.w的rconpass参数)等向自定义内存地址写入自定义数据。
----------------------------
D] 脚本源码泄露
----------------------------
在所请求的URI末尾添加句号允许查看脚本的源码而不是执行脚本。
djeyl.net WebMod <= 0.48
djeyl.net
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
<a href=http://www.djeyl.net/w.php target=_blank>http://www.djeyl.net/w.php</a>
{"sourceData": "\n <?php\r\n## HLDS WebMod 0.48 (rconpass) Remote Heap Overflow Exploit\r\n## Tested on HLDS Launcher 4.1.1.1, WebMod 0.48, Windows XP SP2 He\n ", "status": "poc,details", "description": "BUGTRAQ ID: 29031\r\n\r\nWebMod\u662f\u5f00\u653e\u6e90\u7801\u7684MetaMod\u63d2\u4ef6\uff0c\u53ef\u7528\u4f5cCS\u6e38\u620f\u7684web\u670d\u52a1\u5668\u3002\r\n\r\nWebMod\u63d2\u4ef6\u4e2d\u5b58\u5728\u591a\u4e2a\u5b89\u5168\u6f0f\u6d1e\uff0c\u53ef\u80fd\u5141\u8bb8\u8fdc\u7a0b\u653b\u51fb\u8005\u6267\u884c\u76ee\u5f55\u904d\u5386\u653b\u51fb\u3001\u89e6\u53d1\u7f13\u51b2\u533a\u6ea2\u51fa\u6216\u8bfb\u53d6\u654f\u611f\u4fe1\u606f\u3002\r\n\r\n----------------------\r\nA] \u76ee\u5f55\u904d\u5386\r\n----------------------\r\n\r\nWebMod\u4f7f\u7528\u7684\u9632\u76ee\u5f55\u904d\u5386\u68c0\u67e5\u641c\u7d22\u5ba2\u6237\u7aefHTTP\u8bf7\u6c42\u4e2d\u7684\u201c../\u201d\u5185\u5bb9\uff0c\u56e0\u6b64\u653b\u51fb\u8005\u53ef\u4ee5\u4f7f\u7528\u201c..\\\u201d\u6a21\u5f0f\u7ed5\u8fc7\u68c0\u67e5\u4ece\u78c1\u76d8\u4e0b\u8f7d\u4efb\u610f\u6587\u4ef6\uff0c\u5305\u62ec\u6e38\u620f\u670d\u52a1\u5668\u7684\u914d\u7f6e\u6587\u4ef6\uff08\u4f8b\u5982..\\..\\..\\..\\platform\\config\\server.vdf\u6216..\\..\\..\\server.cfg\uff09\u3002\u4ec5\u53ef\u4ee5\u5728Windows\u670d\u52a1\u5668\u4e0a\u5229\u7528\u8fd9\u4e2a\u6f0f\u6d1e\u3002\r\n\r\n\u4ee5\u4e0b\u662fserver.cpp\u4e2d\u7684\u6709\u6f0f\u6d1e\u4ee3\u7801\u90e8\u5206\uff1a\r\n\r\nvoid clientHandle(int connfd, httpquery_t *query, int tid)\r\n ...\r\n if(strstr(str,"../")) // hack attempt, display index page\r\n {\r\n str[0]='\\0';\r\n }\r\n\r\n-------------------------\r\nB] Cookie\u7f13\u51b2\u533a\u6ea2\u51fa\r\n-------------------------\r\n\r\n\u5927\u4e8eMYSOCK_BUFLEN \uff088192\u5b57\u8282\uff09\u7684cookie\u53c2\u6570\u53ef\u80fd\u89e6\u53d1\u6808\u6ea2\u51fa\u3002\r\n\r\n\u4ee5\u4e0b\u662fserver.cpp\u4e2d\u7684\u6709\u6f0f\u6d1e\u4ee3\u7801\u90e8\u5206\uff1a\r\n\r\nvoid connectHandle(void *data)\r\n{\r\nchar *input;\r\nchar buf[MYSOCK_BUFLEN+1];\r\n ...\r\n for(j=0;input[i]&&input[i]!=';'&&input[i]!='\\n';j++,i++)\r\n buf[j]=input[i];\r\n\r\n--------------------------------------\r\nC] parser.cpp\u5199\u5165\u4efb\u610f\u5185\u5b58\r\n--------------------------------------\r\n\r\n\u5927\u4e8eMAX_FILE_SIZE\uff0816384\u5b57\u8282\uff09\u7684\u503c\u53ef\u80fd\u5bfc\u81f4\u901a\u8fc7strcat\uff08auth.w?mode\uff09\u3001\u7a7a\u6307\u9488\uff08auth.w?redir\uff09\u6216\u65e0\u6548\u5185\u5b58\u8bbf\u95ee\uff08auth.w\u7684rconpass\u53c2\u6570\uff09\u7b49\u5411\u81ea\u5b9a\u4e49\u5185\u5b58\u5730\u5740\u5199\u5165\u81ea\u5b9a\u4e49\u6570\u636e\u3002\r\n\r\n----------------------------\r\nD] \u811a\u672c\u6e90\u7801\u6cc4\u9732\r\n----------------------------\r\n\r\n\u5728\u6240\u8bf7\u6c42\u7684URI\u672b\u5c3e\u6dfb\u52a0\u53e5\u53f7\u5141\u8bb8\u67e5\u770b\u811a\u672c\u7684\u6e90\u7801\u800c\u4e0d\u662f\u6267\u884c\u811a\u672c\u3002\r\n\n\ndjeyl.net WebMod <= 0.48\n djeyl.net\r\n---------\r\n\u76ee\u524d\u5382\u5546\u8fd8\u6ca1\u6709\u63d0\u4f9b\u8865\u4e01\u6216\u8005\u5347\u7ea7\u7a0b\u5e8f\uff0c\u6211\u4eec\u5efa\u8bae\u4f7f\u7528\u6b64\u8f6f\u4ef6\u7684\u7528\u6237\u968f\u65f6\u5173\u6ce8\u5382\u5546\u7684\u4e3b\u9875\u4ee5\u83b7\u53d6\u6700\u65b0\u7248\u672c\uff1a\r\n\r\n<a href=http://www.djeyl.net/w.php target=_blank>http://www.djeyl.net/w.php</a>", "sourceHref": "https://www.seebug.org/vuldb/ssvid-3255", "reporter": "Root", "href": "https://www.seebug.org/vuldb/ssvid-3255", "type": "seebug", "viewCount": 7, "references": [], "lastseen": "2017-11-19T21:42:21", "published": "2008-05-07T00:00:00", "cvelist": [], "id": "SSV:3255", "enchantments_done": [], "modified": "2008-05-07T00:00:00", "title": "WebMod\u591a\u4e2a\u8fdc\u7a0b\u5b89\u5168\u6f0f\u6d1e", "cvss": {"score": 0.0, "vector": "NONE"}, "bulletinFamily": "exploit", "enchantments": {"score": {"value": 0.1, "vector": "NONE"}, "dependencies": {}, "backreferences": {}, "exploitation": null, "vulnersScore": 0.1}, "immutableFields": [], "cvss2": {}, "cvss3": {}, "_state": {"dependencies": 1645576658}}
{}