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使用Jsky进行漏洞的扫描

2.SQL注入漏洞利用

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

3.生成报告

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

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

1.1.2Asp SQL注入漏洞利用

1.用户名及密码整理

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

图3整理用户名及密码

2.读取本地文件

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

3.登录后台

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

图4登录后台

1.1.3获取webshell权限

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

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

2.直接上传文件漏洞

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

图5直接上传webshell

3.获取webshell

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

图6获取webshell

1.1.4服务器提权及密码获取

1.服务器信息收集

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

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

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

图7Serv-U提权

3.远程终端登录测试

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

图8登录远程终端

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

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

图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渗透攻击入门到实战》,欢迎网安同道们切磋交流

原文地址:http://blog.51cto.com/simeon/2119703

时间: 2024-08-25 22:00:28

Asp SQL注入获取某服务器权限的相关文章

利用SQL注入获取服务器最高权限

单位有台数据库服务器(windows 2000 操作系统,sql server 2000) 前段时间莫名其妙的被攻击了 跑到机房,通过PE进去一看,发现多了一个账户(SQLDEBUG).并且administrator账户被禁用了 看看数据没少,也没太在意.利用PE把账户破解了一下,就回单位了 今晚回来刚好要去数据库服务器上,下个数据库备份文件.结果发现密码又登陆不了. 不祥预感出来了.难道我又要坐3个小时汽车去机房? 最关键的是,前段时间刚去过机房.星期一又去 .丢不起这个人呐! 第一反应想..

​如何快速利用s02-45漏洞获取服务器权限

byantian365.com simeon 1.1CVE-2017-5638漏洞简介 Apache Struts 2是世界上最流行的JavaWeb服务器框架之一.然而在Struts 2上发现存在高危安全漏洞(CVE-2017-5638,S02-45),该漏洞影响到:Struts 2.3.5 - Struts 2.3.31,Struts 2.5 - Struts2.5.10 漏洞编号:CVE-2017-5638 漏洞等级:HIGH 漏洞名称:S2-045:Struts 2远程执行代码漏洞 漏洞影

初探SQL注入

1.1注入语句(通过时间注入函数) 数据库名称 localhost:8080/ScriptTest/userServlet?username='union SELECT IF(SUBSTRING(current,1,1)=CHAR(101),BENCHMARK(10000000,ENCODE('sasssG','zcxczx')),null),count(*) FROM (SELECT Database() as current) as tbl;--  password=W 判断该数据库的系统用

SQLServer应用程序的高级Sql注入

[概 要] 这篇文章讨论常用的"sql注入"技术的细节,应用于流行的Ms IIS/ASP/SQL-Server平台.这里探讨有关这种攻击各种可以注入程序访问数据和数据库防范的方法.这篇文章面向两种读者:一是基于数据库web程序开发人员和审核各种web程序的安全专家. [介 绍] 结构化查询语言(SQL)是一种用来和数据库交 互的文本语言SQL语言多种多样,大多的方言版本都共同宽松地遵循SQL-92标准(最新的ANSI标准[译者注:目前最新的是SQL-99]).SQL 运行的典型的操作是

如何防范SQL注入——测试篇(转)

在上一篇文章<如何防范SQL注入-编程篇>中,我们讲了对于程序员而言,如何编码以防范代码存在SQL注入漏洞,那么,对于测试人员来说,如何测试SQL注入漏洞是否存在呢? 首先,我们将SQL注入攻击能分为以下三种类型: Inband:数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页面上: Out-of-band:数据通过不同于SQL代码注入的方式获得(譬如通过邮件等) 推理:这种攻击是说并没有真正的数据传输,但攻击者可以通过发送特定的请求

web安全:sql 注入

sql注入获取webshell寻找sql注入页面,操作数据库的地方向网站写入sql语句' union select 1,2, '<?php system($_GET["cmd"]);?>' into outfile '/var/www/myzoo/cmd.php' 发现mysql没有写入权限,于是在apparmor中为mysql添加权限vi /etc/apparmor.d/usr.sbin.mysqld在文件最后添加:/var/www/myzoo/* rw,然后重启apac

一条短信控制你的手机! Android平台的SQL注入漏洞浅析

14年11月笔者在百度xteam博客中看到其公开了此前报告给Google的CVE-2014-8507漏洞细节——系统代码在处理经由短信承载的WAP推送内容时产生的经典SQL注入漏洞,影响Android 5.0以下的系统.于是对这个漏洞产生了兴趣,想深入分析看看该漏洞的危害,以及是否能够通过一条短信来制作攻击PoC. 在断断续续的研究过程中,笔者发现了SQLite的一些安全特性演变和短信漏洞利用细节,本着技术探讨和共同进步的原则,结合以前掌握的SQLite安全知识一同整理分享出来,同各位安全专家一

SQL注入-预防

输入验证: 检查用户输入的合法性,确信输入的内容只包含合法的数据.数据检查应当在客户端和服务器端都执行服务器端验证,是为了弥补客户端验证机制脆弱的安全性. 输入验证最好使用“白名单”校验的方式. 输入转义: 每个DBMS都有一个字符转义机制来告知DBMS输入的是数据而不是代码,如果将用户的输入都进行转义,那么DBMS就不会混淆数据和代码,也不会出现SQL注入了. 最小权限法: 把每个数据库用户的权限尽可能缩小,在给用户权限时是基于用户需要什么样的权限.而不是用户不需要什么样的权限. 参数化查询:

利用insert,update和delete注入获取数据

0x00 简介 利用SQL注入获取数据库数据,利用的方法可以大致分为联合查询.报错.布尔盲注以及延时注入,通常这些方法都是基于select查询语句中的SQL注射点来实现的.那么,当我们发现了一个基于insert.update.delete语句的注射点时(比如有的网站会记录用户浏览记录,包括referer.client_ip.user-agent等,还有类似于用户注册.密码修改.信息删除等功能),还可以用如上方法获取我们需要的数据吗?在这里,我们以MYSQL的显错为例,看一下如何在insert.u