
文件上传是现代互联网常见的功能,允许用户上传图片、视频、及其他类型文件,向用户提供的功能越多,Web受攻击的风险就越大


表单中的enctype值如果不设置,默认是此值,将表单中的数据变为键值对的形式如果action为get,则将表单中的数据转换成一个字符串(name1=value1&name2=value2),然后把这个字符串附加到URL后面,并用 ? 分割如果action为post,浏览器把form数据封装到http body中,然后发送到服务器
专门用来传输特殊类型数据的,比如文件,会将表单中的数据变成二进制数据,这时候如果用request是无法获取到相应表单的值,应通过stream流对象,将传到服务器端的二进制数据解码,从而读取数据
表单以纯文本形式进行编码

上传文件时,如果未对上传的文件进行严格的验证和过滤,就容易造成文件上传漏洞,上传脚本文件(包括asp、aspx、php、jsp等)
恶意上传行为可能导致网站甚至整个服务器被控制。旁恶意的脚本文件又被称为WebShell,WebShell具有强大的功能,如查看服务器目录、服务器中文件执行系统命令等
文件上传漏洞的成因(复杂),一方面,Web 应用开放了文件上传功能,并且对上传的文件没有进行足够的限制:另一方面,程开发部署时候,没有考虑到系统特性和过滤不严格;再者就是,攻击者通过Web服务器解析漏洞绕过限制,导致可以上传任意文件。
文件上传漏洞完美利用需要有一定的条件:

小马通常指一句话木马,因为其代码量比较小,就是一句简单的代码。以下是几种脚本类型的一句话木马:

JSP和JSPX的一句话木马比较复杂
一句话木马短小精悍,功能强大,是为了绕过waf的检测,虽然出现了无数的变形但本质是不变的:木马的函数执行了我们发送的命令。
如何发送命令呢?
通过GET、POST、COOKIE三种方式提交数据。
用$_GET【 ' ' 】 、 $_POST【 ' ' 】、 $_COOKIE【 ' ' 】接收传递的数据,并把接收的数据传递给一话木马中执行命令的函数,进而执行命令。
经典的一句话木马大多都只有两个部分,一个是可以执行代码的函数部分,一个是
接收数据的部分。

eval就是执行命令的函数,$_POST【 ' ' 】就是接收的数据。eval函数把接收的数据当作PHP代码来执行。这样我们就能够让插入了一句话木马的网站执行我们传递过去的任意PHP语句。
之所以叫大马,是因为与小马(一句话木马)区分开,并且代码比较大,但是功能比较丰富。同样,大马有很多种脚本格式,其功能基本相同。每个团队都有自己的定制大
本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用,勿作商用!!!!文字内容为自己手打,并非直接搬运!如有侵权,请联系删除!!!
本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透测试。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。使用者应当合法合规地运用所学知识,不得用于非法入侵、破坏信息系统等恶意活动。我们强烈建议所有读者遵守当地法律与道德规范,在合法范围内探索信息技术。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。