尊敬的读者们,中间件在现代应用程序开发中扮演着重要的角色。无论是Web应用程序还是移动应用程序,中间件都提供了一种优雅的方式来处理请求和响应之间的逻辑。在本文中,我们将深入探讨中间件的概念、作用以及如何在您的应用程序中使用中间件来简化和增强开发过程
什么是中间件?
中间件(Middleware)是现代Web框架中常见的概念,它在处理Web请求和响应的过程中起到了关键的作用。中间件是一个位于Web框架的请求-响应处理流程中的组件。它接收HTTP请求,并经过自身的处理后,可以选择继续将请求传递给下一个中间件或者终止请求并返回响应。中间件可以在请求处理前、处理过程中或处理后执行各种操作,如身份验证、日志记录、错误处理等。
中间件的作用
中间件具有以下几个重要作用:
-
身份验证和授权:中间件可以识别请求的身份信息,验证用户是否具有访问权限,并根据结果决定是否继续处理请求。
-
请求和响应处理:中间件可以在处理请求之前或之后,对请求和响应进行修改或记录。例如,可以对请求进行参数解析和校验,对响应进行格式化和过滤。
-
错误处理:中间件可以捕获应用程序中的错误,并进行相应的处理。它可以记录错误日志、发送错误报告或向用户显示友好的错误页面。
-
安全防护:中间件可以对请求进行安全检查,如防止SQL注入、跨站脚本攻击等。它可以过滤恶意请求,确保应用程序的安全性。
-
缓存和性能优化:中间件可以对特定请求进行缓存,提高响应速度和应用程序的性能。它可以将静态资源缓存在CDN上,减轻服务器的负载。
iis6.0解析漏洞
该版本默认将*.asp;.jpg此类格式的文件名,当成asp解析,服务器默认;后面的内容不解析,相当于截断,例如上传asp木马,就可以用xx.asp;.jpg来绕过;iis除了会将asp解析成脚本执行文件之外,还会将 cer cdx asa扩展名解析成asp
防御方法: 1.禁止上传和创建此类畸形文件 2.图片存放目录设置为禁止脚本执行
iis7.x解析漏洞
iis7.x版本在Fast-CGI运行模式下,在任意文件,例如:a.jpg/png后面加上/.php,会将.jpg/png解析为php文件。
Apache
未知拓展名解析漏洞 apache默认一个文件可以有多个以点切割的后缀,当最右的后缀无法识别时,就继续向左识别,直到识别到合法后缀才开始解析,如xxx.php.qqq,qqq无法识别,就继续解析,到php时能够识别,就解析为php文件,
换行解析漏洞 apache换行解析漏洞(CVE-2017-15715) 其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
防御方法:将上传的文件重命名为为时间戳+随机数+.jpg的格式并禁用上传文件目录执行
Tomcat中间件
Tomcat弱口令&war远程部署
Tomcat存在后台管理,账号密码设置在conf/tomcat-users.xml
可能存在的安全问题:弱口令或爆破(爆破采用数据包base64传递认证)
这里先把我们的shell.jsp在本地打包成zip,然后重命名为war,之后上传war,它会自动解压,从而getshell
JBoss中间件
1.JMX Console未授权访问Getshell 此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进⼊到jmx控制台,并在其中执⾏任何功能
防御方法:
1.升级jboss
2.关闭jmx-console和web-console,提高安全性 JBoss 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149) 该漏洞出现在/invoker/readonly中 ,服务器将用户post请求内容进行反序列化用工具来验证,在验证之前我们可以访问路径进行初步判断url://invoker/readonly,看服务器返回情况如下则说明漏洞存在
修复:升级新版本,删除 http-invoker.sar 组件。
weblogic中间件
1.弱口令
原理:在weblogic搭建好之后没有修改进入后台的密码导致弱口令登录获得webshell 访问http://192.168.1.10:7001/console 这里注意一下不能使用bp抓包去爆破,错误密码5次之后就会自动锁定,这里使用weblogic/Oracle@123登陆后台
2.WebLogic 未授权访问漏洞(CVE-2018-2894)
在ws-testpage-impl.jar/com.oracle.webservices.testclient.ws.res.WebserviceResource 类中存在importWsTestConfig方法 跟进 RSdataHelper的convertFormDataMultiPart方法,接下来调用convertFormDataMultiPart方法,文件直接由字段 文件名拼接而成,没有任何限制。 <a name="c7ewd"></a>
通过URL来初步分析后台
通常网站的首页文件名为index.xxx 扩展名表示的是当前首页文件为何种语言编写 index.html 表示使用超文本标签语言编写,一般为静态站
| 开发语言 | 操作系统 | 网站环境 | 数据库环境 | |
|---|---|---|---|---|
| index.php | php | win/linux | apache、Nginx | mysql |
| index.jsp | java | linux | tomcat | oracle |
| index.asp | asp.net | win | IIS | sqlserver |
初步判断网站使用何种操作系统可以使用ping命令,看返回信息的TTL值,64为Linux 128以上为Windows。
本文详细解释了中间件在现代应用程序开发中的重要性,包括其概念、处理请求响应的逻辑,以及身份验证、错误处理、安全防护等方面的作用。同时,列举了IIS、Apache、Tomcat、JBoss和WebLogic等常见中间件的漏洞及其防御措施。

352

被折叠的 条评论
为什么被折叠?



