| 关键词: goodscontent aspx name convert 数据库 SELECT 信息 版本 binformation gid |
一、前言如题,由于是在已知有一处sql注入的情况下才接手进行的后续操作,因此前面信息搜集则一笔带过。 二、信息搜集目标是个本地的传销站点其大致信息为IIS+ASP.NET+安全狗、腾讯云。 三.pass Sq3.1 Fuzz ![]() 根据如上测试可以看出程序本身也有过滤,error为程序自身的过滤。可以利用IIS处理%符号的机制绕过部分符号,例如空格使用%0b 加号使用%2b等。再根据测试的结果,可以先利用convert转换报错获取一部分信息。 ![]() 得到以 再往下就是获取表的信息 由于我只会简单的select from因此始终无法获取表名,如果有其他姿势还望给科普下。 ![]() 3.2 万金油 此时陷入僵局,后来想起在404大佬的一篇bypass安全狗的文章中提到过在mssql中注释加换行同样成立,遂构造之。 获取到第一个表名:jsrecord ![]() 由于还是没能绕过单引号和等号,我始终用不了not in与for xml path来爆后续的表名,这又触及到了我知识盲区,因此只好查阅大量文章案例,最终构造出如下语句。 ![]() 此时只需要遍历top的数值即可,例如: ![]() 通过不断的遍历数值发现还是存在问题 举个例子,即 1-20、200-209,334-345返回同一个表名,存在大量重复与无序的情况,但可以通过burp中intruder->Grep-Extact功能来解决 操作如下:首先设置好intruder对001-600进行遍历(超过600多后就没什么内容了) ![]() ![]() 然后使用Grep-Extact提取表名。 ![]() ![]() ![]() 保存结果后去重即可。 ![]() 和前面获取到的表总个数是一致的。 解下来就是获取memberadmin表中的列名与内容,但在此之前我还是习惯性的看了下后台的网页源代码。 ![]() 如图,盲猜列名txt_nickname、nickname、txt_password、password 四.后台getshell登陆后台 ![]() 经测试后发现信息管理处可以发布咨询,上传图片。通过修改去掉filename=”1.aspx”中的双引号绕过安全狗,但无法绕过程序自身的检测。 不过得知上传组件为ueditor,且.net版本存在上传漏洞 poc如下 并在自己的服务器上准备好shell(注意过狗),名称为a.gif,然后填入shell地址 提交后即可得到shell路径 五、打包源码与数据库在有了shell之后要做的事情就更明确了,即是打包源码与数据库,由于只需要这两样操作,相对于不需要太大的权限,避免操作不当触发警告。因此我选择先通过shell来进行打包操作。 ![]() ![]() 源码 这里利用的是自行上传的rar.exe来分卷打包源码,在此之前尝试过7z.exe(目标服务器上已安装)、makecab 但效果并不理想,姿势不够还望科普。 最终以每秒100k的速度下载完成。 ![]() 数据库 略过,后台自带备份功能 坑点:后台的备份文件后缀为zip,下载回来总是提示文件损坏,一直以为备份功能有问题,后来发现文件头是TAPE。。。。 六、本地搭建本地搭建的环境为 Windows server 2012+IIS8+SQL Server 2008,简单讲讲0.0 SQL Server 安装过程略过导入数据 新建数据库,然后通过原设备还原数据 ![]() ![]() 还原成功 ![]() IIS与ASP.NET 安装一笔带过,左边拉满就行,简单粗暴 ![]() ![]() 添加站点 ![]() 最好对应目标版本 ![]() 修改源码中的配置文件 访问即可 ![]() 作者:HACK_Learn 转载自:https://www.secpulse.com/archives/121093.html |
| 本文出处: https://www.toutiao.com/i6789047191378854414/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|