Asp SQL注入获取某服务器权限

1.1 Asp SQL注入获取某服务器权限

   对于Asp类型网站SQL注入,如果当前数据库为MSSQL,且权限为sa的情况下,可以通过恢复xp_cmdshell方法来直接执行命令,甚至有的可能直接是system权限。可以执行命令直接添加账号和密码,如果开启3389则可以直接登录服务器。当然也有站点存在SQL注入,但其权限较低,例如public权限,则可以通过sql注入获取其管理员表中的账号及密码,通过登录后台寻找漏洞获取webshell,本文是sqlmap攻防系列专栏的一个补充,通过sqlmap可以方便的获取数据,查看反馈信息,但有时候需要借助一些其他工具来实施渗透和获取webshell。

1.1.1漏洞扫描及分析

1. 使用Jsky进行漏洞扫描

   使用jsky漏洞扫描工具对目标站点进行漏洞扫描,如图1所示,在其中主要出现有源代码泄露及四个sql注入漏洞,真正存在SQL注入点的有两个地址。

1-漏洞扫描.JPG

图1使用Jsky进行漏洞的扫描

2.SQL注入漏洞利用

   选择存在漏洞SQL注入地址,使用Jsky自带的SQL注入漏洞分析工具pagonlin进行注入测试,经测试,该注入点数据库类型为MSSQL,数据库用户帐号类型为public。对其中的数据库表进行分析,发现存在employee表,对其进行猜测,在猜测过程中,发现只能单独获取一个字段,通过多次猜测将Userid值和Password值获取。

3.生成报告

使用工具中到导出扫描结果到本地,如图2所示,分两次将扫描结果导出为userid和password文件。

2-生成报告.JPG

图2获取工作人员密码及用户名值

1.1.2Asp SQL注入漏洞利用

1.用户名及密码整理

   将Userid和对应的密码值进行整理,如图3所示,一行一个值,并通过www.cmd5.com和www.somd5.com网站对该md5加密之进行破解,获取admin的密码为850627。

3-SQL注入后台管理数据整理.jpg 

图3整理用户名及密码

2.读取本地文件

   由于该sql注入点的权限太低,无法读取本地文件

3.登录后台

   通过前面的扫描知道其后台地址为http://www.xxx.org.cn/manage/login.asp,使用获取的密码和账号进行登录,如图4所示,成功进入后台,在后台模块中有个人管理、栏目管理、下载管理、信息管理、客户管理和系统功能。

4-进入后台.jpg

图4登录后台

1.1.3获取webshell权限

1.对网站后台各个功能模块进行分析和查看

   在后台管理页面根据其链接地址对各个功能模块进行查看、分析和测试,在其下载管理中存在文件上传功能。

2.直接上传文件漏洞

   如图5所示,在资源下载-系统分析模块下,单击上传选择一个asa的webshell文件,上传成功后,其系统返回一个值,该值为webshell的真实地址。

5-后台上传.jpg

图5直接上传webshell

3.获取webshell

   将url+webshell地址在浏览器中进行访问,输入shell登录密码后,如图6所示,成功获取webshell。

6-获取webshell.jpg

图6获取webshell

1.1.4服务器提权及密码获取

1.服务器信息收集

   通过webshell对提权目录列表进行查看和分析,在该服务器上安装有Serv-U程序。

2.使用Serv-U进行服务器提权

   在webshell中直接使用自带的Serv-U提权功能,添加一个用户wang$密码188,如图7所示,显示命令执行成功,注意有些时候命令显示成功,但未必真正在被提权服务器上执行成功。

7-serv-u提权.jpg

图7Serv-U提权

3.远程终端登录测试

   使用添加到用户登录远程服务器,如图8所示,使用wang$账号成功登录该网站服务器。

8-登录服务器.jpg

图8登录远程终端

4.获取哈希值并破解器密码

   通过gethash等软件获取系统哈希值,然后将其哈希值在ophcrack中进行破解,如图9所示,成功破解器密码为zczx@zcxz,可以看出其密码分为LMpwd1和LMpwd2部分。

9-破解系统密码.jpg

图8破解服务器登录密码

1.1.5.Asp MSSQL数据库SQL注入漏洞渗透总结

1. 数据库权限为sa,可以通过注入工具对注入点进行测试,如果可以执行命令,则可以执行“exec master..xp_cmdshell  ‘net user wang$ 123456qaw /add‘添加,有的工具可以直接执行DOS命令。通过tasklist /svc获取远程终端服务对于的PID值,通过netstat –ano获取PID值对应的端口,该端口即为3389端口。

2.数据库权限不为sa,可以通过数据库备份获取webshell

3.无法通过数据库备份获取webshell,则可以通过对数据库表内容进行查看,获取管理员表中管理员及密码,通过登录后台寻找可利用的漏洞,例如获取网站的真实路径,获取数据库备份,获取文件上传等。

4.可以使用sqlmap进行漏洞测试和webshell直接获取。

5.在前面专栏中介绍了使用sqlmap的一些方法和手段,在实际渗透过程中需要灵活运用,sqlmap是国外开发的,特定的场景需要特殊处理。如果是db_owner权限,通过sqlmap的--os-shell命令如果不能获取webshell,则可以尝试通过sqltools、pagonlin注入攻击来进行测试。

题外话:我在51CTO博客上线了自己的专栏《sqlmap渗透攻击入门到实战》,欢迎网安同道们切磋交流

猜你喜欢

转载自blog.51cto.com/simeon/2119703
ASP